diff --git a/.gitignore b/.gitignore index 5ee6647..f7f58ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules temp +.idea .DS_Store *.tgz \ No newline at end of file diff --git a/dist/index.min.js b/dist/index.min.js index a851d7b..e17e7d6 100644 --- a/dist/index.min.js +++ b/dist/index.min.js @@ -12,7 +12,7 @@ Values: `+String(n)));Yp(e);for(var i=0;i0&&Object.prototype.hasOwnProperty.call(t,t.length-1))}iw.exports=FP});var $p=D((Mee,ow)=>{"use strict";p();h();g();y();m();ow.exports=function(e,r){return function(){for(var i=new Array(arguments.length),a=0;a{"use strict";p();h();g();y();m();var $P=$p(),Ii=Object.prototype.toString;function Qp(t){return Array.isArray(t)}function Gp(t){return typeof t>"u"}function GP(t){return t!==null&&!Gp(t)&&t.constructor!==null&&!Gp(t.constructor)&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}function sw(t){return Ii.call(t)==="[object ArrayBuffer]"}function XP(t){return Ii.call(t)==="[object FormData]"}function QP(t){var e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&sw(t.buffer),e}function JP(t){return typeof t=="string"}function ZP(t){return typeof t=="number"}function uw(t){return t!==null&&typeof t=="object"}function Fl(t){if(Ii.call(t)!=="[object Object]")return!1;var e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}function e9(t){return Ii.call(t)==="[object Date]"}function t9(t){return Ii.call(t)==="[object File]"}function r9(t){return Ii.call(t)==="[object Blob]"}function lw(t){return Ii.call(t)==="[object Function]"}function n9(t){return uw(t)&&lw(t.pipe)}function i9(t){return Ii.call(t)==="[object URLSearchParams]"}function a9(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function o9(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function Jp(t,e){if(!(t===null||typeof t>"u"))if(typeof t!="object"&&(t=[t]),Qp(t))for(var r=0,n=t.length;r{"use strict";p();h();g();y();m();var so=Cr();function fw(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}dw.exports=function(e,r,n){if(!r)return e;var i;if(n)i=n(r);else if(so.isURLSearchParams(r))i=r.toString();else{var a=[];so.forEach(r,function(f,A){f===null||typeof f>"u"||(so.isArray(f)?A=A+"[]":f=[f],so.forEach(f,function(H){so.isDate(H)?H=H.toISOString():so.isObject(H)&&(H=JSON.stringify(H)),a.push(fw(A)+"="+fw(H))}))}),i=a.join("&")}if(i){var o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}});var hw=D((Kee,pw)=>{"use strict";p();h();g();y();m();var l9=Cr();function Ll(){this.handlers=[]}Ll.prototype.use=function(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};Ll.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)};Ll.prototype.forEach=function(e){l9.forEach(this.handlers,function(n){n!==null&&e(n)})};pw.exports=Ll});var mw=D((Qee,gw)=>{"use strict";p();h();g();y();m();var c9=Cr();gw.exports=function(e,r){c9.forEach(e,function(i,a){a!==r&&a.toUpperCase()===r.toUpperCase()&&(e[r]=i,delete e[a])})}});var eh=D((nte,yw)=>{"use strict";p();h();g();y();m();yw.exports=function(e,r,n,i,a){return e.config=r,n&&(e.code=n),e.request=i,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}});var th=D((lte,vw)=>{"use strict";p();h();g();y();m();var f9=eh();vw.exports=function(e,r,n,i,a){var o=new Error(e);return f9(o,r,n,i,a)}});var ww=D((gte,bw)=>{"use strict";p();h();g();y();m();var d9=th();bw.exports=function(e,r,n){var i=n.config.validateStatus;!n.status||!i||i(n.status)?e(n):r(d9("Request failed with status code "+n.status,n.config,null,n.request,n))}});var _w=D((xte,xw)=>{"use strict";p();h();g();y();m();var Dl=Cr();xw.exports=Dl.isStandardBrowserEnv()?function(){return{write:function(r,n,i,a,o,u){var f=[];f.push(r+"="+encodeURIComponent(n)),Dl.isNumber(i)&&f.push("expires="+new Date(i).toGMTString()),Dl.isString(a)&&f.push("path="+a),Dl.isString(o)&&f.push("domain="+o),u===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var Aw=D((Mte,Iw)=>{"use strict";p();h();g();y();m();Iw.exports=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}});var Ew=D((kte,Sw)=>{"use strict";p();h();g();y();m();Sw.exports=function(e,r){return r?e.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):e}});var Rw=D((Nte,Mw)=>{"use strict";p();h();g();y();m();var p9=Aw(),h9=Ew();Mw.exports=function(e,r){return e&&!p9(r)?h9(e,r):r}});var Cw=D((Kte,Bw)=>{"use strict";p();h();g();y();m();var rh=Cr(),g9=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Bw.exports=function(e){var r={},n,i,a;return e&&rh.forEach(e.split(` `),function(u){if(a=u.indexOf(":"),n=rh.trim(u.substr(0,a)).toLowerCase(),i=rh.trim(u.substr(a+1)),n){if(r[n]&&g9.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([i]):r[n]=r[n]?r[n]+", "+i:i}}),r}});var kw=D((Qte,Tw)=>{"use strict";p();h();g();y();m();var Uw=Cr();Tw.exports=Uw.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function i(a){var o=a;return e&&(r.setAttribute("href",o),o=r.href),r.setAttribute("href",o),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=i(window.location.href),function(o){var u=Uw.isString(o)?i(o):o;return u.protocol===n.protocol&&u.host===n.host}}():function(){return function(){return!0}}()});var ys=D((nre,Ow)=>{"use strict";p();h();g();y();m();function nh(t){this.message=t}nh.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};nh.prototype.__CANCEL__=!0;Ow.exports=nh});var ah=D((lre,Pw)=>{"use strict";p();h();g();y();m();var zl=Cr(),m9=ww(),y9=_w(),v9=Zp(),b9=Rw(),w9=Cw(),x9=kw(),ih=th(),_9=vs(),I9=ys();Pw.exports=function(e){return new Promise(function(n,i){var a=e.data,o=e.headers,u=e.responseType,f;function A(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}zl.isFormData(a)&&delete o["Content-Type"];var C=new XMLHttpRequest;if(e.auth){var H=e.auth.username||"",V=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.Authorization="Basic "+btoa(H+":"+V)}var X=b9(e.baseURL,e.url);C.open(e.method.toUpperCase(),v9(X,e.params,e.paramsSerializer),!0),C.timeout=e.timeout;function xe(){if(C){var We="getAllResponseHeaders"in C?w9(C.getAllResponseHeaders()):null,er=!u||u==="text"||u==="json"?C.responseText:C.response,tr={data:er,status:C.status,statusText:C.statusText,headers:We,config:e,request:C};m9(function(Jt){n(Jt),A()},function(Jt){i(Jt),A()},tr),C=null}}if("onloadend"in C?C.onloadend=xe:C.onreadystatechange=function(){!C||C.readyState!==4||C.status===0&&!(C.responseURL&&C.responseURL.indexOf("file:")===0)||setTimeout(xe)},C.onabort=function(){C&&(i(ih("Request aborted",e,"ECONNABORTED",C)),C=null)},C.onerror=function(){i(ih("Network Error",e,null,C)),C=null},C.ontimeout=function(){var er=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",tr=e.transitional||_9.transitional;e.timeoutErrorMessage&&(er=e.timeoutErrorMessage),i(ih(er,e,tr.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",C)),C=null},zl.isStandardBrowserEnv()){var me=(e.withCredentials||x9(X))&&e.xsrfCookieName?y9.read(e.xsrfCookieName):void 0;me&&(o[e.xsrfHeaderName]=me)}"setRequestHeader"in C&&zl.forEach(o,function(er,tr){typeof a>"u"&&tr.toLowerCase()==="content-type"?delete o[tr]:C.setRequestHeader(tr,er)}),zl.isUndefined(e.withCredentials)||(C.withCredentials=!!e.withCredentials),u&&u!=="json"&&(C.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&C.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&C.upload&&C.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(We){C&&(i(!We||We&&We.type?new I9("canceled"):We),C.abort(),C=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),a||(a=null),C.send(a)})}});var vs=D((gre,jw)=>{"use strict";p();h();g();y();m();var mr=Cr(),qw=mw(),A9=eh(),S9={"Content-Type":"application/x-www-form-urlencoded"};function Ww(t,e){!mr.isUndefined(t)&&mr.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}function E9(){var t;return typeof XMLHttpRequest<"u"?t=ah():typeof P<"u"&&Object.prototype.toString.call(P)==="[object process]"&&(t=ah()),t}function M9(t,e,r){if(mr.isString(t))try{return(e||JSON.parse)(t),mr.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}var Hl={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:E9(),transformRequest:[function(e,r){return qw(r,"Accept"),qw(r,"Content-Type"),mr.isFormData(e)||mr.isArrayBuffer(e)||mr.isBuffer(e)||mr.isStream(e)||mr.isFile(e)||mr.isBlob(e)?e:mr.isArrayBufferView(e)?e.buffer:mr.isURLSearchParams(e)?(Ww(r,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):mr.isObject(e)||r&&r["Content-Type"]==="application/json"?(Ww(r,"application/json"),M9(e)):e}],transformResponse:[function(e){var r=this.transitional||Hl.transitional,n=r&&r.silentJSONParsing,i=r&&r.forcedJSONParsing,a=!n&&this.responseType==="json";if(a||i&&mr.isString(e)&&e.length)try{return JSON.parse(e)}catch(o){if(a)throw o.name==="SyntaxError"?A9(o,this,"E_JSON_PARSE"):o}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};mr.forEach(["delete","get","head"],function(e){Hl.headers[e]={}});mr.forEach(["post","put","patch"],function(e){Hl.headers[e]=mr.merge(S9)});jw.exports=Hl});var Fw=D((xre,Nw)=>{"use strict";p();h();g();y();m();var R9=Cr(),B9=vs();Nw.exports=function(e,r,n){var i=this||B9;return R9.forEach(n,function(o){e=o.call(i,e,r)}),e}});var oh=D((Mre,Lw)=>{"use strict";p();h();g();y();m();Lw.exports=function(e){return!!(e&&e.__CANCEL__)}});var Hw=D((kre,zw)=>{"use strict";p();h();g();y();m();var Dw=Cr(),sh=Fw(),C9=oh(),U9=vs(),T9=ys();function uh(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new T9("canceled")}zw.exports=function(e){uh(e),e.headers=e.headers||{},e.data=sh.call(e,e.data,e.headers,e.transformRequest),e.headers=Dw.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Dw.forEach(["delete","get","head","post","put","patch","common"],function(i){delete e.headers[i]});var r=e.adapter||U9.adapter;return r(e).then(function(i){return uh(e),i.data=sh.call(e,i.data,i.headers,e.transformResponse),i},function(i){return C9(i)||(uh(e),i&&i.response&&(i.response.data=sh.call(e,i.response.data,i.response.headers,e.transformResponse))),Promise.reject(i)})}});var lh=D((Nre,Kw)=>{"use strict";p();h();g();y();m();var Vr=Cr();Kw.exports=function(e,r){r=r||{};var n={};function i(C,H){return Vr.isPlainObject(C)&&Vr.isPlainObject(H)?Vr.merge(C,H):Vr.isPlainObject(H)?Vr.merge({},H):Vr.isArray(H)?H.slice():H}function a(C){if(Vr.isUndefined(r[C])){if(!Vr.isUndefined(e[C]))return i(void 0,e[C])}else return i(e[C],r[C])}function o(C){if(!Vr.isUndefined(r[C]))return i(void 0,r[C])}function u(C){if(Vr.isUndefined(r[C])){if(!Vr.isUndefined(e[C]))return i(void 0,e[C])}else return i(void 0,r[C])}function f(C){if(C in r)return i(e[C],r[C]);if(C in e)return i(void 0,e[C])}var A={url:o,method:o,data:o,baseURL:u,transformRequest:u,transformResponse:u,paramsSerializer:u,timeout:u,timeoutMessage:u,withCredentials:u,adapter:u,responseType:u,xsrfCookieName:u,xsrfHeaderName:u,onUploadProgress:u,onDownloadProgress:u,decompress:u,maxContentLength:u,maxBodyLength:u,transport:u,httpAgent:u,httpsAgent:u,cancelToken:u,socketPath:u,responseEncoding:u,validateStatus:f};return Vr.forEach(Object.keys(e).concat(Object.keys(r)),function(H){var V=A[H]||a,X=V(H);Vr.isUndefined(X)&&V!==f||(n[H]=X)}),n}});var ch=D((Kre,Vw)=>{p();h();g();y();m();Vw.exports={version:"0.25.0"}});var Gw=D((Qre,$w)=>{"use strict";p();h();g();y();m();var k9=ch().version,fh={};["object","boolean","number","function","string","symbol"].forEach(function(t,e){fh[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});var Yw={};fh.transitional=function(e,r,n){function i(a,o){return"[Axios v"+k9+"] Transitional option '"+a+"'"+o+(n?". "+n:"")}return function(a,o,u){if(e===!1)throw new Error(i(o," has been removed"+(r?" in "+r:"")));return r&&!Yw[o]&&(Yw[o]=!0,console.warn(i(o," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(a,o,u):!0}};function O9(t,e,r){if(typeof t!="object")throw new TypeError("options must be an object");for(var n=Object.keys(t),i=n.length;i-- >0;){var a=n[i],o=e[a];if(o){var u=t[a],f=u===void 0||o(u,a,t);if(f!==!0)throw new TypeError("option "+a+" must be "+f);continue}if(r!==!0)throw Error("Unknown option "+a)}}$w.exports={assertOptions:O9,validators:fh}});var tx=D((nne,ex)=>{"use strict";p();h();g();y();m();var Jw=Cr(),P9=Zp(),Xw=hw(),Qw=Hw(),Kl=lh(),Zw=Gw(),uo=Zw.validators;function bs(t){this.defaults=t,this.interceptors={request:new Xw,response:new Xw}}bs.prototype.request=function(e,r){if(typeof e=="string"?(r=r||{},r.url=e):r=e||{},!r.url)throw new Error("Provided config url is not valid");r=Kl(this.defaults,r),r.method?r.method=r.method.toLowerCase():this.defaults.method?r.method=this.defaults.method.toLowerCase():r.method="get";var n=r.transitional;n!==void 0&&Zw.assertOptions(n,{silentJSONParsing:uo.transitional(uo.boolean),forcedJSONParsing:uo.transitional(uo.boolean),clarifyTimeoutError:uo.transitional(uo.boolean)},!1);var i=[],a=!0;this.interceptors.request.forEach(function(X){typeof X.runWhen=="function"&&X.runWhen(r)===!1||(a=a&&X.synchronous,i.unshift(X.fulfilled,X.rejected))});var o=[];this.interceptors.response.forEach(function(X){o.push(X.fulfilled,X.rejected)});var u;if(!a){var f=[Qw,void 0];for(Array.prototype.unshift.apply(f,i),f=f.concat(o),u=Promise.resolve(r);f.length;)u=u.then(f.shift(),f.shift());return u}for(var A=r;i.length;){var C=i.shift(),H=i.shift();try{A=C(A)}catch(V){H(V);break}}try{u=Qw(A)}catch(V){return Promise.reject(V)}for(;o.length;)u=u.then(o.shift(),o.shift());return u};bs.prototype.getUri=function(e){if(!e.url)throw new Error("Provided config url is not valid");return e=Kl(this.defaults,e),P9(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")};Jw.forEach(["delete","get","head","options"],function(e){bs.prototype[e]=function(r,n){return this.request(Kl(n||{},{method:e,url:r,data:(n||{}).data}))}});Jw.forEach(["post","put","patch"],function(e){bs.prototype[e]=function(r,n,i){return this.request(Kl(i||{},{method:e,url:r,data:n}))}});ex.exports=bs});var nx=D((lne,rx)=>{"use strict";p();h();g();y();m();var q9=ys();function lo(t){if(typeof t!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(i){e=i});var r=this;this.promise.then(function(n){if(r._listeners){var i,a=r._listeners.length;for(i=0;i{"use strict";p();h();g();y();m();ix.exports=function(e){return function(n){return e.apply(null,n)}}});var sx=D((xne,ox)=>{"use strict";p();h();g();y();m();var W9=Cr();ox.exports=function(e){return W9.isObject(e)&&e.isAxiosError===!0}});var cx=D((Mne,dh)=>{"use strict";p();h();g();y();m();var ux=Cr(),j9=$p(),Vl=tx(),N9=lh(),F9=vs();function lx(t){var e=new Vl(t),r=j9(Vl.prototype.request,e);return ux.extend(r,Vl.prototype,e),ux.extend(r,e),r.create=function(i){return lx(N9(t,i))},r}var Rn=lx(F9);Rn.Axios=Vl;Rn.Cancel=ys();Rn.CancelToken=nx();Rn.isCancel=oh();Rn.VERSION=ch().version;Rn.all=function(e){return Promise.all(e)};Rn.spread=ax();Rn.isAxiosError=sx();dh.exports=Rn;dh.exports.default=Rn});var ph=D((kne,fx)=>{p();h();g();y();m();fx.exports=cx()});var dx=D((Nne,L9)=>{L9.exports={name:"ton",version:"13.4.1",repository:"https://github.com/ton-core/ton.git",author:"Whales Corp. ",license:"MIT",main:"dist/index.js",files:["dist"],scripts:{docs:"rm -fr docs && typedoc src/index.ts",build:"rm -fr dist && tsc --declaration",test:"jest --verbose --runInBand",release:"yarn build && yarn release-it --npm.yarn1"},devDependencies:{"@release-it/keep-a-changelog":"^3.1.0","@types/jest":"^27.0.1","@types/node":"^16.7.10",buffer:"^6.0.3",expect:"^27.1.0",jest:"^27.1.0","jest-mock":"^27.1.0",karma:"^6.3.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-typescript":"^5.5.2","karma-webpack":"^5.0.0",prando:"^6.0.1","release-it":"^15.5.1","ton-core":"^0.48.0","ton-crypto":"3.2.0","ton-emulator":"^2.1.1","ts-jest":"^27.0.5","ts-loader":"^9.2.5","ts-node":"^10.7.0",typedoc:"^0.23.24",typescript:"^4.4.2",webpack:"^5.51.2"},dependencies:{axios:"^0.25.0",dataloader:"^2.0.0","fp-ts":"^2.11.1","io-ts":"^2.2.16","io-ts-reporters":"^2.0.0","symbol.inspect":"1.0.1",teslabot:"^1.3.0"},peerDependencies:{"ton-core":">=0.48.0","ton-crypto":">=3.2.0"},publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},"release-it":{github:{release:!0},plugins:{"@release-it/keep-a-changelog":{filename:"CHANGELOG.md"}}},packageManager:"yarn@3.4.1"}});var mh=D(Zr=>{"use strict";p();h();g();y();m();var D9=Zr&&Zr.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),z9=Zr&&Zr.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),H9=Zr&&Zr.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&D9(e,t,r);return z9(e,t),e},gh=Zr&&Zr.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zr,"__esModule",{value:!0});Zr.HttpApi=void 0;var he=H9(sl()),yx=il(),K9=gh(ew()),V9=tw(),px=gh(aw()),Y9=gh(ph()),$9=dx().version,co=he.type({"@type":he.literal("ton.blockIdExt"),workchain:he.number,shard:he.string,seqno:he.number,root_hash:he.string,file_hash:he.string}),G9=he.type({balance:he.union([he.number,he.string]),state:he.union([he.literal("active"),he.literal("uninitialized"),he.literal("frozen")]),data:he.string,code:he.string,last_transaction_id:he.type({"@type":he.literal("internal.transactionId"),lt:he.string,hash:he.string}),block_id:co,sync_utime:he.number}),X9=he.type({"@type":he.literal("ok")}),Q9=he.type({"@type":he.literal("query.fees"),source_fees:he.type({"@type":he.literal("fees"),in_fwd_fee:he.number,storage_fee:he.number,gas_fee:he.number,fwd_fee:he.number})}),J9=he.type({gas_used:he.number,exit_code:he.number,stack:he.array(he.unknown)}),Z9=he.union([he.type({"@type":he.literal("msg.dataRaw"),body:he.string}),he.type({"@type":he.literal("msg.dataText"),text:he.string}),he.type({"@type":he.literal("msg.dataDecryptedText"),text:he.string}),he.type({"@type":he.literal("msg.dataEncryptedText"),text:he.string})]),hx=he.type({source:he.string,destination:he.string,value:he.string,fwd_fee:he.string,ihr_fee:he.string,created_lt:he.string,body_hash:he.string,msg_data:Z9}),eq=he.type({data:he.string,utime:he.number,transaction_id:he.type({lt:he.string,hash:he.string}),fee:he.string,storage_fee:he.string,other_fee:he.string,in_msg:he.union([he.undefined,hx]),out_msgs:he.array(hx)}),gx=he.array(eq),tq=he.type({state_root_hash:he.string,last:co,init:co}),rq=he.type({shards:he.array(co)}),nq=he.type({"@type":he.literal("blocks.shortTxId"),mode:he.number,account:he.string,lt:he.string,hash:he.string}),mx=he.type({id:co,req_count:he.number,incomplete:he.boolean,transactions:he.array(nq)}),Yl=class{constructor(e,r,n,i){this.namespace=e,this.cache=r,this.codec=n,this.keyEncoder=i}async get(e){let r=await this.cache.get(this.namespace,this.keyEncoder(e));if(r){let n=this.codec.decode(JSON.parse(r));if((0,yx.isRight)(n))return n.right}return null}async set(e,r){r!==null?await this.cache.set(this.namespace,this.keyEncoder(e),JSON.stringify(r)):await this.cache.set(this.namespace,this.keyEncoder(e),null)}},hh=class{constructor(e,r){this.endpoint=e,this.cache=new V9.InMemoryCache,this.parameters={timeout:r?.timeout||3e4,apiKey:r?.apiKey},this.shardCache=new Yl("ton-shard",this.cache,he.array(co),n=>n+""),this.shardLoader=new px.default(async n=>await Promise.all(n.map(async i=>{let a=await this.shardCache.get(i);if(a)return a;let o=(await this.doCall("shards",{seqno:i},rq)).shards;return await this.shardCache.set(i,o),o}))),this.shardTransactionsCache=new Yl("ton-shard-tx",this.cache,mx,n=>n.workchain+":"+n.shard+":"+n.seqno),this.shardTransactionsLoader=new px.default(async n=>await Promise.all(n.map(async i=>{let a=await this.shardTransactionsCache.get(i);if(a)return a;let o=await this.doCall("getBlockTransactions",{workchain:i.workchain,seqno:i.seqno,shard:i.shard},mx);return await this.shardTransactionsCache.set(i,o),o})),{cacheKeyFn:n=>n.workchain+":"+n.shard+":"+n.seqno})}getAddressInformation(e){return this.doCall("getAddressInformation",{address:e.toString()},G9)}async getTransactions(e,r){let n=r.inclusive;delete r.inclusive;let i;r.hash&&(i=v.from(r.hash,"base64").toString("hex"));let a=r.limit;r.hash&&r.lt&&n!==!0&&a++;let o=await this.doCall("getTransactions",{address:e.toString(),...r,limit:a,hash:i},gx);return o.length>a&&(o=o.slice(0,a)),r.hash&&r.lt&&n!==!0&&o.shift(),o}async getMasterchainInfo(){return await this.doCall("getMasterchainInfo",{},tq)}async getShards(e){return await this.shardLoader.load(e)}async getBlockTransactions(e,r,n){return await this.shardTransactionsLoader.load({workchain:e,seqno:r,shard:n})}async getTransaction(e,r,n){let i=v.from(n,"base64").toString("hex"),o=(await this.doCall("getTransactions",{address:e.toString(),lt:r,hash:i,limit:1},gx)).find(u=>u.transaction_id.lt===r&&u.transaction_id.hash===n);return o||null}async callGetMethod(e,r,n){return await this.doCall("runGetMethod",{address:e.toString(),method:r,stack:iq(n)},J9)}async sendBoc(e){await this.doCall("sendBoc",{boc:e.toString("base64")},X9)}async estimateFee(e,r){return await this.doCall("estimateFee",{address:e.toString(),body:r.body.toBoc().toString("base64"),init_data:r.initData?r.initData.toBoc().toString("base64"):"",init_code:r.initCode?r.initCode.toBoc().toString("base64"):"",ignore_chksig:r.ignoreSignature},Q9)}async doCall(e,r,n){let i={"Content-Type":"application/json","X-Ton-Client-Version":$9};this.parameters.apiKey&&(i["X-API-Key"]=this.parameters.apiKey);let a=await Y9.default.post(this.endpoint,JSON.stringify({id:"1",jsonrpc:"2.0",method:e,params:r}),{headers:i,timeout:this.parameters.timeout});if(a.status!==200||!a.data.ok)throw Error("Received error: "+JSON.stringify(a.data));let o=n.decode(a.data.result);if((0,yx.isRight)(o))return o.right;throw Error("Malformed response: "+K9.default.report(o).join(", "))}};Zr.HttpApi=hh;function iq(t){let e=[];for(let r of t)if(r.type==="int")e.push(["num",r.value.toString()]);else if(r.type==="cell")e.push(["tvm.Cell",r.cell.toBoc().toString("base64")]);else if(r.type==="slice")e.push(["tvm.Slice",r.cell.toBoc().toString("base64")]);else if(r.type==="builder")e.push(["tvm.Builder",r.cell.toBoc().toString("base64")]);else throw Error("Unsupported stack item type: "+r.type);return e}});var wx=D(Ai=>{"use strict";p();h();g();y();m();var aq=Ai&&Ai.__classPrivateFieldSet||function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},yn=Ai&&Ai.__classPrivateFieldGet||function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},qr;Object.defineProperty(Ai,"__esModule",{value:!0});Ai.TonClient=void 0;var oq=mh(),or=pr(),yh=class{constructor(e){qr.set(this,void 0),this.parameters={endpoint:e.endpoint},aq(this,qr,new oq.HttpApi(this.parameters.endpoint,{timeout:e.timeout,apiKey:e.apiKey,adapter:e.httpAdapter}),"f")}async getBalance(e){return(await this.getContractState(e)).balance}async runMethod(e,r,n=[]){let i=await yn(this,qr,"f").callGetMethod(e,r,n);if(i.exit_code!==0)throw Error("Unable to execute get method. Got exit_code: "+i.exit_code);return{gas_used:i.gas_used,stack:vx(i.stack)}}async callGetMethod(e,r,n=[]){return this.runMethod(e,r,n)}async runMethodWithError(e,r,n=[]){let i=await yn(this,qr,"f").callGetMethod(e,r,n);return{gas_used:i.gas_used,stack:vx(i.stack),exit_code:i.exit_code}}async callGetMethodWithError(e,r,n=[]){return this.runMethodWithError(e,r,n)}async getTransactions(e,r){let n=await yn(this,qr,"f").getTransactions(e,r),i=[];for(let a of n)i.push((0,or.loadTransaction)(or.Cell.fromBoc(v.from(a.data,"base64"))[0].beginParse()));return i}async getTransaction(e,r,n){let i=await yn(this,qr,"f").getTransaction(e,r,n);return i?(0,or.loadTransaction)(or.Cell.fromBoc(v.from(i.data,"base64"))[0].beginParse()):null}async getMasterchainInfo(){let e=await yn(this,qr,"f").getMasterchainInfo();return{workchain:e.init.workchain,shard:e.last.shard,initSeqno:e.init.seqno,latestSeqno:e.last.seqno}}async getWorkchainShards(e){return(await yn(this,qr,"f").getShards(e)).map(n=>({workchain:n.workchain,shard:n.shard,seqno:n.seqno}))}async getShardTransactions(e,r,n){let i=await yn(this,qr,"f").getBlockTransactions(e,r,n);if(i.incomplete)throw Error("Unsupported");return i.transactions.map(a=>({account:or.Address.parseRaw(a.account),lt:a.lt,hash:a.hash}))}async sendMessage(e){let r=(0,or.beginCell)().store((0,or.storeMessage)(e)).endCell().toBoc();await yn(this,qr,"f").sendBoc(r)}async sendFile(e){await yn(this,qr,"f").sendBoc(e)}async estimateExternalMessageFee(e,r){return await yn(this,qr,"f").estimateFee(e,{body:r.body,initCode:r.initCode,initData:r.initData,ignoreSignature:r.ignoreSignature})}async sendExternalMessage(e,r){if(await this.isContractDeployed(e.address)||!e.init){let n=(0,or.external)({to:e.address,body:r});await this.sendMessage(n)}else{let n=(0,or.external)({to:e.address,init:{code:e.init.code,data:e.init.data},body:r});await this.sendMessage(n)}}async isContractDeployed(e){return(await this.getContractState(e)).state==="active"}async getContractState(e){let r=await yn(this,qr,"f").getAddressInformation(e),n=BigInt(r.balance),i=r.state;return{balance:n,state:i,code:r.code!==""?v.from(r.code,"base64"):null,data:r.data!==""?v.from(r.data,"base64"):null,lastTransaction:r.last_transaction_id.lt!=="0"?{lt:r.last_transaction_id.lt,hash:r.last_transaction_id.hash}:null,blockId:{workchain:r.block_id.workchain,shard:r.block_id.shard,seqno:r.block_id.seqno},timestampt:r.sync_utime}}open(e){return(0,or.openContract)(e,r=>bx(this,r.address,r.init))}provider(e,r){return bx(this,e,r)}};Ai.TonClient=yh;qr=new WeakMap;function vx(t){let e=[];for(let r of t)if(r[0]==="num"){let n=r[1];n.startsWith("-")?e.push({type:"int",value:-BigInt(n.slice(1))}):e.push({type:"int",value:BigInt(n)})}else if(r[0]==="null")e.push({type:"null"});else if(r[0]==="cell")e.push({type:"cell",cell:or.Cell.fromBoc(v.from(r[1].bytes,"base64"))[0]});else if(r[0]==="slice")e.push({type:"slice",cell:or.Cell.fromBoc(v.from(r[1].bytes,"base64"))[0]});else if(r[0]==="builder")e.push({type:"builder",cell:or.Cell.fromBoc(v.from(r[1].bytes,"base64"))[0]});else throw Error("Unsupported stack item type: "+r[0]);return new or.TupleReader(e)}function bx(t,e,r){return{async getState(){let n=await t.getContractState(e),i=n.balance,a=n.lastTransaction?{lt:BigInt(n.lastTransaction.lt),hash:v.from(n.lastTransaction.hash,"base64")}:null,o;if(n.state==="active")o={type:"active",code:n.code?n.code:null,data:n.data?n.data:null};else if(n.state==="uninitialized")o={type:"uninit"};else if(n.state==="frozen")o={type:"frozen",stateHash:v.alloc(0)};else throw Error("Unsupported state");return{balance:i,last:a,state:o}},async get(n,i){return{stack:(await t.callGetMethod(e,n,i)).stack}},async external(n){let i=null;r&&!await t.isContractDeployed(e)&&(i=r);let a=(0,or.external)({to:e,init:i?{code:i.code,data:i.data}:null,body:n}),o=(0,or.beginCell)().store((0,or.storeMessage)(a)).endCell().toBoc();await t.sendFile(o)},async internal(n,i){let a=null;r&&!await t.isContractDeployed(e)&&(a=r);let o=!0;i.bounce!==null&&i.bounce!==void 0&&(o=i.bounce);let u;typeof i.value=="string"?u=(0,or.toNano)(i.value):u=i.value;let f=null;typeof i.body=="string"?f=(0,or.comment)(i.body):i.body&&(f=i.body),await n.send({to:e,value:u,bounce:o,sendMode:i.sendMode,init:a,body:f})}}}});var xx=D($l=>{"use strict";p();h();g();y();m();Object.defineProperty($l,"__esModule",{value:!0});$l.toUrlSafe=void 0;function sq(t){for(;t.indexOf("/")>=0;)t=t.replace("/","_");for(;t.indexOf("+")>=0;)t=t.replace("+","-");for(;t.indexOf("=")>=0;)t=t.replace("=","");return t}$l.toUrlSafe=sq});var Sx=D(Ar=>{"use strict";p();h();g();y();m();var uq=Ar&&Ar.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),lq=Ar&&Ar.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),cq=Ar&&Ar.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&uq(e,t,r);return lq(e,t),e},vh=Ar&&Ar.__classPrivateFieldSet||function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},wt=Ar&&Ar.__classPrivateFieldGet||function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},fq=Ar&&Ar.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},Wr,jr,Nr;Object.defineProperty(Ar,"__esModule",{value:!0});Ar.TonClient4=void 0;var vn=fq(ph()),G=cq(sl()),Ir=pr(),_x=xx(),bh=class{constructor(e){Wr.set(this,void 0),jr.set(this,void 0),Nr.set(this,void 0),vh(this,Wr,e.endpoint,"f"),vh(this,jr,e.timeout||5e3,"f"),vh(this,Nr,e.httpAdapter,"f")}async getLastBlock(){let e=await vn.default.get(wt(this,Wr,"f")+"/block/latest",{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!dq.is(e.data))throw Error("Mailformed response");return e.data}async getBlock(e){let r=await vn.default.get(wt(this,Wr,"f")+"/block/"+e,{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!Ix.is(r.data))throw Error("Mailformed response");if(!r.data.exist)throw Error("Block is out of scope");return r.data.block}async getBlockByUtime(e){let r=await vn.default.get(wt(this,Wr,"f")+"/block/utime/"+e,{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!Ix.is(r.data))throw Error("Mailformed response");if(!r.data.exist)throw Error("Block is out of scope");return r.data.block}async getAccount(e,r){let n=await vn.default.get(wt(this,Wr,"f")+"/block/"+e+"/"+r.toString({urlSafe:!0}),{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!pq.is(n.data))throw Error("Mailformed response");return n.data}async getAccountLite(e,r){let n=await vn.default.get(wt(this,Wr,"f")+"/block/"+e+"/"+r.toString({urlSafe:!0})+"/lite",{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!hq.is(n.data))throw Error("Mailformed response");return n.data}async isContractDeployed(e,r){return(await this.getAccountLite(e,r)).account.state.type==="active"}async isAccountChanged(e,r,n){let i=await vn.default.get(wt(this,Wr,"f")+"/block/"+e+"/"+r.toString({urlSafe:!0})+"/changed/"+n.toString(10),{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!gq.is(i.data))throw Error("Mailformed response");return i.data}async getTransaction(e,r,n){let i=r.toString({urlSafe:!0}),a=`/block/${e}/${i}/tx/${n.toString(10)}`,o=await vn.default.get(new URL(a,wt(this,Wr,"f")).href,{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!wq.is(o.data))throw Error("Mailformed response");let u=Ir.Cell.fromBoc(v.from(o.data.boc,"base64"))[0];return{tx:(0,Ir.loadTransaction)(u.beginParse()),...o.data}}async getAccountTransactions(e,r,n){let i=await vn.default.get(wt(this,Wr,"f")+"/account/"+e.toString({urlSafe:!0})+"/tx/"+r.toString(10)+"/"+(0,_x.toUrlSafe)(n.toString("base64")),{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!bq.is(i.data))throw Error("Mailformed response");let a=i.data,o=[],u=Ir.Cell.fromBoc(v.from(a.boc,"base64"));for(let f=0;f0&&(n="/"+[...r].sort().join(","));let i=await vn.default.get(wt(this,Wr,"f")+"/block/"+e+"/config"+n,{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!yq.is(i.data))throw Error("Mailformed response");return i.data}async runMethod(e,r,n,i){let a=i&&i.length>0?"/"+(0,_x.toUrlSafe)((0,Ir.serializeTuple)(i).toBoc({idx:!1,crc32:!1}).toString("base64")):"",o=wt(this,Wr,"f")+"/block/"+e+"/"+r.toString({urlSafe:!0})+"/run/"+n+a,u=await vn.default.get(o,{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!mq.is(u.data))throw Error("Mailformed response");let f=u.data.resultRaw?(0,Ir.parseTuple)(Ir.Cell.fromBoc(v.from(u.data.resultRaw,"base64"))[0]):[];return{exitCode:u.data.exitCode,result:f,resultRaw:u.data.resultRaw,block:u.data.block,shardBlock:u.data.shardBlock,reader:new Ir.TupleReader(f)}}async sendMessage(e){let r=await vn.default.post(wt(this,Wr,"f")+"/send",{boc:e.toString("base64")},{adapter:wt(this,Nr,"f"),timeout:wt(this,jr,"f")});if(!vq.is(r.data))throw Error("Mailformed response");return{status:r.data.status}}open(e){return(0,Ir.openContract)(e,r=>Gl(this,null,r.address,r.init))}openAt(e,r){return(0,Ir.openContract)(r,n=>Gl(this,e,n.address,n.init))}provider(e,r){return Gl(this,null,e,r||null)}providerAt(e,r,n){return Gl(this,e,r,n||null)}};Ar.TonClient4=bh;Wr=new WeakMap,jr=new WeakMap,Nr=new WeakMap;function Gl(t,e,r,n){return{async getState(){let i=e;i===null&&(i=(await t.getLastBlock()).last.seqno);let a=await t.getAccount(i,r),o=a.account.last?{lt:BigInt(a.account.last.lt),hash:v.from(a.account.last.hash,"base64")}:null,u;if(a.account.state.type==="active")u={type:"active",code:a.account.state.code?v.from(a.account.state.code,"base64"):null,data:a.account.state.data?v.from(a.account.state.data,"base64"):null};else if(a.account.state.type==="uninit")u={type:"uninit"};else if(a.account.state.type==="frozen")u={type:"frozen",stateHash:v.from(a.account.state.stateHash,"base64")};else throw Error("Unsupported state");return{balance:BigInt(a.account.balance.coins),last:o,state:u}},async get(i,a){let o=e;o===null&&(o=(await t.getLastBlock()).last.seqno);let u=await t.runMethod(o,r,i,a);if(u.exitCode!==0&&u.exitCode!==1)throw Error("Exit code: "+u.exitCode);return{stack:new Ir.TupleReader(u.result)}},async external(i){let a=await t.getLastBlock(),o=null;n&&(await t.getAccountLite(a.last.seqno,r)).account.state.type!=="active"&&(o=n);let u=(0,Ir.external)({to:r,init:o?{code:o.code,data:o.data}:null,body:i}),f=(0,Ir.beginCell)().store((0,Ir.storeMessage)(u)).endCell().toBoc();await t.sendMessage(f)},async internal(i,a){let o=await t.getLastBlock(),u=null;n&&(await t.getAccountLite(o.last.seqno,r)).account.state.type!=="active"&&(u=n);let f=!0;a.bounce!==null&&a.bounce!==void 0&&(f=a.bounce);let A;typeof a.value=="string"?A=(0,Ir.toNano)(a.value):A=a.value;let C=null;typeof a.body=="string"?C=(0,Ir.comment)(a.body):a.body&&(C=a.body),await i.send({to:r,value:A,bounce:f,sendMode:a.sendMode,init:u,body:C})}}}var dq=G.type({last:G.type({seqno:G.number,shard:G.string,workchain:G.number,fileHash:G.string,rootHash:G.string}),init:G.type({fileHash:G.string,rootHash:G.string}),stateRootHash:G.string,now:G.number}),Ix=G.union([G.type({exist:G.literal(!1)}),G.type({exist:G.literal(!0),block:G.type({shards:G.array(G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string,fileHash:G.string,transactions:G.array(G.type({account:G.string,hash:G.string,lt:G.string}))}))})})]),Ax=G.type({lastPaid:G.number,duePayment:G.union([G.null,G.string]),used:G.type({bits:G.number,cells:G.number,publicCells:G.number})}),pq=G.type({account:G.type({state:G.union([G.type({type:G.literal("uninit")}),G.type({type:G.literal("active"),code:G.union([G.string,G.null]),data:G.union([G.string,G.null])}),G.type({type:G.literal("frozen"),stateHash:G.string})]),balance:G.type({coins:G.string}),last:G.union([G.null,G.type({lt:G.string,hash:G.string})]),storageStat:G.union([G.null,Ax])}),block:G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string,fileHash:G.string})}),hq=G.type({account:G.type({state:G.union([G.type({type:G.literal("uninit")}),G.type({type:G.literal("active"),codeHash:G.string,dataHash:G.string}),G.type({type:G.literal("frozen"),stateHash:G.string})]),balance:G.type({coins:G.string}),last:G.union([G.null,G.type({lt:G.string,hash:G.string})]),storageStat:G.union([G.null,Ax])})}),gq=G.type({changed:G.boolean,block:G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string,fileHash:G.string})}),mq=G.type({exitCode:G.number,resultRaw:G.union([G.string,G.null]),block:G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string,fileHash:G.string}),shardBlock:G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string,fileHash:G.string})}),yq=G.type({config:G.type({cell:G.string,address:G.string,globalBalance:G.type({coins:G.string})})}),vq=G.type({status:G.number}),bq=G.type({blocks:G.array(G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string,fileHash:G.string})),boc:G.string}),wq=G.type({block:G.type({workchain:G.number,seqno:G.number,shard:G.string,rootHash:G.string}),boc:G.string,proof:G.string})});var Yn=D(Bn=>{"use strict";p();h();g();y();m();Object.defineProperty(Bn,"__esModule",{value:!0});Bn.createWalletTransferV4=Bn.createWalletTransferV3=Bn.createWalletTransferV2=Bn.createWalletTransferV1=void 0;var Sr=pr(),Xl=Ti();function xq(t){let e=(0,Sr.beginCell)().storeUint(t.seqno,32);t.message&&(e.storeUint(t.sendMode,8),e.storeRef((0,Sr.beginCell)().store((0,Sr.storeMessageRelaxed)(t.message))));let r=(0,Xl.sign)(e.endCell().hash(),t.secretKey);return(0,Sr.beginCell)().storeBuffer(r).storeBuilder(e).endCell()}Bn.createWalletTransferV1=xq;function _q(t){if(t.messages.length>4)throw Error("Maximum number of messages in a single transfer is 4");let e=(0,Sr.beginCell)().storeUint(t.seqno,32);if(t.seqno===0)for(let i=0;i<32;i++)e.storeBit(1);else e.storeUint(t.timeout||Math.floor(Date.now()/1e3)+60,32);for(let i of t.messages)e.storeUint(t.sendMode,8),e.storeRef((0,Sr.beginCell)().store((0,Sr.storeMessageRelaxed)(i)));let r=(0,Xl.sign)(e.endCell().hash(),t.secretKey);return(0,Sr.beginCell)().storeBuffer(r).storeBuilder(e).endCell()}Bn.createWalletTransferV2=_q;function Iq(t){if(t.messages.length>4)throw Error("Maximum number of messages in a single transfer is 4");let e=(0,Sr.beginCell)().storeUint(t.walletId,32);if(t.seqno===0)for(let i=0;i<32;i++)e.storeBit(1);else e.storeUint(t.timeout||Math.floor(Date.now()/1e3)+60,32);e.storeUint(t.seqno,32);for(let i of t.messages)e.storeUint(t.sendMode,8),e.storeRef((0,Sr.beginCell)().store((0,Sr.storeMessageRelaxed)(i)));let r=(0,Xl.sign)(e.endCell().hash(),t.secretKey);return(0,Sr.beginCell)().storeBuffer(r).storeBuilder(e).endCell()}Bn.createWalletTransferV3=Iq;function Aq(t){if(t.messages.length>4)throw Error("Maximum number of messages in a single transfer is 4");let e=(0,Sr.beginCell)().storeUint(t.walletId,32);if(t.seqno===0)for(let i=0;i<32;i++)e.storeBit(1);else e.storeUint(t.timeout||Math.floor(Date.now()/1e3)+60,32);e.storeUint(t.seqno,32),e.storeUint(0,8);for(let i of t.messages)e.storeUint(t.sendMode,8),e.storeRef((0,Sr.beginCell)().store((0,Sr.storeMessageRelaxed)(i)));let r=(0,Xl.sign)(e.endCell().hash(),t.secretKey);return(0,Sr.beginCell)().storeBuffer(r).storeBuilder(e).endCell()}Bn.createWalletTransferV4=Aq});var Ex=D(Ql=>{"use strict";p();h();g();y();m();Object.defineProperty(Ql,"__esModule",{value:!0});Ql.WalletContractV1R1=void 0;var fo=pr(),Sq=Yn(),ws=class{constructor(e,r){this.workchain=e,this.publicKey=r;let n=fo.Cell.fromBoc(v.from("te6cckEBAQEARAAAhP8AIN2k8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVEH98Ik=","base64"))[0],i=(0,fo.beginCell)().storeUint(0,32).storeBuffer(r).endCell();this.init={code:n,data:i},this.address=(0,fo.contractAddress)(e,{code:n,data:i})}static create(e){return new ws(e.workchain,e.publicKey)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){let r=await e.getState();return r.state.type==="active"?fo.Cell.fromBoc(r.state.data)[0].beginParse().loadUint(32):0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=fo.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Sq.createWalletTransferV1)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,message:e.message})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,message:(0,fo.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})});await this.send(e,a)}}}};Ql.WalletContractV1R1=ws});var Mx=D(Jl=>{"use strict";p();h();g();y();m();Object.defineProperty(Jl,"__esModule",{value:!0});Jl.WalletContractV1R2=void 0;var xs=pr(),Eq=Yn(),_s=class{constructor(e,r){this.workchain=e,this.publicKey=r;let n=xs.Cell.fromBoc(v.from("te6cckEBAQEAUwAAov8AIN0gggFMl7qXMO1E0NcLH+Ck8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVNDieG8=","base64"))[0],i=(0,xs.beginCell)().storeUint(0,32).storeBuffer(r).endCell();this.init={code:n,data:i},this.address=(0,xs.contractAddress)(e,{code:n,data:i})}static create(e){return new _s(e.workchain,e.publicKey)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=xs.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Eq.createWalletTransferV1)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,message:e.message})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,message:(0,xs.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})});await this.send(e,a)}}}};Jl.WalletContractV1R2=_s});var Rx=D(Zl=>{"use strict";p();h();g();y();m();Object.defineProperty(Zl,"__esModule",{value:!0});Zl.WalletContractV1R3=void 0;var Is=pr(),Mq=Yn(),As=class{constructor(e,r){this.workchain=e,this.publicKey=r;let n=Is.Cell.fromBoc(v.from("te6cckEBAQEAXwAAuv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVLW4bkI=","base64"))[0],i=(0,Is.beginCell)().storeUint(0,32).storeBuffer(r).endCell();this.init={code:n,data:i},this.address=(0,Is.contractAddress)(e,{code:n,data:i})}static create(e){return new As(e.workchain,e.publicKey)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=Is.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Mq.createWalletTransferV1)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,message:e.message})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,message:(0,Is.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})});await this.send(e,a)}}}};Zl.WalletContractV1R3=As});var Bx=D(ec=>{"use strict";p();h();g();y();m();Object.defineProperty(ec,"__esModule",{value:!0});ec.WalletContractV2R1=void 0;var Ss=pr(),Rq=Yn(),Es=class{constructor(e,r){this.workchain=e,this.publicKey=r;let n=Ss.Cell.fromBoc(v.from("te6cckEBAQEAVwAAqv8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VShNwu2","base64"))[0],i=(0,Ss.beginCell)().storeUint(0,32).storeBuffer(r).endCell();this.init={code:n,data:i},this.address=(0,Ss.contractAddress)(e,{code:n,data:i})}static create(e){return new Es(e.workchain,e.publicKey)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=Ss.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Rq.createWalletTransferV2)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,messages:e.messages,timeout:e.timeout})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,messages:[(0,Ss.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})]});await this.send(e,a)}}}};ec.WalletContractV2R1=Es});var Cx=D(tc=>{"use strict";p();h();g();y();m();Object.defineProperty(tc,"__esModule",{value:!0});tc.WalletContractV2R2=void 0;var Ms=pr(),Bq=Yn(),Rs=class{constructor(e,r){this.workchain=e,this.publicKey=r;let n=Ms.Cell.fromBoc(v.from("te6cckEBAQEAYwAAwv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VQETNeh","base64"))[0],i=(0,Ms.beginCell)().storeUint(0,32).storeBuffer(r).endCell();this.init={code:n,data:i},this.address=(0,Ms.contractAddress)(e,{code:n,data:i})}static create(e){return new Rs(e.workchain,e.publicKey)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=Ms.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Bq.createWalletTransferV2)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,messages:e.messages,timeout:e.timeout})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,messages:[(0,Ms.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})]});await this.send(e,a)}}}};tc.WalletContractV2R2=Rs});var Ux=D(rc=>{"use strict";p();h();g();y();m();Object.defineProperty(rc,"__esModule",{value:!0});rc.WalletContractV3R1=void 0;var Bs=pr(),Cq=Yn(),Cs=class{constructor(e,r,n){this.workchain=e,this.publicKey=r,n!=null?this.walletId=n:this.walletId=698983191+e;let i=Bs.Cell.fromBoc(v.from("te6cckEBAQEAYgAAwP8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVD++buA=","base64"))[0],a=(0,Bs.beginCell)().storeUint(0,32).storeUint(this.walletId,32).storeBuffer(r).endCell();this.init={code:i,data:a},this.address=(0,Bs.contractAddress)(e,{code:i,data:a})}static create(e){return new Cs(e.workchain,e.publicKey,e.walletId)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=Bs.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Cq.createWalletTransferV3)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,messages:e.messages,timeout:e.timeout,walletId:this.walletId})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,messages:[(0,Bs.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})]});await this.send(e,a)}}}};rc.WalletContractV3R1=Cs});var Tx=D(nc=>{"use strict";p();h();g();y();m();Object.defineProperty(nc,"__esModule",{value:!0});nc.WalletContractV3R2=void 0;var Us=pr(),Uq=Yn(),Ts=class{constructor(e,r,n){this.workchain=e,this.publicKey=r,n!=null?this.walletId=n:this.walletId=698983191+e;let i=Us.Cell.fromBoc(v.from("te6cckEBAQEAcQAA3v8AIN0gggFMl7ohggEznLqxn3Gw7UTQ0x/THzHXC//jBOCk8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVBC9ba0=","base64"))[0],a=(0,Us.beginCell)().storeUint(0,32).storeUint(this.walletId,32).storeBuffer(r).endCell();this.init={code:i,data:a},this.address=(0,Us.contractAddress)(e,{code:i,data:a})}static create(e){return new Ts(e.workchain,e.publicKey,e.walletId)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=Us.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Uq.createWalletTransferV3)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,messages:e.messages,timeout:e.timeout,walletId:this.walletId})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,messages:[(0,Us.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})]});await this.send(e,a)}}}};nc.WalletContractV3R2=Ts});var kx=D(ic=>{"use strict";p();h();g();y();m();Object.defineProperty(ic,"__esModule",{value:!0});ic.WalletContractV4=void 0;var ks=pr(),Tq=Yn(),Os=class{constructor(e,r,n){this.workchain=e,this.publicKey=r,n!=null?this.walletId=n:this.walletId=698983191+e;let i=ks.Cell.fromBoc(v.from("te6ccgECFAEAAtQAART/APSkE/S88sgLAQIBIAIDAgFIBAUE+PKDCNcYINMf0x/THwL4I7vyZO1E0NMf0x/T//QE0VFDuvKhUVG68qIF+QFUEGT5EPKj+AAkpMjLH1JAyx9SMMv/UhD0AMntVPgPAdMHIcAAn2xRkyDXSpbTB9QC+wDoMOAhwAHjACHAAuMAAcADkTDjDQOkyMsfEssfy/8QERITAubQAdDTAyFxsJJfBOAi10nBIJJfBOAC0x8hghBwbHVnvSKCEGRzdHK9sJJfBeAD+kAwIPpEAcjKB8v/ydDtRNCBAUDXIfQEMFyBAQj0Cm+hMbOSXwfgBdM/yCWCEHBsdWe6kjgw4w0DghBkc3RyupJfBuMNBgcCASAICQB4AfoA9AQw+CdvIjBQCqEhvvLgUIIQcGx1Z4MesXCAGFAEywUmzxZY+gIZ9ADLaRfLH1Jgyz8gyYBA+wAGAIpQBIEBCPRZMO1E0IEBQNcgyAHPFvQAye1UAXKwjiOCEGRzdHKDHrFwgBhQBcsFUAPPFiP6AhPLassfyz/JgED7AJJfA+ICASAKCwBZvSQrb2omhAgKBrkPoCGEcNQICEekk30pkQzmkD6f+YN4EoAbeBAUiYcVnzGEAgFYDA0AEbjJftRNDXCx+AA9sp37UTQgQFA1yH0BDACyMoHy//J0AGBAQj0Cm+hMYAIBIA4PABmtznaiaEAga5Drhf/AABmvHfaiaEAQa5DrhY/AAG7SB/oA1NQi+QAFyMoHFcv/ydB3dIAYyMsFywIizxZQBfoCFMtrEszMyXP7AMhAFIEBCPRR8qcCAHCBAQjXGPoA0z/IVCBHgQEI9FHyp4IQbm90ZXB0gBjIywXLAlAGzxZQBPoCFMtqEssfyz/Jc/sAAgBsgQEI1xj6ANM/MFIkgQEI9Fnyp4IQZHN0cnB0gBjIywXLAlAFzxZQA/oCE8tqyx8Syz/Jc/sAAAr0AMntVA==","base64"))[0],a=(0,ks.beginCell)().storeUint(0,32).storeUint(this.walletId,32).storeBuffer(this.publicKey).storeBit(0).endCell();this.init={code:i,data:a},this.address=(0,ks.contractAddress)(e,{code:i,data:a})}static create(e){return new Os(e.workchain,e.publicKey,e.walletId)}async getBalance(e){return(await e.getState()).balance}async getSeqno(e){return(await e.getState()).state.type==="active"?(await e.get("seqno",[])).stack.readNumber():0}async send(e,r){await e.external(r)}async sendTransfer(e,r){let n=this.createTransfer(r);await this.send(e,n)}createTransfer(e){let r=ks.SendMode.PAY_GAS_SEPARATELY;return e.sendMode!==null&&e.sendMode!==void 0&&(r=e.sendMode),(0,Tq.createWalletTransferV4)({seqno:e.seqno,sendMode:r,secretKey:e.secretKey,messages:e.messages,timeout:e.timeout,walletId:this.walletId})}sender(e,r){return{send:async n=>{let i=await this.getSeqno(e),a=this.createTransfer({seqno:i,secretKey:r,sendMode:n.sendMode,messages:[(0,ks.internal)({to:n.to,value:n.value,init:n.init,body:n.body,bounce:n.bounce})]});await this.send(e,a)}}}};ic.WalletContractV4=Os});var Ox=D(ac=>{"use strict";p();h();g();y();m();Object.defineProperty(ac,"__esModule",{value:!0});ac.JettonMaster=void 0;var kq=pr(),Ps=class{constructor(e){this.address=e}static create(e){return new Ps(e)}async getWalletAddress(e,r){return(await e.get("get_wallet_address",[{type:"slice",cell:(0,kq.beginCell)().storeAddress(r).endCell()}])).stack.readAddress()}async getJettonData(e){let r=await e.get("get_jetton_data",[]),n=r.stack.readBigNumber(),i=r.stack.readBoolean(),a=r.stack.readAddress(),o=r.stack.readCell(),u=r.stack.readCell();return{totalSupply:n,mintable:i,adminAddress:a,content:o,walletCode:u}}};ac.JettonMaster=Ps});var Px=D(oc=>{"use strict";p();h();g();y();m();Object.defineProperty(oc,"__esModule",{value:!0});oc.JettonWallet=void 0;var qs=class{constructor(e){this.address=e}static create(e){return new qs(e)}async getBalance(e){return(await e.getState()).state.type!=="active"?0n:(await e.get("get_wallet_data",[])).stack.readBigNumber()}};oc.JettonWallet=qs});var wh=D(uc=>{"use strict";p();h();g();y();m();Object.defineProperty(uc,"__esModule",{value:!0});uc.MultisigOrder=void 0;var qx=Ti(),sc=pr(),po=class{constructor(e){this.signatures={},this.payload=e}static fromCell(e){let r=e.beginParse(),n=r.loadMaybeRef()?.beginParse(),i=r.asCell(),a=new po(i);if(n){for(;n.remainingBits>0;){let o=n.loadBuffer(64),u=n.loadUint(8);a.signatures[u]=o,n.remainingRefs>0?n=n.loadRef().asSlice():n.skip(1)}n.endParse()}return a}static fromPayload(e){return new po(e)}addSignature(e,r,n){let i=this.payload.hash();if(!(0,qx.signVerify)(i,r,n.owners.get(e).slice(0,-1)))throw Error("invalid signature");this.signatures[e]=r}sign(e,r){let n=this.payload.hash();return this.signatures[e]=(0,qx.sign)(n,r),n}unionSignatures(e){this.signatures=Object.assign({},this.signatures,e.signatures)}clearSignatures(){this.signatures={}}toCell(e){let r=(0,sc.beginCell)().storeBit(0);for(let n in this.signatures){let i=this.signatures[n];r=(0,sc.beginCell)().storeBit(1).storeRef((0,sc.beginCell)().storeBuffer(i).storeUint(parseInt(n),8).storeBuilder(r).endCell())}return(0,sc.beginCell)().storeUint(e,8).storeBuilder(r).storeBuilder(this.payload.asBuilder()).endCell()}};uc.MultisigOrder=po});var Wx=D(lc=>{"use strict";p();h();g();y();m();Object.defineProperty(lc,"__esModule",{value:!0});lc.MultisigOrderBuilder=void 0;var Ws=pr(),Oq=wh(),xh=class{constructor(e,r){this.messages=(0,Ws.beginCell)(),this.queryId=0n,this.walletId=e,this.queryOffset=r||7200}addMessage(e,r){if(this.messages.refs>=4)throw Error("only 4 refs are allowed");this.updateQueryId(),this.messages.storeUint(r,8),this.messages.storeRef((0,Ws.beginCell)().store((0,Ws.storeMessageRelaxed)(e)).endCell())}clearMessages(){this.messages=(0,Ws.beginCell)()}build(){return Oq.MultisigOrder.fromPayload((0,Ws.beginCell)().storeUint(this.walletId,32).storeUint(this.queryId,64).storeBuilder(this.messages).endCell())}updateQueryId(){let e=BigInt(Math.floor(Date.now()/1e3+this.queryOffset));this.queryId=e<<32n}};lc.MultisigOrderBuilder=xh});var Nx=D(cc=>{"use strict";p();h();g();y();m();Object.defineProperty(cc,"__esModule",{value:!0});cc.MultisigWallet=void 0;var jx=Ti(),en=pr(),Pq=en.Cell.fromBase64("te6ccgECKwEABBgAART/APSkE/S88sgLAQIBIAIDAgFIBAUE2vIgxwCOgzDbPOCDCNcYIPkBAdMH2zwiwAAToVNxePQOb6Hyn9s8VBq6+RDyoAb0BCD5AQHTH1EYuvKq0z9wUwHwCgHCCAGDCryx8mhTFYBA9A5voSCYDqQgwgryZw7f+COqH1NAufJhVCOjU04gIyEiAgLMBgcCASAMDQIBIAgJAgFmCgsAA9GEAiPymAvHoHN9CYbZ5S7Z4BPHohwhJQAtAKkItdJEqCTItdKlwLUAdAT8ArobBKAATwhbpEx4CBukTDgAdAg10rDAJrUAvALyFjPFszJ4HHXI8gBzxb0AMmACASAODwIBIBQVARW77ZbVA0cFUg2zyCoCAUgQEQIBIBITAXOxHXQgwjXGCD5AQHTB4IB1MTtQ9hTIHj0Dm+h8p/XC/9eMfkQ8qCuAfQEIW6TW3Ey4PkBWNs8AaQBgJwA9rtqA6ADoAPoCAXoCEfyAgPyA3XlP+AXkegAA54tkwAAXrhlXP8EA1WZ2oexAAgEgFhcCASAYGQFRtyVbZ4YmRmpGEAgegc30McJNhFpAADMaYeYuAFrgJhwLb+4cC3d0bhAjAYm1WZtnhqvgb+2xxsoicAgej430pBHEoFpAADHDhBACGuQkuuBk9kUWE5kAOeLKhACQCB6IYFImHFImHFImXEA2YlzNijAjAgEgGhsAF7UGtc4QQDVZnah7EAIBIBwdAgOZOB4fARGsGm2eL4G2CUAjABWt+UEAzJV2oewYQAENqTbPBVfBYCMAFa3f3CCAarM7UPYgAiDbPALyZfgAUENxQxPbPO1UIyoACtP/0wcwBKDbPC+uUyCw8mISsQKkJbNTHLmwJYEA4aojoCi8sPJpggGGoPgBBZcCERACPj4wjo0REB/bPEDXePRDEL0F4lQWW1Rz51YQU9zbPFRxClR6vCQlKCYAIO1E0NMf0wfTB9M/9AT0BNEAXgGOGjDSAAHyo9MH0wdQA9cBIPkBBfkBFbrypFAD4GwhIddKqgIi10m68qtwVCATAAwByMv/ywcE1ts87VT4D3AlblOJvrGYEG4QLVDHXwePGzBUJANQTds8UFWgRlAQSRA6SwlTuds8UFQWf+L4AAeDJaGOLCaAQPSWb6UglDBTA7neII4WODk5CNIAAZfTBzAW8AcFkTDifwgHBZJsMeKz5jAGKicoKQBgcI4pA9CDCNcY0wf0BDBTFnj0Dm+h8qXXC/9URUT5EPKmrlIgsVIDvRShI27mbCIyAH5SML6OIF8D+ACTItdKmALTB9QC+wAC6DJwyMoAQBSAQPRDAvAHjhdxyMsAFMsHEssHWM8BWM8WQBOAQPRDAeIBII6KEEUQNEMA2zztVJJfBuIqABzIyx/LB8sHyz/0APQAyQ=="),js=class{constructor(e,r,n,i,a){this.provider=null,this.owners=en.Dictionary.empty(),this.workchain=r,this.walletId=n,this.k=i;for(let o=0;o{"use strict";p();h();g();y();m();var qq=ot&&ot.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Wq=ot&&ot.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&qq(e,t,r)};Object.defineProperty(ot,"__esModule",{value:!0});ot.MultisigWallet=ot.MultisigOrderBuilder=ot.MultisigOrder=ot.JettonWallet=ot.JettonMaster=ot.WalletContractV4=ot.WalletContractV3R2=ot.WalletContractV3R1=ot.WalletContractV2R2=ot.WalletContractV2R1=ot.WalletContractV1R3=ot.WalletContractV1R2=ot.WalletContractV1R1=ot.TonClient4=ot.TonClient=ot.HttpApi=void 0;Wq(pr(),ot);var jq=mh();Object.defineProperty(ot,"HttpApi",{enumerable:!0,get:function(){return jq.HttpApi}});var Nq=wx();Object.defineProperty(ot,"TonClient",{enumerable:!0,get:function(){return Nq.TonClient}});var Fq=Sx();Object.defineProperty(ot,"TonClient4",{enumerable:!0,get:function(){return Fq.TonClient4}});var Lq=Ex();Object.defineProperty(ot,"WalletContractV1R1",{enumerable:!0,get:function(){return Lq.WalletContractV1R1}});var Dq=Mx();Object.defineProperty(ot,"WalletContractV1R2",{enumerable:!0,get:function(){return Dq.WalletContractV1R2}});var zq=Rx();Object.defineProperty(ot,"WalletContractV1R3",{enumerable:!0,get:function(){return zq.WalletContractV1R3}});var Hq=Bx();Object.defineProperty(ot,"WalletContractV2R1",{enumerable:!0,get:function(){return Hq.WalletContractV2R1}});var Kq=Cx();Object.defineProperty(ot,"WalletContractV2R2",{enumerable:!0,get:function(){return Kq.WalletContractV2R2}});var Vq=Ux();Object.defineProperty(ot,"WalletContractV3R1",{enumerable:!0,get:function(){return Vq.WalletContractV3R1}});var Yq=Tx();Object.defineProperty(ot,"WalletContractV3R2",{enumerable:!0,get:function(){return Yq.WalletContractV3R2}});var $q=kx();Object.defineProperty(ot,"WalletContractV4",{enumerable:!0,get:function(){return $q.WalletContractV4}});var Gq=Ox();Object.defineProperty(ot,"JettonMaster",{enumerable:!0,get:function(){return Gq.JettonMaster}});var Xq=Px();Object.defineProperty(ot,"JettonWallet",{enumerable:!0,get:function(){return Xq.JettonWallet}});var Qq=wh();Object.defineProperty(ot,"MultisigOrder",{enumerable:!0,get:function(){return Qq.MultisigOrder}});var Jq=Wx();Object.defineProperty(ot,"MultisigOrderBuilder",{enumerable:!0,get:function(){return Jq.MultisigOrderBuilder}});var Zq=Nx();Object.defineProperty(ot,"MultisigWallet",{enumerable:!0,get:function(){return Zq.MultisigWallet}})});var Dx=D((fc,Lx)=>{p();h();g();y();m();(function(t,e){typeof fc=="object"&&typeof Lx<"u"?e(fc):typeof define=="function"&&define.amd?define(["exports"],e):e(t.WHATWGFetch={})})(fc,function(t){"use strict";var e=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof e<"u"&&e,r={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};function n($){return $&&DataView.prototype.isPrototypeOf($)}if(r.arrayBuffer)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function($){return $&&i.indexOf(Object.prototype.toString.call($))>-1};function o($){if(typeof $!="string"&&($=String($)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test($)||$==="")throw new TypeError('Invalid character in header field name: "'+$+'"');return $.toLowerCase()}function u($){return typeof $!="string"&&($=String($)),$}function f($){var ue={next:function(){var Fe=$.shift();return{done:Fe===void 0,value:Fe}}};return r.iterable&&(ue[Symbol.iterator]=function(){return ue}),ue}function A($){this.map={},$ instanceof A?$.forEach(function(ue,Fe){this.append(Fe,ue)},this):Array.isArray($)?$.forEach(function(ue){this.append(ue[0],ue[1])},this):$&&Object.getOwnPropertyNames($).forEach(function(ue){this.append(ue,$[ue])},this)}A.prototype.append=function($,ue){$=o($),ue=u(ue);var Fe=this.map[$];this.map[$]=Fe?Fe+", "+ue:ue},A.prototype.delete=function($){delete this.map[o($)]},A.prototype.get=function($){return $=o($),this.has($)?this.map[$]:null},A.prototype.has=function($){return this.map.hasOwnProperty(o($))},A.prototype.set=function($,ue){this.map[o($)]=u(ue)},A.prototype.forEach=function($,ue){for(var Fe in this.map)this.map.hasOwnProperty(Fe)&&$.call(ue,this.map[Fe],Fe,this)},A.prototype.keys=function(){var $=[];return this.forEach(function(ue,Fe){$.push(Fe)}),f($)},A.prototype.values=function(){var $=[];return this.forEach(function(ue){$.push(ue)}),f($)},A.prototype.entries=function(){var $=[];return this.forEach(function(ue,Fe){$.push([Fe,ue])}),f($)},r.iterable&&(A.prototype[Symbol.iterator]=A.prototype.entries);function C($){if($.bodyUsed)return Promise.reject(new TypeError("Already read"));$.bodyUsed=!0}function H($){return new Promise(function(ue,Fe){$.onload=function(){ue($.result)},$.onerror=function(){Fe($.error)}})}function V($){var ue=new FileReader,Fe=H(ue);return ue.readAsArrayBuffer($),Fe}function X($){var ue=new FileReader,Fe=H(ue);return ue.readAsText($),Fe}function xe($){for(var ue=new Uint8Array($),Fe=new Array(ue.length),At=0;At-1?ue:$}function Ft($,ue){if(!(this instanceof Ft))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');ue=ue||{};var Fe=ue.body;if($ instanceof Ft){if($.bodyUsed)throw new TypeError("Already read");this.url=$.url,this.credentials=$.credentials,ue.headers||(this.headers=new A($.headers)),this.method=$.method,this.mode=$.mode,this.signal=$.signal,!Fe&&$._bodyInit!=null&&(Fe=$._bodyInit,$.bodyUsed=!0)}else this.url=String($);if(this.credentials=ue.credentials||this.credentials||"same-origin",(ue.headers||!this.headers)&&(this.headers=new A(ue.headers)),this.method=tr(ue.method||this.method||"GET"),this.mode=ue.mode||this.mode||null,this.signal=ue.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Fe)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(Fe),(this.method==="GET"||this.method==="HEAD")&&(ue.cache==="no-store"||ue.cache==="no-cache")){var At=/([?&])_=[^&]*/;if(At.test(this.url))this.url=this.url.replace(At,"$1_="+new Date().getTime());else{var Bt=/\?/;this.url+=(Bt.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}Ft.prototype.clone=function(){return new Ft(this,{body:this._bodyInit})};function Jt($){var ue=new FormData;return $.trim().split("&").forEach(function(Fe){if(Fe){var At=Fe.split("="),Bt=At.shift().replace(/\+/g," "),tt=At.join("=").replace(/\+/g," ");ue.append(decodeURIComponent(Bt),decodeURIComponent(tt))}}),ue}function Tt($){var ue=new A,Fe=$.replace(/\r?\n[\t ]+/g," ");return Fe.split("\r").map(function(At){return At.indexOf(` `)===0?At.substr(1,At.length):At}).forEach(function(At){var Bt=At.split(":"),tt=Bt.shift().trim();if(tt){var rr=Bt.join(":").trim();ue.append(tt,rr)}}),ue}We.call(Ft.prototype);function sr($,ue){if(!(this instanceof sr))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');ue||(ue={}),this.type="default",this.status=ue.status===void 0?200:ue.status,this.ok=this.status>=200&&this.status<300,this.statusText=ue.statusText===void 0?"":""+ue.statusText,this.headers=new A(ue.headers),this.url=ue.url||"",this._initBody($)}We.call(sr.prototype),sr.prototype.clone=function(){return new sr(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new A(this.headers),url:this.url})},sr.error=function(){var $=new sr(null,{status:0,statusText:""});return $.type="error",$};var Yr=[301,302,303,307,308];sr.redirect=function($,ue){if(Yr.indexOf(ue)===-1)throw new RangeError("Invalid status code");return new sr(null,{status:ue,headers:{location:$}})},t.DOMException=e.DOMException;try{new t.DOMException}catch{t.DOMException=function(ue,Fe){this.message=ue,this.name=Fe;var At=Error(ue);this.stack=At.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function bn($,ue){return new Promise(function(Fe,At){var Bt=new Ft($,ue);if(Bt.signal&&Bt.signal.aborted)return At(new t.DOMException("Aborted","AbortError"));var tt=new XMLHttpRequest;function rr(){tt.abort()}tt.onload=function(){var j={status:tt.status,statusText:tt.statusText,headers:Tt(tt.getAllResponseHeaders()||"")};j.url="responseURL"in tt?tt.responseURL:j.headers.get("X-Request-URL");var je="response"in tt?tt.response:tt.responseText;setTimeout(function(){Fe(new sr(je,j))},0)},tt.onerror=function(){setTimeout(function(){At(new TypeError("Network request failed"))},0)},tt.ontimeout=function(){setTimeout(function(){At(new TypeError("Network request failed"))},0)},tt.onabort=function(){setTimeout(function(){At(new t.DOMException("Aborted","AbortError"))},0)};function fe(j){try{return j===""&&e.location.href?e.location.href:j}catch{return j}}tt.open(Bt.method,fe(Bt.url),!0),Bt.credentials==="include"?tt.withCredentials=!0:Bt.credentials==="omit"&&(tt.withCredentials=!1),"responseType"in tt&&(r.blob?tt.responseType="blob":r.arrayBuffer&&Bt.headers.get("Content-Type")&&Bt.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(tt.responseType="arraybuffer")),ue&&typeof ue.headers=="object"&&!(ue.headers instanceof A)?Object.getOwnPropertyNames(ue.headers).forEach(function(j){tt.setRequestHeader(j,u(ue.headers[j]))}):Bt.headers.forEach(function(j,je){tt.setRequestHeader(je,j)}),Bt.signal&&(Bt.signal.addEventListener("abort",rr),tt.onreadystatechange=function(){tt.readyState===4&&Bt.signal.removeEventListener("abort",rr)}),tt.send(typeof Bt._bodyInit>"u"?null:Bt._bodyInit)})}bn.polyfill=!0,e.fetch||(e.fetch=bn,e.Headers=A,e.Request=Ft,e.Response=sr),t.Headers=A,t.Request=Ft,t.Response=sr,t.fetch=bn,Object.defineProperty(t,"__esModule",{value:!0})})});var Hx=D((Qae,zx)=>{p();h();g();y();m();Dx();zx.exports=self.fetch.bind(self)});var Kx=D(ho=>{"use strict";p();h();g();y();m();var eW=ho&&ho.__awaiter||function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function u(C){try{A(n.next(C))}catch(H){o(H)}}function f(C){try{A(n.throw(C))}catch(H){o(H)}}function A(C){C.done?a(C.value):i(C.value).then(u,f)}A((n=n.apply(t,e||[])).next())})};Object.defineProperty(ho,"__esModule",{value:!0});ho.Nodes=void 0;Hx();var _h=class{constructor(){this.nodeIndex=-1,this.committee=new Set,this.topology=[],this.initTime=0}init(e){return eW(this,void 0,void 0,function*(){this.nodeIndex=-1,this.committee.clear(),this.topology=[],this.initTime=Date.now();let r=[];try{r=yield(yield fetch(e)).json()}catch(n){throw new Error(`exception in fetch(${e}): ${n}`)}for(let n of r)n.Healthy==="1"&&this.topology.push(n);if(this.topology.length===0)throw new Error(`no healthy nodes in ${e}`)})}getHealthyFor(e){var r;let n=[];for(let i of this.topology)i.Weight>0&&(!((r=i.Mngr)===null||r===void 0)&&r.health[e])&&n.push(i);return n}};ho.Nodes=_h});var Vx=D((loe,tW)=>{tW.exports={name:"@orbs-network/ton-access",version:"2.3.3",description:"Unthrottled anonymous RPC access to TON blockchain via a robust decentralized network",source:"lib/index.js",main:"lib/index.js",types:"lib/index.d.ts",files:["lib/**/*"],scripts:{test:"env mocha -r ts-node/register test/**/*.ts","test:v2":"env mocha -r ts-node/register test/ton-v2.ts","test:v4":"env mocha -r ts-node/register test/ton-v4.ts",cleanup:"rimraf ./lib","build:web:reg":"esbuild ./lib/web.js --bundle --sourcemap --target=es2015 --outfile=./dist/index.js","build:web:min":"esbuild ./lib/web.js --bundle --minify --target=es2015 --outfile=./dist/index.min.js","build:web":"rimraf ./dist && npm run build:web:reg && npm run build:web:min",build:"npm run lint && rimraf ./lib && tsc && npm run build:web",format:'prettier --write "src/**/*.ts"',lint:"tslint -p tsconfig.json",prepare:"npm run build",prepublishOnly:"npm test && npm run lint",preversion:"npm run lint",version:"npm run format && git add -A src",postversion:"git push && git push --tags"},repository:{type:"git",url:"git+https://github.com/orbs-network/ton-access.git"},author:"yuval@orbs.com",license:"MIT",bugs:{url:"https://github.com/orbs-network/ton-access/issues"},homepage:"https://github.com/orbs-network/ton-access#readme",dependencies:{"isomorphic-fetch":"^3.0.0"},devDependencies:{"@types/bn.js":"^5.1.1","@types/chai":"^4.3.4","@types/isomorphic-fetch":"^0.0.36","@types/mocha":"^10.0.0",buffer:"^6.0.3",chai:"^4.3.7",esbuild:"^0.15.14",mocha:"^10.1.0",prettier:"^2.7.1",rimraf:"^3.0.2",ton:"^12.1.3","ton-lite-client":"npm:@truecarry/ton-lite-client@^1.6.1",tonweb:"^0.0.58","ts-node":"^10.9.1",tslib:"^2.4.0",tslint:"^6.1.3","tslint-config-prettier":"^1.18.0"}}});var Xx=D(Fr=>{"use strict";p();h();g();y();m();var go=Fr&&Fr.__awaiter||function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function u(C){try{A(n.next(C))}catch(H){o(H)}}function f(C){try{A(n.throw(C))}catch(H){o(H)}}function A(C){C.done?a(C.value):i(C.value).then(u,f)}A((n=n.apply(t,e||[])).next())})};Object.defineProperty(Fr,"__esModule",{value:!0});Fr.getHttpV4Endpoint=Fr.getHttpV4Endpoints=Fr.getHttpEndpoint=Fr.getHttpEndpoints=Fr.Access=void 0;var rW=Kx(),dc=class{constructor(){this.host="ton.access.orbs.network",this.urlVersion=1,this.nodes=new rW.Nodes}init(){return go(this,void 0,void 0,function*(){let e=Vx();yield this.nodes.init(`https://${this.host}/mngr/nodes?npm_version=${e.version}`)})}makeProtonet(e,r){let n="";switch(e){case"toncenter-api-v2":n+="v2-";break;case"ton-api-v4":n+="v4-";break}return n+=r,n}weightedRandom(e){let r=0;for(let a of e)r+=a.Weight;let n=Math.floor(Math.random()*r),i=0;for(let a of e){if(n>=i&&nAh,__asyncDelegator:()=>yW,__asyncGenerator:()=>mW,__asyncValues:()=>vW,__await:()=>Ns,__awaiter:()=>cW,__classPrivateFieldGet:()=>_W,__classPrivateFieldSet:()=>IW,__createBinding:()=>dW,__decorate:()=>sW,__exportStar:()=>pW,__extends:()=>aW,__generator:()=>fW,__importDefault:()=>xW,__importStar:()=>wW,__makeTemplateObject:()=>bW,__metadata:()=>lW,__param:()=>uW,__read:()=>Qx,__rest:()=>oW,__spread:()=>hW,__spreadArrays:()=>gW,__values:()=>Sh});function aW(t,e){Ih(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}function oW(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i=0;u--)(o=t[u])&&(a=(i<3?o(a):i>3?o(e,r,a):o(e,r))||a);return i>3&&a&&Object.defineProperty(e,r,a),a}function uW(t,e){return function(r,n){e(r,n,t)}}function lW(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function cW(t,e,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function u(C){try{A(n.next(C))}catch(H){o(H)}}function f(C){try{A(n.throw(C))}catch(H){o(H)}}function A(C){C.done?a(C.value):i(C.value).then(u,f)}A((n=n.apply(t,e||[])).next())})}function fW(t,e){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(A){return function(C){return f([A,C])}}function f(A){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=A[0]&2?i.return:A[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,A[1])).done)return a;switch(i=0,a&&(A=[A[0]&2,a.value]),A[0]){case 0:case 1:a=A;break;case 4:return r.label++,{value:A[1],done:!1};case 5:r.label++,i=A[1],A=[0];continue;case 7:A=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(A[0]===6||A[0]===2)){r=0;continue}if(A[0]===3&&(!a||A[1]>a[0]&&A[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Qx(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,a=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(u){o={error:u}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return a}function hW(){for(var t=[],e=0;e1||u(V,X)})})}function u(V,X){try{f(n[V](X))}catch(xe){H(a[0][3],xe)}}function f(V){V.value instanceof Ns?Promise.resolve(V.value.v).then(A,C):H(a[0][2],V)}function A(V){u("next",V)}function C(V){u("throw",V)}function H(V,X){V(X),a.shift(),a.length&&u(a[0][0],a[0][1])}}function yW(t){var e,r;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,a){e[i]=t[i]?function(o){return(r=!r)?{value:Ns(t[i](o)),done:i==="return"}:a?a(o):o}:a}}function vW(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],r;return e?e.call(t):(t=typeof Sh=="function"?Sh(t):t[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(a){r[a]=t[a]&&function(o){return new Promise(function(u,f){o=t[a](o),i(u,f,o.done,o.value)})}}function i(a,o,u,f){Promise.resolve(f).then(function(A){a({value:A,done:u})},o)}}function bW(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function wW(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function xW(t){return t&&t.__esModule?t:{default:t}}function _W(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function IW(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r}var Ih,Ah,Mh=Gr(()=>{p();h();g();y();m();Ih=function(t,e){return Ih=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},Ih(t,e)};Ah=function(){return Ah=Object.assign||function(e){for(var r,n=1,i=arguments.length;n{"use strict";p();h();g();y();m();Object.defineProperty(tn,"__esModule",{value:!0});tn.MAX_HASHABLE_LENGTH=tn.INIT=tn.KEY=tn.DIGEST_LENGTH=tn.BLOCK_SIZE=void 0;tn.BLOCK_SIZE=64;tn.DIGEST_LENGTH=32;tn.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);tn.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];tn.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1});var Jx=D(pc=>{"use strict";p();h();g();y();m();Object.defineProperty(pc,"__esModule",{value:!0});pc.RawSha256=void 0;var rn=Rh(),AW=function(){function t(){this.state=Int32Array.from(rn.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}return t.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var r=0,n=e.byteLength;if(this.bytesHashed+=n,this.bytesHashed*8>rn.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[r++],n--,this.bufferLength===rn.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0)},t.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%rn.BLOCK_SIZE>=rn.BLOCK_SIZE-8){for(var i=this.bufferLength;i>>24&255,a[i*4+1]=this.state[i]>>>16&255,a[i*4+2]=this.state[i]>>>8&255,a[i*4+3]=this.state[i]>>>0&255;return a},t.prototype.hashBuffer=function(){for(var e=this,r=e.buffer,n=e.state,i=n[0],a=n[1],o=n[2],u=n[3],f=n[4],A=n[5],C=n[6],H=n[7],V=0;V>>17|X<<15)^(X>>>19|X<<13)^X>>>10;X=this.temp[V-15];var me=(X>>>7|X<<25)^(X>>>18|X<<14)^X>>>3;this.temp[V]=(xe+this.temp[V-7]|0)+(me+this.temp[V-16]|0)}var We=(((f>>>6|f<<26)^(f>>>11|f<<21)^(f>>>25|f<<7))+(f&A^~f&C)|0)+(H+(rn.KEY[V]+this.temp[V]|0)|0)|0,er=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&a^i&o^a&o)|0;H=C,C=A,A=f,f=u+We|0,u=o,o=a,a=i,i=We+er|0}n[0]+=i,n[1]+=a,n[2]+=o,n[3]+=u,n[4]+=f,n[5]+=A,n[6]+=C,n[7]+=H},t}();pc.RawSha256=AW});var Zx=D(mo=>{"use strict";p();h();g();y();m();Object.defineProperty(mo,"__esModule",{value:!0});mo.toUtf8=mo.fromUtf8=void 0;var SW=t=>{let e=[];for(let r=0,n=t.length;r>6|192,i&63|128);else if(r+1>18|240,a>>12&63|128,a>>6&63|128,a&63|128)}else e.push(i>>12|224,i>>6&63|128,i&63|128)}return Uint8Array.from(e)};mo.fromUtf8=SW;var EW=t=>{let e="";for(let r=0,n=t.length;ru.toString(16)).join("%");e+=decodeURIComponent(o)}else e+=String.fromCharCode((i&15)<<12|(t[++r]&63)<<6|t[++r]&63)}return e};mo.toUtf8=EW});var e_=D(yo=>{"use strict";p();h();g();y();m();Object.defineProperty(yo,"__esModule",{value:!0});yo.toUtf8=yo.fromUtf8=void 0;function MW(t){return new TextEncoder().encode(t)}yo.fromUtf8=MW;function RW(t){return new TextDecoder("utf-8").decode(t)}yo.toUtf8=RW});var n_=D(vo=>{"use strict";p();h();g();y();m();Object.defineProperty(vo,"__esModule",{value:!0});vo.toUtf8=vo.fromUtf8=void 0;var t_=Zx(),r_=e_(),BW=t=>typeof TextEncoder=="function"?(0,r_.fromUtf8)(t):(0,t_.fromUtf8)(t);vo.fromUtf8=BW;var CW=t=>typeof TextDecoder=="function"?(0,r_.toUtf8)(t):(0,t_.toUtf8)(t);vo.toUtf8=CW});var i_=D(hc=>{"use strict";p();h();g();y();m();Object.defineProperty(hc,"__esModule",{value:!0});hc.convertToBuffer=void 0;var UW=n_(),TW=typeof v<"u"&&v.from?function(t){return v.from(t,"utf8")}:UW.fromUtf8;function kW(t){return t instanceof Uint8Array?t:typeof t=="string"?TW(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(t)}hc.convertToBuffer=kW});var a_=D(gc=>{"use strict";p();h();g();y();m();Object.defineProperty(gc,"__esModule",{value:!0});gc.isEmptyData=void 0;function OW(t){return typeof t=="string"?t.length===0:t.byteLength===0}gc.isEmptyData=OW});var o_=D(mc=>{"use strict";p();h();g();y();m();Object.defineProperty(mc,"__esModule",{value:!0});mc.numToUint8=void 0;function PW(t){return new Uint8Array([(t&4278190080)>>24,(t&16711680)>>16,(t&65280)>>8,t&255])}mc.numToUint8=PW});var s_=D(yc=>{"use strict";p();h();g();y();m();Object.defineProperty(yc,"__esModule",{value:!0});yc.uint32ArrayFrom=void 0;function qW(t){if(!Uint32Array.from){for(var e=new Uint32Array(t.length),r=0;r{"use strict";p();h();g();y();m();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.uint32ArrayFrom=Cn.numToUint8=Cn.isEmptyData=Cn.convertToBuffer=void 0;var WW=i_();Object.defineProperty(Cn,"convertToBuffer",{enumerable:!0,get:function(){return WW.convertToBuffer}});var jW=a_();Object.defineProperty(Cn,"isEmptyData",{enumerable:!0,get:function(){return jW.isEmptyData}});var NW=o_();Object.defineProperty(Cn,"numToUint8",{enumerable:!0,get:function(){return NW.numToUint8}});var FW=s_();Object.defineProperty(Cn,"uint32ArrayFrom",{enumerable:!0,get:function(){return FW.uint32ArrayFrom}})});var c_=D(bc=>{"use strict";p();h();g();y();m();Object.defineProperty(bc,"__esModule",{value:!0});bc.Sha256=void 0;var l_=(Mh(),Rc(Eh)),vc=Rh(),Bh=Jx(),Ch=u_(),LW=function(){function t(e){if(this.hash=new Bh.RawSha256,e){this.outer=new Bh.RawSha256;var r=DW(e),n=new Uint8Array(vc.BLOCK_SIZE);n.set(r);for(var i=0;ivc.BLOCK_SIZE){var r=new Bh.RawSha256;r.update(e),e=r.digest()}var n=new Uint8Array(vc.BLOCK_SIZE);return n.set(e),n}});var f_=D(Uh=>{"use strict";p();h();g();y();m();Object.defineProperty(Uh,"__esModule",{value:!0});var zW=(Mh(),Rc(Eh));zW.__exportStar(c_(),Uh)});var k_=D((Kse,T_)=>{p();h();g();y();m();var qh={exports:{}};function Wh(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(function(e){var r=t[e];typeof r=="object"&&!Object.isFrozen(r)&&Wh(r)}),t}qh.exports=Wh;qh.exports.default=Wh;var xc=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function __(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Si(t,...e){let r=Object.create(null);for(let n in t)r[n]=t[n];return e.forEach(function(n){for(let i in n)r[i]=n[i]}),r}var $W="",m_=t=>!!t.scope||t.sublanguage&&t.language,GW=(t,{prefix:e})=>{if(t.includes(".")){let r=t.split(".");return[`${e}${r.shift()}`,...r.map((n,i)=>`${n}${"_".repeat(i+1)}`)].join(" ")}return`${e}${t}`},kh=class{constructor(e,r){this.buffer="",this.classPrefix=r.classPrefix,e.walk(this)}addText(e){this.buffer+=__(e)}openNode(e){if(!m_(e))return;let r="";e.sublanguage?r=`language-${e.language}`:r=GW(e.scope,{prefix:this.classPrefix}),this.span(r)}closeNode(e){m_(e)&&(this.buffer+=$W)}value(){return this.buffer}span(e){this.buffer+=``}},y_=(t={})=>{let e={children:[]};return Object.assign(e,t),e},Fs=class{constructor(){this.rootNode=y_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let r=y_({scope:e});this.add(r),this.stack.push(r)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,r){return typeof r=="string"?e.addText(r):r.children&&(e.openNode(r),r.children.forEach(n=>this._walk(e,n)),e.closeNode(r)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(r=>typeof r=="string")?e.children=[e.children.join("")]:e.children.forEach(r=>{Fs._collapse(r)}))}},Oh=class extends Fs{constructor(e){super(),this.options=e}addKeyword(e,r){e!==""&&(this.openNode(r),this.addText(e),this.closeNode())}addText(e){e!==""&&this.add(e)}addSublanguage(e,r){let n=e.root;n.sublanguage=!0,n.language=r,this.add(n)}toHTML(){return new kh(this,this.options).value()}finalize(){return!0}};function Ls(t){return t?typeof t=="string"?t:t.source:null}function I_(t){return Ki("(?=",t,")")}function XW(t){return Ki("(?:",t,")*")}function QW(t){return Ki("(?:",t,")?")}function Ki(...t){return t.map(r=>Ls(r)).join("")}function JW(t){let e=t[t.length-1];return typeof e=="object"&&e.constructor===Object?(t.splice(t.length-1,1),e):{}}function jh(...t){return"("+(JW(t).capture?"":"?:")+t.map(n=>Ls(n)).join("|")+")"}function A_(t){return new RegExp(t.toString()+"|").exec("").length-1}function ZW(t,e){let r=t&&t.exec(e);return r&&r.index===0}var ej=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Nh(t,{joinWith:e}){let r=0;return t.map(n=>{r+=1;let i=r,a=Ls(n),o="";for(;a.length>0;){let u=ej.exec(a);if(!u){o+=a;break}o+=a.substring(0,u.index),a=a.substring(u.index+u[0].length),u[0][0]==="\\"&&u[1]?o+="\\"+String(Number(u[1])+i):(o+=u[0],u[0]==="("&&r++)}return o}).map(n=>`(${n})`).join(e)}var tj=/\b\B/,S_="[a-zA-Z]\\w*",Fh="[a-zA-Z_]\\w*",E_="\\b\\d+(\\.\\d+)?",M_="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",R_="\\b(0b[01]+)",rj="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",nj=(t={})=>{let e=/^#![ ]*\//;return t.binary&&(t.begin=Ki(e,/.*\b/,t.binary,/\b.*/)),Si({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(r,n)=>{r.index!==0&&n.ignoreMatch()}},t)},Ds={begin:"\\\\[\\s\\S]",relevance:0},ij={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Ds]},aj={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Ds]},oj={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Ic=function(t,e,r={}){let n=Si({scope:"comment",begin:t,end:e,contains:[]},r);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=jh("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:Ki(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},sj=Ic("//","$"),uj=Ic("/\\*","\\*/"),lj=Ic("#","$"),cj={scope:"number",begin:E_,relevance:0},fj={scope:"number",begin:M_,relevance:0},dj={scope:"number",begin:R_,relevance:0},pj={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Ds,{begin:/\[/,end:/\]/,relevance:0,contains:[Ds]}]}]},hj={scope:"title",begin:S_,relevance:0},gj={scope:"title",begin:Fh,relevance:0},mj={begin:"\\.\\s*"+Fh,relevance:0},yj=function(t){return Object.assign(t,{"on:begin":(e,r)=>{r.data._beginMatch=e[1]},"on:end":(e,r)=>{r.data._beginMatch!==e[1]&&r.ignoreMatch()}})},wc=Object.freeze({__proto__:null,MATCH_NOTHING_RE:tj,IDENT_RE:S_,UNDERSCORE_IDENT_RE:Fh,NUMBER_RE:E_,C_NUMBER_RE:M_,BINARY_NUMBER_RE:R_,RE_STARTERS_RE:rj,SHEBANG:nj,BACKSLASH_ESCAPE:Ds,APOS_STRING_MODE:ij,QUOTE_STRING_MODE:aj,PHRASAL_WORDS_MODE:oj,COMMENT:Ic,C_LINE_COMMENT_MODE:sj,C_BLOCK_COMMENT_MODE:uj,HASH_COMMENT_MODE:lj,NUMBER_MODE:cj,C_NUMBER_MODE:fj,BINARY_NUMBER_MODE:dj,REGEXP_MODE:pj,TITLE_MODE:hj,UNDERSCORE_TITLE_MODE:gj,METHOD_GUARD:mj,END_SAME_AS_BEGIN:yj});function vj(t,e){t.input[t.index-1]==="."&&e.ignoreMatch()}function bj(t,e){t.className!==void 0&&(t.scope=t.className,delete t.className)}function wj(t,e){e&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=vj,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function xj(t,e){Array.isArray(t.illegal)&&(t.illegal=jh(...t.illegal))}function _j(t,e){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function Ij(t,e){t.relevance===void 0&&(t.relevance=1)}var Aj=(t,e)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");let r=Object.assign({},t);Object.keys(t).forEach(n=>{delete t[n]}),t.keywords=r.keywords,t.begin=Ki(r.beforeMatch,I_(r.begin)),t.starts={relevance:0,contains:[Object.assign(r,{endsParent:!0})]},t.relevance=0,delete r.beforeMatch},Sj=["of","and","for","in","not","or","if","then","parent","list","value"],Ej="keyword";function B_(t,e,r=Ej){let n=Object.create(null);return typeof t=="string"?i(r,t.split(" ")):Array.isArray(t)?i(r,t):Object.keys(t).forEach(function(a){Object.assign(n,B_(t[a],e,a))}),n;function i(a,o){e&&(o=o.map(u=>u.toLowerCase())),o.forEach(function(u){let f=u.split("|");n[f[0]]=[a,Mj(f[0],f[1])]})}}function Mj(t,e){return e?Number(e):Rj(t)?0:1}function Rj(t){return Sj.includes(t.toLowerCase())}var v_={},Hi=t=>{console.error(t)},b_=(t,...e)=>{console.log(`WARN: ${t}`,...e)},bo=(t,e)=>{v_[`${t}/${e}`]||(console.log(`Deprecated as of ${t}. ${e}`),v_[`${t}/${e}`]=!0)},_c=new Error;function C_(t,e,{key:r}){let n=0,i=t[r],a={},o={};for(let u=1;u<=e.length;u++)o[u+n]=i[u],a[u+n]=!0,n+=A_(e[u-1]);t[r]=o,t[r]._emit=a,t[r]._multi=!0}function Bj(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw Hi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),_c;if(typeof t.beginScope!="object"||t.beginScope===null)throw Hi("beginScope must be object"),_c;C_(t,t.begin,{key:"beginScope"}),t.begin=Nh(t.begin,{joinWith:""})}}function Cj(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw Hi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),_c;if(typeof t.endScope!="object"||t.endScope===null)throw Hi("endScope must be object"),_c;C_(t,t.end,{key:"endScope"}),t.end=Nh(t.end,{joinWith:""})}}function Uj(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function Tj(t){Uj(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),Bj(t),Cj(t)}function kj(t){function e(o,u){return new RegExp(Ls(o),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(u?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(u,f){f.position=this.position++,this.matchIndexes[this.matchAt]=f,this.regexes.push([f,u]),this.matchAt+=A_(u)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let u=this.regexes.map(f=>f[1]);this.matcherRe=e(Nh(u,{joinWith:"|"}),!0),this.lastIndex=0}exec(u){this.matcherRe.lastIndex=this.lastIndex;let f=this.matcherRe.exec(u);if(!f)return null;let A=f.findIndex((H,V)=>V>0&&H!==void 0),C=this.matchIndexes[A];return f.splice(0,A),Object.assign(f,C)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(u){if(this.multiRegexes[u])return this.multiRegexes[u];let f=new r;return this.rules.slice(u).forEach(([A,C])=>f.addRule(A,C)),f.compile(),this.multiRegexes[u]=f,f}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(u,f){this.rules.push([u,f]),f.type==="begin"&&this.count++}exec(u){let f=this.getMatcher(this.regexIndex);f.lastIndex=this.lastIndex;let A=f.exec(u);if(this.resumingScanAtSamePosition()&&!(A&&A.index===this.lastIndex)){let C=this.getMatcher(0);C.lastIndex=this.lastIndex+1,A=C.exec(u)}return A&&(this.regexIndex+=A.position+1,this.regexIndex===this.count&&this.considerAll()),A}}function i(o){let u=new n;return o.contains.forEach(f=>u.addRule(f.begin,{rule:f,type:"begin"})),o.terminatorEnd&&u.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&u.addRule(o.illegal,{type:"illegal"}),u}function a(o,u){let f=o;if(o.isCompiled)return f;[bj,_j,Tj,Aj].forEach(C=>C(o,u)),t.compilerExtensions.forEach(C=>C(o,u)),o.__beforeBegin=null,[wj,xj,Ij].forEach(C=>C(o,u)),o.isCompiled=!0;let A=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),A=o.keywords.$pattern,delete o.keywords.$pattern),A=A||/\w+/,o.keywords&&(o.keywords=B_(o.keywords,t.case_insensitive)),f.keywordPatternRe=e(A,!0),u&&(o.begin||(o.begin=/\B|\b/),f.beginRe=e(f.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(f.endRe=e(f.end)),f.terminatorEnd=Ls(f.end)||"",o.endsWithParent&&u.terminatorEnd&&(f.terminatorEnd+=(o.end?"|":"")+u.terminatorEnd)),o.illegal&&(f.illegalRe=e(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(C){return Oj(C==="self"?o:C)})),o.contains.forEach(function(C){a(C,f)}),o.starts&&a(o.starts,u),f.matcher=i(f),f}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=Si(t.classNameAliases||{}),a(t)}function U_(t){return t?t.endsWithParent||U_(t.starts):!1}function Oj(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return Si(t,{variants:null},e)})),t.cachedVariants?t.cachedVariants:U_(t)?Si(t,{starts:t.starts?Si(t.starts):null}):Object.isFrozen(t)?Si(t):t}var Pj="11.6.0",Ph=class extends Error{constructor(e,r){super(e),this.name="HTMLInjectionError",this.html=r}},Th=__,w_=Si,x_=Symbol("nomatch"),qj=7,Wj=function(t){let e=Object.create(null),r=Object.create(null),n=[],i=!0,a="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]},u={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Oh};function f(fe){return u.noHighlightRe.test(fe)}function A(fe){let j=fe.className+" ";j+=fe.parentNode?fe.parentNode.className:"";let je=u.languageDetectRe.exec(j);if(je){let nt=$(je[1]);return nt||(b_(a.replace("{}",je[1])),b_("Falling back to no-highlight mode for this block.",fe)),nt?je[1]:"no-highlight"}return j.split(/\s+/).find(nt=>f(nt)||$(nt))}function C(fe,j,je){let nt="",jt="";typeof j=="object"?(nt=fe,je=j.ignoreIllegals,jt=j.language):(bo("10.7.0","highlight(lang, code, ...args) has been deprecated."),bo("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),jt=fe,nt=j),je===void 0&&(je=!0);let fr={code:nt,language:jt};tt("before:highlight",fr);let Ht=fr.result?fr.result:H(fr.language,fr.code,je);return Ht.code=fr.code,tt("after:highlight",Ht),Ht}function H(fe,j,je,nt){let jt=Object.create(null);function fr(U,k){return U.keywords[k]}function Ht(){if(!Le.keywords){Ot.addText(xt);return}let U=0;Le.keywordPatternRe.lastIndex=0;let k=Le.keywordPatternRe.exec(xt),L="";for(;k;){L+=xt.substring(U,k.index);let T=$r.case_insensitive?k[0].toLowerCase():k[0],ee=fr(Le,T);if(ee){let[te,oe]=ee;if(Ot.addText(L),L="",jt[T]=(jt[T]||0)+1,jt[T]<=qj&&(on+=oe),te.startsWith("_"))L+=k[0];else{let pe=$r.classNameAliases[te]||te;Ot.addKeyword(k[0],pe)}}else L+=k[0];U=Le.keywordPatternRe.lastIndex,k=Le.keywordPatternRe.exec(xt)}L+=xt.substring(U),Ot.addText(L)}function ur(){if(xt==="")return;let U=null;if(typeof Le.subLanguage=="string"){if(!e[Le.subLanguage]){Ot.addText(xt);return}U=H(Le.subLanguage,xt,!0,Er[Le.subLanguage]),Er[Le.subLanguage]=U._top}else U=X(xt,Le.subLanguage.length?Le.subLanguage:null);Le.relevance>0&&(on+=U.relevance),Ot.addSublanguage(U._emitter,U.language)}function Ue(){Le.subLanguage!=null?ur():Ht(),xt=""}function Dt(U,k){let L=1,T=k.length-1;for(;L<=T;){if(!U._emit[L]){L++;continue}let ee=$r.classNameAliases[U[L]]||U[L],te=k[L];ee?Ot.addKeyword(te,ee):(xt=te,Ht(),xt=""),L++}}function Ei(U,k){return U.scope&&typeof U.scope=="string"&&Ot.openNode($r.classNameAliases[U.scope]||U.scope),U.beginScope&&(U.beginScope._wrap?(Ot.addKeyword(xt,$r.classNameAliases[U.beginScope._wrap]||U.beginScope._wrap),xt=""):U.beginScope._multi&&(Dt(U.beginScope,k),xt="")),Le=Object.create(U,{parent:{value:Le}}),Le}function an(U,k,L){let T=ZW(U.endRe,L);if(T){if(U["on:end"]){let ee=new xc(U);U["on:end"](k,ee),ee.isMatchIgnored&&(T=!1)}if(T){for(;U.endsParent&&U.parent;)U=U.parent;return U}}if(U.endsWithParent)return an(U.parent,k,L)}function $n(U){return Le.matcher.regexIndex===0?(xt+=U[0],1):(R=!0,0)}function Gn(U){let k=U[0],L=U.rule,T=new xc(L),ee=[L.__beforeBegin,L["on:begin"]];for(let te of ee)if(te&&(te(U,T),T.isMatchIgnored))return $n(k);return L.skip?xt+=k:(L.excludeBegin&&(xt+=k),Ue(),!L.returnBegin&&!L.excludeBegin&&(xt=k)),Ei(L,U),L.returnBegin?0:k.length}function Vi(U){let k=U[0],L=j.substring(U.index),T=an(Le,U,L);if(!T)return x_;let ee=Le;Le.endScope&&Le.endScope._wrap?(Ue(),Ot.addKeyword(k,Le.endScope._wrap)):Le.endScope&&Le.endScope._multi?(Ue(),Dt(Le.endScope,U)):ee.skip?xt+=k:(ee.returnEnd||ee.excludeEnd||(xt+=k),Ue(),ee.excludeEnd&&(xt=k));do Le.scope&&Ot.closeNode(),!Le.skip&&!Le.subLanguage&&(on+=Le.relevance),Le=Le.parent;while(Le!==T.parent);return T.starts&&Ei(T.starts,U),ee.returnEnd?0:k.length}function kn(){let U=[];for(let k=Le;k!==$r;k=k.parent)k.scope&&U.unshift(k.scope);U.forEach(k=>Ot.openNode(k))}let wn={};function Yi(U,k){let L=k&&k[0];if(xt+=U,L==null)return Ue(),0;if(wn.type==="begin"&&k.type==="end"&&wn.index===k.index&&L===""){if(xt+=j.slice(k.index,k.index+1),!i){let T=new Error(`0 width match regex (${fe})`);throw T.languageName=fe,T.badRule=wn.rule,T}return 1}if(wn=k,k.type==="begin")return Gn(k);if(k.type==="illegal"&&!je){let T=new Error('Illegal lexeme "'+L+'" for mode "'+(Le.scope||"")+'"');throw T.mode=Le,T}else if(k.type==="end"){let T=Vi(k);if(T!==x_)return T}if(k.type==="illegal"&&L==="")return 1;if(z>1e5&&z>k.index*3)throw new Error("potential infinite loop, way more iterations than matches");return xt+=L,L.length}let $r=$(fe);if(!$r)throw Hi(a.replace("{}",fe)),new Error('Unknown language: "'+fe+'"');let wo=kj($r),xn="",Le=nt||wo,Er={},Ot=new u.__emitter(u);kn();let xt="",on=0,Lr=0,z=0,R=!1;try{for(Le.matcher.considerAll();;){z++,R?R=!1:Le.matcher.considerAll(),Le.matcher.lastIndex=Lr;let U=Le.matcher.exec(j);if(!U)break;let k=j.substring(Lr,U.index),L=Yi(k,U);Lr=U.index+L}return Yi(j.substring(Lr)),Ot.closeAllNodes(),Ot.finalize(),xn=Ot.toHTML(),{language:fe,value:xn,relevance:on,illegal:!1,_emitter:Ot,_top:Le}}catch(U){if(U.message&&U.message.includes("Illegal"))return{language:fe,value:Th(j),illegal:!0,relevance:0,_illegalBy:{message:U.message,index:Lr,context:j.slice(Lr-100,Lr+100),mode:U.mode,resultSoFar:xn},_emitter:Ot};if(i)return{language:fe,value:Th(j),illegal:!1,relevance:0,errorRaised:U,_emitter:Ot,_top:Le};throw U}}function V(fe){let j={value:Th(fe),illegal:!1,relevance:0,_top:o,_emitter:new u.__emitter(u)};return j._emitter.addText(fe),j}function X(fe,j){j=j||u.languages||Object.keys(e);let je=V(fe),nt=j.filter($).filter(Fe).map(Ue=>H(Ue,fe,!1));nt.unshift(je);let jt=nt.sort((Ue,Dt)=>{if(Ue.relevance!==Dt.relevance)return Dt.relevance-Ue.relevance;if(Ue.language&&Dt.language){if($(Ue.language).supersetOf===Dt.language)return 1;if($(Dt.language).supersetOf===Ue.language)return-1}return 0}),[fr,Ht]=jt,ur=fr;return ur.secondBest=Ht,ur}function xe(fe,j,je){let nt=j&&r[j]||je;fe.classList.add("hljs"),fe.classList.add(`language-${nt}`)}function me(fe){let j=null,je=A(fe);if(f(je))return;if(tt("before:highlightElement",{el:fe,language:je}),fe.children.length>0&&(u.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(fe)),u.throwUnescapedHTML))throw new Ph("One of your code blocks includes unescaped HTML.",fe.innerHTML);j=fe;let nt=j.textContent,jt=je?C(nt,{language:je,ignoreIllegals:!0}):X(nt);fe.innerHTML=jt.value,xe(fe,je,jt.language),fe.result={language:jt.language,re:jt.relevance,relevance:jt.relevance},jt.secondBest&&(fe.secondBest={language:jt.secondBest.language,relevance:jt.secondBest.relevance}),tt("after:highlightElement",{el:fe,result:jt,text:nt})}function We(fe){u=w_(u,fe)}let er=()=>{Jt(),bo("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function tr(){Jt(),bo("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Ft=!1;function Jt(){if(document.readyState==="loading"){Ft=!0;return}document.querySelectorAll(u.cssSelector).forEach(me)}function Tt(){Ft&&Jt()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",Tt,!1);function sr(fe,j){let je=null;try{je=j(t)}catch(nt){if(Hi("Language definition for '{}' could not be registered.".replace("{}",fe)),i)Hi(nt);else throw nt;je=o}je.name||(je.name=fe),e[fe]=je,je.rawDefinition=j.bind(null,t),je.aliases&&ue(je.aliases,{languageName:fe})}function Yr(fe){delete e[fe];for(let j of Object.keys(r))r[j]===fe&&delete r[j]}function bn(){return Object.keys(e)}function $(fe){return fe=(fe||"").toLowerCase(),e[fe]||e[r[fe]]}function ue(fe,{languageName:j}){typeof fe=="string"&&(fe=[fe]),fe.forEach(je=>{r[je.toLowerCase()]=j})}function Fe(fe){let j=$(fe);return j&&!j.disableAutodetect}function At(fe){fe["before:highlightBlock"]&&!fe["before:highlightElement"]&&(fe["before:highlightElement"]=j=>{fe["before:highlightBlock"](Object.assign({block:j.el},j))}),fe["after:highlightBlock"]&&!fe["after:highlightElement"]&&(fe["after:highlightElement"]=j=>{fe["after:highlightBlock"](Object.assign({block:j.el},j))})}function Bt(fe){At(fe),n.push(fe)}function tt(fe,j){let je=fe;n.forEach(function(nt){nt[je]&&nt[je](j)})}function rr(fe){return bo("10.7.0","highlightBlock will be removed entirely in v12.0"),bo("10.7.0","Please use highlightElement now."),me(fe)}Object.assign(t,{highlight:C,highlightAuto:X,highlightAll:Jt,highlightElement:me,highlightBlock:rr,configure:We,initHighlighting:er,initHighlightingOnLoad:tr,registerLanguage:sr,unregisterLanguage:Yr,listLanguages:bn,getLanguage:$,registerAliases:ue,autoDetection:Fe,inherit:w_,addPlugin:Bt}),t.debugMode=function(){i=!1},t.safeMode=function(){i=!0},t.versionString=Pj,t.regex={concat:Ki,lookahead:I_,either:jh,optional:QW,anyNumberOfTimes:XW};for(let fe in wc)typeof wc[fe]=="object"&&qh.exports(wc[fe]);return Object.assign(t,wc),t},zs=Wj({});T_.exports=zs;zs.HighlightJS=zs;zs.default=zs});var Z_=D((nle,Xj)=>{Xj.exports="pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}"});var e2=D((ile,Qj)=>{Qj.exports="pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}"});p();h();g();y();m();p();h();g();y();m();var Un=Ks(Fx()),p_=Ks(Xx()),h_=Ks(f_()),HW=Un.Address.parse("EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL"),KW=Un.Address.parse("EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8");function VW(t){let e=new h_.Sha256;return e.update(t),v.from(e.digestSync())}function YW(t,e){let r;return e?r="https://tonsource-testnet.infura-ipfs.io/ipfs/":r="https://files.orbs.network/ipfs/",t.replace("ipfs://",r)}function d_(t){return BigInt(`0x${t.toString("hex")}`)}var g_={async getSourcesJsonUrl(t,e){let r=new Un.TonClient4({endpoint:e?.httpApiEndpointV4??await(0,p_.getHttpV4Endpoint)({network:e.testnet?"testnet":"mainnet"})}),{last:{seqno:n}}=await r.getLastBlock(),i=new Un.TupleBuilder;i.writeNumber(d_(VW(e?.verifier??"orbs.com"))),i.writeNumber(d_(v.from(t,"base64")));let{result:a}=await r.runMethod(n,e.testnet?KW:HW,"get_source_item_address",i.build()),o=new Un.TupleReader(a),u=o.readAddress();if(await r.isContractDeployed(n,u)){let{result:A}=await r.runMethod(n,u,"get_source_item_data");o=new Un.TupleReader(A);let C=o.skip(3).readCell().beginParse();if(C.loadUint(8)!==1)throw new Error("Unsupported version");return C.loadStringTail()}return null},async getSourcesData(t,e){let r=e.ipfsConverter??YW,n=r(t,!!e.testnet),i=await(await fetch(r(t,!!e.testnet))).json();return{files:(await Promise.all(i.sources.map(async o=>{let u=r(o.url,!!e.testnet),f=await fetch(u).then(A=>A.text());return{name:o.filename,content:f,isEntrypoint:o.isEntrypoint}}))).reverse().sort((o,u)=>Number(u.isEntrypoint)-Number(o.isEntrypoint)),verificationDate:new Date(i.verificationDate),compilerSettings:i.compilerSettings,compiler:i.compiler,ipfsHttpLink:n}}};p();h();g();y();m();p();h();g();y();m();var O_=Ks(k_(),1);var Lh=O_.default;p();h();g();y();m();p();h();g();y();m();var P_='(?!")(`([^`]+)`|((?=_)_|(?=\\{)\\{|(?=\\})\\}|(?![_`{}]))([^;,\\[\\]\\(\\)\\s~.]+))',q_=/\"[^\n\"]+\"[Hhcusa]?/,Dh;try{Dh=new RegExp("(-?(?!_)([\\d_]+|0x[\\d_a-fA-F]+)|0b[1_0]+)(?=/,/<=/,/=/,/>/,//,/>=/,/<=/,/!=/,/==/,/\^>>/,/~>>/,/>>/,/<>=/,/~>>=/,/\^>>=/,/&=/,/\^=/,/\|=/,/\^/,/=/,/~/,/\//,/%/,/-/,/\*/,/\+/,/>/,//,/#s/,/\$#/,/#/,/\$\+/,/\$,/,/\$\d/,/\$=/,/\$(?=\()/,/\$>smca/,/\$>s/,/\$@\+/,/\$@\?\+/,/\$@\?/,/\$@/,/\$cmp/,/\$len/,/\$pos/,/\$reverse/,/%1<>c/,/\*>>r/,/\*>>/,/\*mod/,/\*/,/\+!/,/\+/,/,/,/-!/,/-/,/-1</,/0=/,/0>/,/1\+!/,/1\+/,/1-!/,/1-/,/1</,/=/,/>>c/,/>>r/,/>>/,/>/,/\?dup/,/@'/,/@/,/B\+/,/B,/,/B=/,/B>Li@\+/,/B>Li@/,/B>Lu@\+/,/B>Lu@/,/B>boc/,/B>file/,/B>i@\+/,/B>i@/,/B>u@\+/,/B>u@/,/B@\?\+/,/B@\+/,/B@\?/,/B@/,/Bcmp/,/BhashB/,/Bhashu/,/Bhash/,/Blen/,/Bx\./,/B\|/,/Li>B/,/Lu>B/,/\[\]/,/\[compile\]/,/\[/,/\]/,/atom\?/,/b\+/,/b\._/,/b\./,/b>idict!\+/,/b>idict!/,/b>sdict!\+/,/b>sdict!/,/b>udict!\+/,/b>udict!/,/b>/,/boc+>B/,/boc>B/,/csr\./,/def\?/,/empty\?/,/eq\?/,/file-exists\?/,/file>B/,/i,/,/i>B/,/i@\+/,/i@/,/i@\?\+/,/i@\?/,/idict!\+/,/idict!/,/idict-/,/idict@-/,/idict@/,/null!/,/null\?/,/pfxdict!\+/,/pfxdict!/,/pfxdict@/,/priv>pub/,/ref@\+/,/ref@/,/ref@\?\+/,/ref@\?/,/s,/,/s>c/,/s>/,/sdict!\+/,/sdict!/,/sdict-/,/sdict@-/,/sdict@/,/smca>\$/,/sr,/,/tuple\?/,/u,/,/u>B/,/u@\+/,/u@\?\+/,/u@\?/,/udict!\+/,/udict!/,/udict-/,/udict@-/,/udict@/,/undef\?/,/x\._/,/x\./,/\|\+/,/\|/,/\|_/,new RegExp("(?<=\\s)\\.(?=\\s)"))},{scope:"number",match:t.regex.either(/(0[xX][0-9a-fA-F]+)/,/(0[bB][01]+)/,/(-?[0-9]+(\/-?[0-9]+)?)/)},{scope:"string",match:/"([^"\r\n\\]|\\.)*"/},{scope:"symbol",match:/[xX]\{[0-9a-fA-F_]*}/,relevance:10},{scope:"symbol",match:/[bB]\{[01]*}/,relevance:10},{scope:"symbol",match:/'[^\s]+/},{scope:"punctuation",match:/[\[\{\}\],]/}]}}p();h();g();y();m();var F_=/[a-zA-Z_][0-9a-zA-Z_]*/;function L_(t){return{name:"TL-B",aliases:["Tlb","tlb","TLB","tl-b","TL-b","Tl-B","Tl-b"],case_insensitive:!1,keywords:{keyword:[],literal:["True","BoolTrue","False","BoolFalse","Null"],type:["Type","Bool","Unit","Maybe","Either","Both","Cell","uint8","uint15","uint16","uint32","uint63","uint64","int8","int16","int32","int64","bits256","bits512"],built_in:[]},contains:[{scope:"comment",variants:[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},{scope:"symbol",match:t.regex.either(/#[0-9a-f]*_?/,/\$[01]*_?/,/##/,/#<=/,/#=/,//)},{scope:"number",match:/[0-9]+/},{scope:"punctuation",match:/[;\(\):\[\]\{\}]/}]}}function D_(t){t.registerLanguage("fift",N_),t.registerLanguage("func",W_),t.registerLanguage("tlb",L_)}p();h();g();y();m();var Tn=(t,...e)=>z_("div",t,...e);var Hh=(t,...e)=>z_("img",t,...e);function jj(t,e){for(let r of e)if(r)switch(typeof r){case"string":let n=document.createTextNode(r);t.appendChild(n);break;default:t.appendChild(r);break}}function Nj(t,e){typeof e=="string"?t.setAttribute("style",e):Object.assign(t.style,e)}function Fj(t,e){e.split(/\s/).forEach(r=>{r&&t.classList.add(r)})}function Lj(t,e){let r=/^on([a-z]+)$/i;for(let n in e)if(n)if(n==="style")Nj(t,e[n]);else if(n==="className")Fj(t,e[n]);else if(r.test(n)){let i=n.replace(r,"$1").toLowerCase();t.addEventListener(i,e[n])}else t.setAttribute(n,e[n])}function z_(t,e,...r){if(typeof t=="function")return t(e);{let n=document.createElement(t);return e&&typeof e=="object"&&Lj(n,e),r&&jj(n,r),n}}p();h();g();y();m();var H_=` +https://github.com/highlightjs/highlight.js/issues/2277`),jt=fe,nt=j),je===void 0&&(je=!0);let fr={code:nt,language:jt};tt("before:highlight",fr);let Ht=fr.result?fr.result:H(fr.language,fr.code,je);return Ht.code=fr.code,tt("after:highlight",Ht),Ht}function H(fe,j,je,nt){let jt=Object.create(null);function fr(U,k){return U.keywords[k]}function Ht(){if(!Le.keywords){Ot.addText(xt);return}let U=0;Le.keywordPatternRe.lastIndex=0;let k=Le.keywordPatternRe.exec(xt),L="";for(;k;){L+=xt.substring(U,k.index);let T=$r.case_insensitive?k[0].toLowerCase():k[0],ee=fr(Le,T);if(ee){let[te,oe]=ee;if(Ot.addText(L),L="",jt[T]=(jt[T]||0)+1,jt[T]<=qj&&(on+=oe),te.startsWith("_"))L+=k[0];else{let pe=$r.classNameAliases[te]||te;Ot.addKeyword(k[0],pe)}}else L+=k[0];U=Le.keywordPatternRe.lastIndex,k=Le.keywordPatternRe.exec(xt)}L+=xt.substring(U),Ot.addText(L)}function ur(){if(xt==="")return;let U=null;if(typeof Le.subLanguage=="string"){if(!e[Le.subLanguage]){Ot.addText(xt);return}U=H(Le.subLanguage,xt,!0,Er[Le.subLanguage]),Er[Le.subLanguage]=U._top}else U=X(xt,Le.subLanguage.length?Le.subLanguage:null);Le.relevance>0&&(on+=U.relevance),Ot.addSublanguage(U._emitter,U.language)}function Ue(){Le.subLanguage!=null?ur():Ht(),xt=""}function Dt(U,k){let L=1,T=k.length-1;for(;L<=T;){if(!U._emit[L]){L++;continue}let ee=$r.classNameAliases[U[L]]||U[L],te=k[L];ee?Ot.addKeyword(te,ee):(xt=te,Ht(),xt=""),L++}}function Ei(U,k){return U.scope&&typeof U.scope=="string"&&Ot.openNode($r.classNameAliases[U.scope]||U.scope),U.beginScope&&(U.beginScope._wrap?(Ot.addKeyword(xt,$r.classNameAliases[U.beginScope._wrap]||U.beginScope._wrap),xt=""):U.beginScope._multi&&(Dt(U.beginScope,k),xt="")),Le=Object.create(U,{parent:{value:Le}}),Le}function an(U,k,L){let T=ZW(U.endRe,L);if(T){if(U["on:end"]){let ee=new xc(U);U["on:end"](k,ee),ee.isMatchIgnored&&(T=!1)}if(T){for(;U.endsParent&&U.parent;)U=U.parent;return U}}if(U.endsWithParent)return an(U.parent,k,L)}function $n(U){return Le.matcher.regexIndex===0?(xt+=U[0],1):(R=!0,0)}function Gn(U){let k=U[0],L=U.rule,T=new xc(L),ee=[L.__beforeBegin,L["on:begin"]];for(let te of ee)if(te&&(te(U,T),T.isMatchIgnored))return $n(k);return L.skip?xt+=k:(L.excludeBegin&&(xt+=k),Ue(),!L.returnBegin&&!L.excludeBegin&&(xt=k)),Ei(L,U),L.returnBegin?0:k.length}function Vi(U){let k=U[0],L=j.substring(U.index),T=an(Le,U,L);if(!T)return x_;let ee=Le;Le.endScope&&Le.endScope._wrap?(Ue(),Ot.addKeyword(k,Le.endScope._wrap)):Le.endScope&&Le.endScope._multi?(Ue(),Dt(Le.endScope,U)):ee.skip?xt+=k:(ee.returnEnd||ee.excludeEnd||(xt+=k),Ue(),ee.excludeEnd&&(xt=k));do Le.scope&&Ot.closeNode(),!Le.skip&&!Le.subLanguage&&(on+=Le.relevance),Le=Le.parent;while(Le!==T.parent);return T.starts&&Ei(T.starts,U),ee.returnEnd?0:k.length}function kn(){let U=[];for(let k=Le;k!==$r;k=k.parent)k.scope&&U.unshift(k.scope);U.forEach(k=>Ot.openNode(k))}let wn={};function Yi(U,k){let L=k&&k[0];if(xt+=U,L==null)return Ue(),0;if(wn.type==="begin"&&k.type==="end"&&wn.index===k.index&&L===""){if(xt+=j.slice(k.index,k.index+1),!i){let T=new Error(`0 width match regex (${fe})`);throw T.languageName=fe,T.badRule=wn.rule,T}return 1}if(wn=k,k.type==="begin")return Gn(k);if(k.type==="illegal"&&!je){let T=new Error('Illegal lexeme "'+L+'" for mode "'+(Le.scope||"")+'"');throw T.mode=Le,T}else if(k.type==="end"){let T=Vi(k);if(T!==x_)return T}if(k.type==="illegal"&&L==="")return 1;if(z>1e5&&z>k.index*3)throw new Error("potential infinite loop, way more iterations than matches");return xt+=L,L.length}let $r=$(fe);if(!$r)throw Hi(a.replace("{}",fe)),new Error('Unknown language: "'+fe+'"');let wo=kj($r),xn="",Le=nt||wo,Er={},Ot=new u.__emitter(u);kn();let xt="",on=0,Lr=0,z=0,R=!1;try{for(Le.matcher.considerAll();;){z++,R?R=!1:Le.matcher.considerAll(),Le.matcher.lastIndex=Lr;let U=Le.matcher.exec(j);if(!U)break;let k=j.substring(Lr,U.index),L=Yi(k,U);Lr=U.index+L}return Yi(j.substring(Lr)),Ot.closeAllNodes(),Ot.finalize(),xn=Ot.toHTML(),{language:fe,value:xn,relevance:on,illegal:!1,_emitter:Ot,_top:Le}}catch(U){if(U.message&&U.message.includes("Illegal"))return{language:fe,value:Th(j),illegal:!0,relevance:0,_illegalBy:{message:U.message,index:Lr,context:j.slice(Lr-100,Lr+100),mode:U.mode,resultSoFar:xn},_emitter:Ot};if(i)return{language:fe,value:Th(j),illegal:!1,relevance:0,errorRaised:U,_emitter:Ot,_top:Le};throw U}}function V(fe){let j={value:Th(fe),illegal:!1,relevance:0,_top:o,_emitter:new u.__emitter(u)};return j._emitter.addText(fe),j}function X(fe,j){j=j||u.languages||Object.keys(e);let je=V(fe),nt=j.filter($).filter(Fe).map(Ue=>H(Ue,fe,!1));nt.unshift(je);let jt=nt.sort((Ue,Dt)=>{if(Ue.relevance!==Dt.relevance)return Dt.relevance-Ue.relevance;if(Ue.language&&Dt.language){if($(Ue.language).supersetOf===Dt.language)return 1;if($(Dt.language).supersetOf===Ue.language)return-1}return 0}),[fr,Ht]=jt,ur=fr;return ur.secondBest=Ht,ur}function xe(fe,j,je){let nt=j&&r[j]||je;fe.classList.add("hljs"),fe.classList.add(`language-${nt}`)}function me(fe){let j=null,je=A(fe);if(f(je))return;if(tt("before:highlightElement",{el:fe,language:je}),fe.children.length>0&&(u.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(fe)),u.throwUnescapedHTML))throw new Ph("One of your code blocks includes unescaped HTML.",fe.innerHTML);j=fe;let nt=j.textContent,jt=je?C(nt,{language:je,ignoreIllegals:!0}):X(nt);fe.innerHTML=jt.value,xe(fe,je,jt.language),fe.result={language:jt.language,re:jt.relevance,relevance:jt.relevance},jt.secondBest&&(fe.secondBest={language:jt.secondBest.language,relevance:jt.secondBest.relevance}),tt("after:highlightElement",{el:fe,result:jt,text:nt})}function We(fe){u=w_(u,fe)}let er=()=>{Jt(),bo("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function tr(){Jt(),bo("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Ft=!1;function Jt(){if(document.readyState==="loading"){Ft=!0;return}document.querySelectorAll(u.cssSelector).forEach(me)}function Tt(){Ft&&Jt()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",Tt,!1);function sr(fe,j){let je=null;try{je=j(t)}catch(nt){if(Hi("Language definition for '{}' could not be registered.".replace("{}",fe)),i)Hi(nt);else throw nt;je=o}je.name||(je.name=fe),e[fe]=je,je.rawDefinition=j.bind(null,t),je.aliases&&ue(je.aliases,{languageName:fe})}function Yr(fe){delete e[fe];for(let j of Object.keys(r))r[j]===fe&&delete r[j]}function bn(){return Object.keys(e)}function $(fe){return fe=(fe||"").toLowerCase(),e[fe]||e[r[fe]]}function ue(fe,{languageName:j}){typeof fe=="string"&&(fe=[fe]),fe.forEach(je=>{r[je.toLowerCase()]=j})}function Fe(fe){let j=$(fe);return j&&!j.disableAutodetect}function At(fe){fe["before:highlightBlock"]&&!fe["before:highlightElement"]&&(fe["before:highlightElement"]=j=>{fe["before:highlightBlock"](Object.assign({block:j.el},j))}),fe["after:highlightBlock"]&&!fe["after:highlightElement"]&&(fe["after:highlightElement"]=j=>{fe["after:highlightBlock"](Object.assign({block:j.el},j))})}function Bt(fe){At(fe),n.push(fe)}function tt(fe,j){let je=fe;n.forEach(function(nt){nt[je]&&nt[je](j)})}function rr(fe){return bo("10.7.0","highlightBlock will be removed entirely in v12.0"),bo("10.7.0","Please use highlightElement now."),me(fe)}Object.assign(t,{highlight:C,highlightAuto:X,highlightAll:Jt,highlightElement:me,highlightBlock:rr,configure:We,initHighlighting:er,initHighlightingOnLoad:tr,registerLanguage:sr,unregisterLanguage:Yr,listLanguages:bn,getLanguage:$,registerAliases:ue,autoDetection:Fe,inherit:w_,addPlugin:Bt}),t.debugMode=function(){i=!1},t.safeMode=function(){i=!0},t.versionString=Pj,t.regex={concat:Ki,lookahead:I_,either:jh,optional:QW,anyNumberOfTimes:XW};for(let fe in wc)typeof wc[fe]=="object"&&qh.exports(wc[fe]);return Object.assign(t,wc),t},zs=Wj({});T_.exports=zs;zs.HighlightJS=zs;zs.default=zs});var Z_=D((nle,Xj)=>{Xj.exports="pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}"});var e2=D((ile,Qj)=>{Qj.exports="pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}"});p();h();g();y();m();p();h();g();y();m();var Un=Ks(Fx()),p_=Ks(Xx()),h_=Ks(f_()),HW=Un.Address.parse("EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL"),KW=Un.Address.parse("EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8");function VW(t){let e=new h_.Sha256;return e.update(t),v.from(e.digestSync())}function YW(t,e){let r;return e?r="https://tonsource-testnet.infura-ipfs.io/ipfs/":r="https://files.orbs.network/ipfs/",t.replace("ipfs://",r)}function d_(t){return BigInt(`0x${t.toString("hex")}`)}var g_={async getSourcesJsonUrl(t,e){let r=new Un.TonClient4({endpoint:e?.httpApiEndpointV4??await(0,p_.getHttpV4Endpoint)({network:e.testnet?"testnet":"mainnet"})}),{last:{seqno:n}}=await r.getLastBlock(),i=new Un.TupleBuilder;i.writeNumber(d_(VW(e?.verifier??"orbs.com"))),i.writeNumber(d_(v.from(t,"base64")));let{result:a}=await r.runMethod(n,e.testnet?KW:HW,"get_source_item_address",i.build()),o=new Un.TupleReader(a),u=o.readAddress();if(await r.isContractDeployed(n,u)){let{result:A}=await r.runMethod(n,u,"get_source_item_data");o=new Un.TupleReader(A);let C=o.skip(3).readCell().beginParse();if(C.loadUint(8)!==1)throw new Error("Unsupported version");return C.loadStringTail()}return null},async getSourcesData(t,e){let r=e.ipfsConverter??YW,n=r(t,!!e.testnet),i=await(await fetch(r(t,!!e.testnet))).json();return{files:(await Promise.all(i.sources.map(async o=>{let u=r(o.url,!!e.testnet),f=await fetch(u).then(A=>A.text());return{name:o.filename,content:f,isEntrypoint:o.isEntrypoint}}))).reverse().sort((o,u)=>Number(u.isEntrypoint)-Number(o.isEntrypoint)),verificationDate:new Date(i.verificationDate),compilerSettings:i.compilerSettings,compiler:i.compiler,ipfsHttpLink:n}}};p();h();g();y();m();p();h();g();y();m();var O_=Ks(k_(),1);var Lh=O_.default;p();h();g();y();m();p();h();g();y();m();var P_='(?!")(`([^`]+)`|((?=_)_|(?=\\{)\\{|(?=\\})\\}|(?![_`{}]))([^;,\\[\\]\\(\\)\\s~.]+))',q_=/\"[^\n\"]+\"[Hhcusa]?/,Dh;try{Dh=new RegExp("(-?(?!_)([\\d_]+|0x[\\d_a-fA-F]+)|0b[1_0]+)(?=/,/<=/,/=/,/>/,//,/>=/,/<=/,/!=/,/==/,/\^>>/,/~>>/,/>>/,/<>=/,/~>>=/,/\^>>=/,/&=/,/\^=/,/\|=/,/\^/,/=/,/~/,/\//,/%/,/-/,/\*/,/\+/,/>/,//,/#s/,/\$#/,/#/,/\$\+/,/\$,/,/\$\d/,/\$=/,/\$(?=\()/,/\$>smca/,/\$>s/,/\$@\+/,/\$@\?\+/,/\$@\?/,/\$@/,/\$cmp/,/\$len/,/\$pos/,/\$reverse/,/%1<>c/,/\*>>r/,/\*>>/,/\*mod/,/\*/,/\+!/,/\+/,/,/,/-!/,/-/,/-1</,/0=/,/0>/,/1\+!/,/1\+/,/1-!/,/1-/,/1</,/=/,/>>c/,/>>r/,/>>/,/>/,/\?dup/,/@'/,/@/,/B\+/,/B,/,/B=/,/B>Li@\+/,/B>Li@/,/B>Lu@\+/,/B>Lu@/,/B>boc/,/B>file/,/B>i@\+/,/B>i@/,/B>u@\+/,/B>u@/,/B@\?\+/,/B@\+/,/B@\?/,/B@/,/Bcmp/,/BhashB/,/Bhashu/,/Bhash/,/Blen/,/Bx\./,/B\|/,/Li>B/,/Lu>B/,/\[\]/,/\[compile\]/,/\[/,/\]/,/atom\?/,/b\+/,/b\._/,/b\./,/b>idict!\+/,/b>idict!/,/b>sdict!\+/,/b>sdict!/,/b>udict!\+/,/b>udict!/,/b>/,/boc+>B/,/boc>B/,/csr\./,/def\?/,/empty\?/,/eq\?/,/file-exists\?/,/file>B/,/i,/,/i>B/,/i@\+/,/i@/,/i@\?\+/,/i@\?/,/idict!\+/,/idict!/,/idict-/,/idict@-/,/idict@/,/null!/,/null\?/,/pfxdict!\+/,/pfxdict!/,/pfxdict@/,/priv>pub/,/ref@\+/,/ref@/,/ref@\?\+/,/ref@\?/,/s,/,/s>c/,/s>/,/sdict!\+/,/sdict!/,/sdict-/,/sdict@-/,/sdict@/,/smca>\$/,/sr,/,/tuple\?/,/u,/,/u>B/,/u@\+/,/u@\?\+/,/u@\?/,/udict!\+/,/udict!/,/udict-/,/udict@-/,/udict@/,/undef\?/,/x\._/,/x\./,/\|\+/,/\|/,/\|_/,new RegExp("(?<=\\s)\\.(?=\\s)"))},{scope:"number",match:t.regex.either(/(0[xX][0-9a-fA-F]+)/,/(0[bB][01]+)/,/(-?[0-9]+(\/-?[0-9]+)?)/)},{scope:"string",match:/"([^"\r\n\\]|\\.)*"/},{scope:"symbol",match:/[xX]\{[0-9a-fA-F_]*}/,relevance:10},{scope:"symbol",match:/[bB]\{[01]*}/,relevance:10},{scope:"symbol",match:/'[^\s]+/},{scope:"punctuation",match:/[\[\{\}\],]/}]}}p();h();g();y();m();var F_=/[a-zA-Z_][0-9a-zA-Z_]*/;function L_(t){return{name:"TL-B",aliases:["Tlb","tlb","TLB","tl-b","TL-b","Tl-B","Tl-b"],case_insensitive:!1,keywords:{keyword:[],literal:["True","BoolTrue","False","BoolFalse","Null"],type:["Type","Bool","Unit","Maybe","Either","Both","Cell","uint8","uint15","uint16","uint32","uint63","uint64","int8","int16","int32","int64","bits256","bits512"],built_in:[]},contains:[{scope:"comment",variants:[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},{scope:"symbol",match:t.regex.either(/#[0-9a-f]*_?/,/\$[01]*_?/,/##/,/#<=/,/#=/,//)},{scope:"number",match:/[0-9]+/},{scope:"punctuation",match:/[;\(\):\[\]\{\}]/}]}}function D_(t){t.registerLanguage("fift",N_),t.registerLanguage("func",W_),t.registerLanguage("tlb",L_)}p();h();g();y();m();var Tn=(t,...e)=>z_("div",t,...e);var Hh=(t,...e)=>z_("img",t,...e);function jj(t,e){for(let r of e)if(r)switch(typeof r){case"string":let n=document.createTextNode(r);t.appendChild(n);break;default:t.appendChild(r);break}}function Nj(t,e){typeof e=="string"?t.setAttribute("style",e):Object.assign(t.style,e)}function Fj(t,e){e.split(/\s/).forEach(r=>{r&&t.classList.add(r)})}function Lj(t,e){let r=/^on([a-z]+)$/i;for(let n in e)if(n)if(n==="style")Nj(t,e[n]);else if(n==="className")Fj(t,e[n]);else if(r.test(n)){let i=n.replace(r,"$1").toLowerCase();t.addEventListener(i,e[n])}else t.setAttribute(n,e[n])}function z_(t,e,...r){if(typeof t=="function")return t(e);{let n=document.createElement(t);return e&&typeof e=="object"&&Lj(n,e),r&&jj(n,r),n}}p();h();g();y();m();var H_=` diff --git a/dist/index.min.js.map b/dist/index.min.js.map index 26e10e7..d27e912 100644 --- a/dist/index.min.js.map +++ b/dist/index.min.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/esbuild-plugin-polyfill-node/polyfills/global.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/__filename.js", "../node_modules/process-es6/browser.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/process.js", "../node_modules/buffer-es6/base64.js", "../node_modules/buffer-es6/ieee754.js", "../node_modules/buffer-es6/isArray.js", "../node_modules/buffer-es6/index.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js", "../node_modules/symbol.inspect/index.ts", "../node_modules/ton-core/dist/utils/crc16.js", "../node_modules/ton-core/dist/address/Address.js", "../node_modules/ton-core/dist/address/ExternalAddress.js", "../node_modules/ton-core/dist/utils/base32.js", "../node_modules/ton-core/dist/address/ADNLAddress.js", "../node_modules/ton-core/dist/boc/utils/paddedBits.js", "../node_modules/ton-core/dist/boc/BitString.js", "../node_modules/ton-core/dist/boc/BitBuilder.js", "../node_modules/ton-core/dist/boc/CellType.js", "../node_modules/ton-core/dist/dict/parseDict.js", "../node_modules/ton-core/dist/dict/utils/findCommonPrefix.js", "../node_modules/ton-core/dist/dict/serializeDict.js", "../node_modules/ton-core/dist/dict/utils/internalKeySerializer.js", "../node_modules/ton-core/dist/dict/Dictionary.js", "../node_modules/ton-core/dist/boc/utils/strings.js", "../node_modules/ton-core/dist/boc/Slice.js", "../node_modules/ton-core/dist/boc/BitReader.js", "../node_modules/ton-core/dist/boc/cell/exoticLibrary.js", "../node_modules/ton-core/dist/boc/cell/exoticMerkleProof.js", "../node_modules/ton-core/dist/boc/cell/exoticMerkleUpdate.js", "../node_modules/ton-core/dist/boc/cell/LevelMask.js", "../node_modules/ton-core/dist/boc/cell/exoticPruned.js", "../node_modules/ton-core/dist/boc/cell/resolveExotic.js", "../node_modules/ton-core/dist/boc/cell/descriptor.js", "../node_modules/jssha/src/converters.ts", "../node_modules/jssha/src/common.ts", "../node_modules/jssha/node_modules/tslib/tslib.es6.js", "../node_modules/jssha/src/primitives_32.ts", "../node_modules/jssha/src/sha1.ts", "../node_modules/jssha/src/sha256.ts", "../node_modules/jssha/src/primitives_64.ts", "../node_modules/jssha/src/sha512.ts", "../node_modules/jssha/src/sha3.ts", "../node_modules/jssha/src/sha.ts", "../node_modules/ton-crypto-primitives/dist/browser/getSecureRandom.js", "../node_modules/ton-crypto-primitives/dist/browser/hmac_sha512.js", "../node_modules/ton-crypto-primitives/dist/browser/pbkdf2_sha512.js", "../node_modules/ton-crypto-primitives/dist/browser/sha256.js", "../node_modules/ton-crypto-primitives/dist/browser/sha512.js", "../node_modules/ton-crypto-primitives/dist/browser.js", "../node_modules/ton-crypto/dist/primitives/sha256.js", "../node_modules/ton-crypto/dist/primitives/sha512.js", "../node_modules/ton-crypto/dist/primitives/pbkdf2_sha512.js", "../node_modules/ton-crypto/dist/primitives/hmac_sha512.js", "../node_modules/ton-crypto/dist/primitives/getSecureRandom.js", "../node_modules/ton-crypto/dist/passwords/wordlist.js", "../node_modules/ton-crypto/dist/passwords/newSecureWords.js", "../node_modules/ton-crypto/dist/passwords/newSecurePassphrase.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/empty.js", "../node_modules/tweetnacl/nacl-fast.js", "../node_modules/ton-crypto/dist/utils/binary.js", "../node_modules/ton-crypto/dist/mnemonic/wordlist.js", "../node_modules/ton-crypto/dist/mnemonic/mnemonic.js", "../node_modules/ton-crypto/dist/primitives/nacl.js", "../node_modules/ton-crypto/dist/hd/ed25519.js", "../node_modules/ton-crypto/dist/hd/symmetric.js", "../node_modules/ton-crypto/dist/hd/mnemonics.js", "../node_modules/ton-crypto/dist/index.js", "../node_modules/ton-core/dist/boc/cell/wonderCalculator.js", "../node_modules/ton-core/dist/boc/cell/utils/topologicalSort.js", "../node_modules/ton-core/dist/utils/bitsForNumber.js", "../node_modules/ton-core/dist/utils/crc32c.js", "../node_modules/ton-core/dist/boc/cell/serialization.js", "../node_modules/ton-core/dist/boc/Cell.js", "../node_modules/ton-core/dist/boc/Builder.js", "../node_modules/ton-core/dist/types/SimpleLibrary.js", "../node_modules/ton-core/dist/types/TickTock.js", "../node_modules/ton-core/dist/types/StateInit.js", "../node_modules/ton-core/dist/address/contractAddress.js", "../node_modules/ton-core/dist/tuple/tuple.js", "../node_modules/ton-core/dist/tuple/reader.js", "../node_modules/ton-core/dist/tuple/builder.js", "../node_modules/ton-core/dist/utils/convert.js", "../node_modules/ton-core/dist/types/_helpers.js", "../node_modules/ton-core/dist/types/AccountState.js", "../node_modules/ton-core/dist/types/CurrencyCollection.js", "../node_modules/ton-core/dist/types/AccountStorage.js", "../node_modules/ton-core/dist/types/StorageUsed.js", "../node_modules/ton-core/dist/types/StorageInto.js", "../node_modules/ton-core/dist/types/Account.js", "../node_modules/ton-core/dist/types/AccountStatus.js", "../node_modules/ton-core/dist/types/AccountStatusChange.js", "../node_modules/ton-core/dist/types/CommonMessageInfo.js", "../node_modules/ton-core/dist/types/CommonMessageInfoRelaxed.js", "../node_modules/ton-core/dist/types/ComputeSkipReason.js", "../node_modules/ton-core/dist/types/DepthBalanceInfo.js", "../node_modules/ton-core/dist/types/HashUpdate.js", "../node_modules/ton-core/dist/types/MasterchainStateExtra.js", "../node_modules/ton-core/dist/types/Message.js", "../node_modules/ton-core/dist/types/MessageRelaxed.js", "../node_modules/ton-core/dist/types/SendMode.js", "../node_modules/ton-core/dist/types/ShardAccount.js", "../node_modules/ton-core/dist/types/ShardAccounts.js", "../node_modules/ton-core/dist/types/ShardIdent.js", "../node_modules/ton-core/dist/types/ShardStateUnsplit.js", "../node_modules/ton-core/dist/types/SplitMergeInfo.js", "../node_modules/ton-core/dist/types/StorageUsedShort.js", "../node_modules/ton-core/dist/types/TransactionActionPhase.js", "../node_modules/ton-core/dist/types/TransactionBouncePhase.js", "../node_modules/ton-core/dist/types/TransactionComputePhase.js", "../node_modules/ton-core/dist/types/TransactionCreditPhase.js", "../node_modules/ton-core/dist/types/TransactionStoragePhase.js", "../node_modules/ton-core/dist/types/TransactionDescription.js", "../node_modules/ton-core/dist/types/Transaction.js", "../node_modules/ton-core/dist/types/_export.js", "../node_modules/ton-core/dist/contract/openContract.js", "../node_modules/ton-core/dist/contract/ComputeError.js", "../node_modules/ton-core/dist/utils/getMethodId.js", "../node_modules/ton-core/dist/crypto/safeSign.js", "../node_modules/ton-core/dist/index.js", "../node_modules/fp-ts/lib/function.js", "../node_modules/fp-ts/lib/internal.js", "../node_modules/fp-ts/lib/Apply.js", "../node_modules/fp-ts/lib/Functor.js", "../node_modules/fp-ts/lib/Applicative.js", "../node_modules/fp-ts/lib/Chain.js", "../node_modules/fp-ts/lib/ChainRec.js", "../node_modules/fp-ts/lib/FromEither.js", "../node_modules/fp-ts/lib/Separated.js", "../node_modules/fp-ts/lib/Witherable.js", "../node_modules/fp-ts/lib/Either.js", "../node_modules/io-ts/lib/index.js", "../node_modules/fp-ts/lib/Eq.js", "../node_modules/fp-ts/lib/Ord.js", "../node_modules/fp-ts/lib/Magma.js", "../node_modules/fp-ts/lib/Semigroup.js", "../node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js", "../node_modules/fp-ts/lib/NonEmptyArray.js", "../node_modules/fp-ts/lib/number.js", "../node_modules/fp-ts/lib/Zero.js", "../node_modules/fp-ts/lib/ReadonlyArray.js", "../node_modules/fp-ts/lib/Array.js", "../node_modules/fp-ts/lib/Predicate.js", "../node_modules/fp-ts/lib/Option.js", "../node_modules/fp-ts/lib/string.js", "../node_modules/fp-ts/lib/ReadonlyRecord.js", "../node_modules/fp-ts/lib/Record.js", "../node_modules/fp-ts/lib/pipeable.js", "../node_modules/io-ts-reporters/src/utils.ts", "../node_modules/io-ts-reporters/src/index.ts", "../node_modules/ton/dist/client/api/TonCache.js", "../node_modules/dataloader/index.js", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/env/data.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/ton/package.json", "../node_modules/ton/dist/client/api/HttpApi.js", "../node_modules/ton/dist/client/TonClient.js", "../node_modules/ton/dist/utils/toUrlSafe.js", "../node_modules/ton/dist/client/TonClient4.js", "../node_modules/ton/dist/wallets/signing/createWalletTransfer.js", "../node_modules/ton/dist/wallets/WalletContractV1R1.js", "../node_modules/ton/dist/wallets/WalletContractV1R2.js", "../node_modules/ton/dist/wallets/WalletContractV1R3.js", "../node_modules/ton/dist/wallets/WalletContractV2R1.js", "../node_modules/ton/dist/wallets/WalletContractV2R2.js", "../node_modules/ton/dist/wallets/WalletContractV3R1.js", "../node_modules/ton/dist/wallets/WalletContractV3R2.js", "../node_modules/ton/dist/wallets/WalletContractV4.js", "../node_modules/ton/dist/jetton/JettonMaster.js", "../node_modules/ton/dist/jetton/JettonWallet.js", "../node_modules/ton/dist/multisig/MultisigOrder.js", "../node_modules/ton/dist/multisig/MultisigOrderBuilder.js", "../node_modules/ton/dist/multisig/MultisigWallet.js", "../node_modules/ton/dist/index.js", "../node_modules/whatwg-fetch/dist/fetch.umd.js", "../node_modules/isomorphic-fetch/fetch-npm-browserify.js", "../node_modules/@orbs-network/ton-access/src/nodes.ts", "../node_modules/@orbs-network/ton-access/package.json", "../node_modules/@orbs-network/ton-access/src/index.ts", "../node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js", "../node_modules/@aws-crypto/sha256-js/src/constants.ts", "../node_modules/@aws-crypto/sha256-js/src/RawSha256.ts", "../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js", "../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js", "../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js", "../node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../node_modules/@aws-crypto/util/src/isEmptyData.ts", "../node_modules/@aws-crypto/util/src/numToUint8.ts", "../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../node_modules/@aws-crypto/util/src/index.ts", "../node_modules/@aws-crypto/sha256-js/src/jsSha256.ts", "../node_modules/@aws-crypto/sha256-js/src/index.ts", "../node_modules/highlight.js/lib/core.js", "../src/lib/web.ts", "../src/lib/contract-verifier.ts", "../src/lib/contract-verifier-ui.ts", "../node_modules/highlight.js/es/core.js", "../node_modules/highlightjs-func/src/index.js", "../node_modules/highlightjs-func/src/languages/func.js", "../node_modules/highlightjs-func/src/languages/fift.js", "../node_modules/highlightjs-func/src/languages/tlb.js", "../src/lib/dom.ts", "../src/lib/file-structure.ts"], - "sourcesContent": ["const global = globalThis;\nexport { global };\n", "export const __dirname = \"/\";\n", "export const __filename = \"/index.js\";\n", "// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n", "export * as process from \"process\";\n", "\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n", "\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n", "export { Buffer } from \"buffer\";\n", "/**\n * that can be used to declare custom inspect functions.\n *\n * same as Symbol.for('nodejs.util.inspect.custom')\n * same as util.inspect.custom\n */\nconst SymbolInspect = Symbol.for('nodejs.util.inspect.custom');\nexport = SymbolInspect;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc16 = void 0;\nfunction crc16(data) {\n const poly = 0x1021;\n let reg = 0;\n const message = Buffer.alloc(data.length + 2);\n message.set(data);\n for (let byte of message) {\n let mask = 0x80;\n while (mask > 0) {\n reg <<= 1;\n if (byte & mask) {\n reg += 1;\n }\n mask >>= 1;\n if (reg > 0xffff) {\n reg &= 0xffff;\n reg ^= poly;\n }\n }\n }\n return Buffer.from([Math.floor(reg / 256), reg % 256]);\n}\nexports.crc16 = crc16;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.address = exports.Address = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst crc16_1 = require(\"../utils/crc16\");\nconst bounceable_tag = 0x11;\nconst non_bounceable_tag = 0x51;\nconst test_flag = 0x80;\nfunction parseFriendlyAddress(src) {\n const data = Buffer.isBuffer(src) ? src : Buffer.from(src, 'base64');\n // 1byte tag + 1byte workchain + 32 bytes hash + 2 byte crc\n if (data.length !== 36) {\n throw new Error('Unknown address type: byte length is not equal to 36');\n }\n // Prepare data\n const addr = data.subarray(0, 34);\n const crc = data.subarray(34, 36);\n const calcedCrc = (0, crc16_1.crc16)(addr);\n if (!(calcedCrc[0] === crc[0] && calcedCrc[1] === crc[1])) {\n throw new Error('Invalid checksum: ' + src);\n }\n // Parse tag\n let tag = addr[0];\n let isTestOnly = false;\n let isBounceable = false;\n if (tag & test_flag) {\n isTestOnly = true;\n tag = tag ^ test_flag;\n }\n if ((tag !== bounceable_tag) && (tag !== non_bounceable_tag))\n throw \"Unknown address tag\";\n isBounceable = tag === bounceable_tag;\n let workchain = null;\n if (addr[1] === 0xff) { // TODO we should read signed integer here\n workchain = -1;\n }\n else {\n workchain = addr[1];\n }\n const hashPart = addr.subarray(2, 34);\n return { isTestOnly, isBounceable, workchain, hashPart };\n}\nclass Address {\n static isAddress(src) {\n return src instanceof Address;\n }\n static isFriendly(source) {\n return source.indexOf(':') < 0;\n }\n static normalize(source) {\n if (typeof source === 'string') {\n return Address.parse(source).toString();\n }\n else {\n return source.toString();\n }\n }\n static parse(source) {\n if (Address.isFriendly(source)) {\n return this.parseFriendly(source).address;\n }\n else {\n return this.parseRaw(source);\n }\n }\n static parseRaw(source) {\n let workChain = parseInt(source.split(\":\")[0]);\n let hash = Buffer.from(source.split(\":\")[1], 'hex');\n return new Address(workChain, hash);\n }\n static parseFriendly(source) {\n if (Buffer.isBuffer(source)) {\n let r = parseFriendlyAddress(source);\n return {\n isBounceable: r.isBounceable,\n isTestOnly: r.isTestOnly,\n address: new Address(r.workchain, r.hashPart)\n };\n }\n else {\n let addr = source.replace(/\\-/g, '+').replace(/_/g, '\\/'); // Convert from url-friendly to true base64\n let r = parseFriendlyAddress(addr);\n return {\n isBounceable: r.isBounceable,\n isTestOnly: r.isTestOnly,\n address: new Address(r.workchain, r.hashPart)\n };\n }\n }\n constructor(workChain, hash) {\n this.toRawString = () => {\n return this.workChain + ':' + this.hash.toString('hex');\n };\n this.toRaw = () => {\n const addressWithChecksum = Buffer.alloc(36);\n addressWithChecksum.set(this.hash);\n addressWithChecksum.set([this.workChain, this.workChain, this.workChain, this.workChain], 32);\n return addressWithChecksum;\n };\n this.toStringBuffer = (args) => {\n let testOnly = (args && args.testOnly !== undefined) ? args.testOnly : false;\n let bounceable = (args && args.bounceable !== undefined) ? args.bounceable : true;\n let tag = bounceable ? bounceable_tag : non_bounceable_tag;\n if (testOnly) {\n tag |= test_flag;\n }\n const addr = Buffer.alloc(34);\n addr[0] = tag;\n addr[1] = this.workChain;\n addr.set(this.hash, 2);\n const addressWithChecksum = Buffer.alloc(36);\n addressWithChecksum.set(addr);\n addressWithChecksum.set((0, crc16_1.crc16)(addr), 34);\n return addressWithChecksum;\n };\n this.toString = (args) => {\n let urlSafe = (args && args.urlSafe !== undefined) ? args.urlSafe : true;\n let buffer = this.toStringBuffer(args);\n if (urlSafe) {\n return buffer.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n else {\n return buffer.toString('base64');\n }\n };\n this[_a] = () => this.toString();\n this.workChain = workChain;\n this.hash = hash;\n Object.freeze(this);\n }\n equals(src) {\n if (src.workChain !== this.workChain) {\n return false;\n }\n return src.hash.equals(this.hash);\n }\n}\nexports.Address = Address;\n_a = symbol_inspect_1.default;\nfunction address(src) {\n return Address.parse(src);\n}\nexports.address = address;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExternalAddress = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nclass ExternalAddress {\n static isAddress(src) {\n return src instanceof ExternalAddress;\n }\n constructor(value, bits) {\n this[_a] = () => this.toString();\n this.value = value;\n this.bits = bits;\n }\n toString() {\n return `External<${this.bits}:${this.value}>`;\n }\n}\nexports.ExternalAddress = ExternalAddress;\n_a = symbol_inspect_1.default;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base32Decode = exports.base32Encode = void 0;\nconst alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\nfunction base32Encode(buffer) {\n const length = buffer.byteLength;\n let bits = 0;\n let value = 0;\n let output = '';\n for (let i = 0; i < length; i++) {\n value = (value << 8) | buffer[i];\n bits += 8;\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31];\n bits -= 5;\n }\n }\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31];\n }\n return output;\n}\nexports.base32Encode = base32Encode;\nfunction readChar(alphabet, char) {\n const idx = alphabet.indexOf(char);\n if (idx === -1) {\n throw new Error('Invalid character found: ' + char);\n }\n return idx;\n}\nfunction base32Decode(input) {\n let cleanedInput;\n cleanedInput = input.toLowerCase();\n const { length } = cleanedInput;\n let bits = 0;\n let value = 0;\n let index = 0;\n const output = Buffer.alloc(((length * 5) / 8) | 0);\n for (let i = 0; i < length; i++) {\n value = (value << 5) | readChar(alphabet, cleanedInput[i]);\n bits += 5;\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255;\n bits -= 8;\n }\n }\n return output;\n}\nexports.base32Decode = base32Decode;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ADNLAddress = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst base32_1 = require(\"../utils/base32\");\nconst crc16_1 = require(\"../utils/crc16\");\nclass ADNLAddress {\n static parseFriendly(src) {\n if (src.length !== 55) {\n throw Error('Invalid address');\n }\n // Decoding\n src = 'f' + src;\n let decoded = (0, base32_1.base32Decode)(src);\n if (decoded[0] !== 0x2d) {\n throw Error('Invalid address');\n }\n let gotHash = decoded.slice(33);\n let hash = (0, crc16_1.crc16)(decoded.slice(0, 33));\n if (!hash.equals(gotHash)) {\n throw Error('Invalid address');\n }\n return new ADNLAddress(decoded.slice(1, 33));\n }\n static parseRaw(src) {\n const data = Buffer.from(src, 'base64');\n return new ADNLAddress(data);\n }\n constructor(address) {\n this.toRaw = () => {\n return this.address.toString('hex').toUpperCase();\n };\n this.toString = () => {\n let data = Buffer.concat([Buffer.from([0x2D]), this.address]);\n let hash = (0, crc16_1.crc16)(data);\n data = Buffer.concat([data, hash]);\n return (0, base32_1.base32Encode)(data).slice(1);\n };\n this[_a] = () => this.toString();\n if (address.length !== 32) {\n throw Error('Invalid address');\n }\n this.address = address;\n }\n equals(b) {\n return this.address.equals(b.address);\n }\n}\nexports.ADNLAddress = ADNLAddress;\n_a = symbol_inspect_1.default;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitsToPaddedBuffer = void 0;\nconst BitBuilder_1 = require(\"../BitBuilder\");\nfunction bitsToPaddedBuffer(bits) {\n // Create builder\n let builder = new BitBuilder_1.BitBuilder(Math.ceil(bits.length / 8) * 8);\n builder.writeBits(bits);\n // Apply padding\n let padding = Math.ceil(bits.length / 8) * 8 - bits.length;\n for (let i = 0; i < padding; i++) {\n if (i === 0) {\n builder.writeBit(1);\n }\n else {\n builder.writeBit(0);\n }\n }\n return builder.buffer();\n}\nexports.bitsToPaddedBuffer = bitsToPaddedBuffer;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitString = void 0;\nconst paddedBits_1 = require(\"./utils/paddedBits\");\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\n/**\n * BitString is a class that represents a bitstring in a buffer with a specified offset and length\n */\nclass BitString {\n /**\n * Constructing BitString from a buffer\n * @param data data that contains the bitstring data. NOTE: We are expecting this buffer to be NOT modified\n * @param offset offset in bits from the start of the buffer\n * @param length length of the bitstring in bits\n */\n constructor(data, offset, length) {\n this[_a] = () => this.toString();\n // Check bounds\n if (length < 0) {\n throw new Error(`Length ${length} is out of bounds`);\n }\n this._length = length;\n this._data = data;\n this._offset = offset;\n }\n /**\n * Returns the length of the bitstring\n */\n get length() {\n return this._length;\n }\n /**\n * Returns the bit at the specified index\n * @param index index of the bit\n * @throws Error if index is out of bounds\n * @returns true if the bit is set, false otherwise\n */\n at(index) {\n // Check bounds\n if (index >= this._length) {\n throw new Error(`Index ${index} > ${this._length} is out of bounds`);\n }\n if (index < 0) {\n throw new Error(`Index ${index} < 0 is out of bounds`);\n }\n // Calculcate offsets\n let byteIndex = (this._offset + index) >> 3;\n let bitIndex = 7 - ((this._offset + index) % 8); // NOTE: We are using big endian\n // Return the bit\n return (this._data[byteIndex] & (1 << bitIndex)) !== 0;\n }\n /**\n * Get a subscring of the bitstring\n * @param offset\n * @param length\n * @returns\n */\n substring(offset, length) {\n // Corner case of empty string\n if (length === 0 && offset === this._length) {\n return BitString.EMPTY;\n }\n // Check offset\n if (offset >= this._length) {\n throw new Error(`Offset(${offset}) > ${this._length} is out of bounds`);\n }\n if (offset < 0) {\n throw new Error(`Offset(${offset}) < 0 is out of bounds`);\n }\n if (offset + length > this._length) {\n throw new Error(`Offset ${offset} + Length ${length} > ${this._length} is out of bounds`);\n }\n // Create substring\n return new BitString(this._data, this._offset + offset, length);\n }\n /**\n * Try to get a buffer from the bitstring without allocations\n * @param offset offset in bits\n * @param length length in bits\n * @returns buffer if the bitstring is aligned to bytes, null otherwise\n */\n subbuffer(offset, length) {\n // Check offset\n if (offset >= this._length) {\n throw new Error(`Offset ${offset} is out of bounds`);\n }\n if (offset < 0) {\n throw new Error(`Offset ${offset} is out of bounds`);\n }\n if (offset + length > this._length) {\n throw new Error(`Offset + Lenght = ${offset + length} is out of bounds`);\n }\n // Check alignment\n if (length % 8 !== 0) {\n return null;\n }\n if ((this._offset + offset) % 8 !== 0) {\n return null;\n }\n // Create substring\n let start = ((this._offset + offset) >> 3);\n let end = start + (length >> 3);\n return this._data.subarray(start, end);\n }\n /**\n * Checks for equality\n * @param b other bitstring\n * @returns true if the bitstrings are equal, false otherwise\n */\n equals(b) {\n if (this._length !== b._length) {\n return false;\n }\n for (let i = 0; i < this._length; i++) {\n if (this.at(i) !== b.at(i)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Format to canonical string\n * @returns formatted bits as a string\n */\n toString() {\n const padded = (0, paddedBits_1.bitsToPaddedBuffer)(this);\n if (this._length % 4 === 0) {\n const s = padded.subarray(0, Math.ceil(this._length / 8)).toString('hex').toUpperCase();\n if (this._length % 8 === 0) {\n return s;\n }\n else {\n return s.substring(0, s.length - 1);\n }\n }\n else {\n const hex = padded.toString('hex').toUpperCase();\n if (this._length % 8 <= 4) {\n return hex.substring(0, hex.length - 1) + '_';\n }\n else {\n return hex + '_';\n }\n }\n }\n}\nexports.BitString = BitString;\n_a = symbol_inspect_1.default;\nBitString.EMPTY = new BitString(Buffer.alloc(0), 0, 0);\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitBuilder = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst ExternalAddress_1 = require(\"../address/ExternalAddress\");\nconst BitString_1 = require(\"./BitString\");\n/**\n * Class for building bit strings\n */\nclass BitBuilder {\n constructor(size = 1023) {\n this._buffer = Buffer.alloc(Math.ceil(size / 8));\n this._length = 0;\n }\n /**\n * Current number of bits written\n */\n get length() {\n return this._length;\n }\n /**\n * Write a single bit\n * @param value bit to write, true or positive number for 1, false or zero or negative for 0\n */\n writeBit(value) {\n // Check overflow\n let n = this._length;\n if (n > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n // Set bit\n if (value === true || value > 0) {\n this._buffer[(n / 8) | 0] |= 1 << (7 - (n % 8));\n }\n // Advance\n this._length++;\n }\n /**\n * Copy bits from BitString\n * @param src source bits\n */\n writeBits(src) {\n for (let i = 0; i < src.length; i++) {\n this.writeBit(src.at(i));\n }\n }\n /**\n * Write bits from buffer\n * @param src source buffer\n */\n writeBuffer(src) {\n // Special case for aligned offsets\n if (this._length % 8 === 0) {\n if (this._length + src.length * 8 > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n src.copy(this._buffer, this._length / 8);\n this._length += src.length * 8;\n }\n else {\n for (let i = 0; i < src.length; i++) {\n this.writeUint(src[i], 8);\n }\n }\n }\n /**\n * Write uint value\n * @param value value as bigint or number\n * @param bits number of bits to write\n */\n writeUint(value, bits) {\n // Special case for 8 bits\n if (bits === 8 && this._length % 8 === 0) {\n let v = Number(value);\n if (v < 0 || v > 255 || !Number.isSafeInteger(v)) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n this._buffer[this._length / 8] = Number(value);\n this._length += 8;\n return;\n }\n // Special case for 16 bits\n if (bits === 16 && this._length % 8 === 0) {\n let v = Number(value);\n if (v < 0 || v > 65536 || !Number.isSafeInteger(v)) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n this._buffer[this._length / 8] = v >> 8;\n this._buffer[this._length / 8 + 1] = v & 0xff;\n this._length += 16;\n return;\n }\n // Generic case\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero bits\n if (bits === 0) {\n if (value !== 0n) {\n throw Error(`value is not zero for ${bits} bits. Got ${value}`);\n }\n else {\n return;\n }\n }\n // Check input\n let vBits = (1n << BigInt(bits));\n if (v < 0 || v >= vBits) {\n throw Error(`bitLength is too small for a value ${value}. Got ${bits}`);\n }\n // Convert number to bits\n let b = [];\n while (v > 0) {\n b.push(v % 2n === 1n);\n v /= 2n;\n }\n // Write bits\n for (let i = 0; i < bits; i++) {\n let off = bits - i - 1;\n if (off < b.length) {\n this.writeBit(b[off]);\n }\n else {\n this.writeBit(false);\n }\n }\n }\n /**\n * Write int value\n * @param value value as bigint or number\n * @param bits number of bits to write\n */\n writeInt(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero bits\n if (bits === 0) {\n if (value !== 0n) {\n throw Error(`value is not zero for ${bits} bits. Got ${value}`);\n }\n else {\n return;\n }\n }\n // Corner case for one bit\n if (bits === 1) {\n if (value !== -1n && value !== 0n) {\n throw Error(`value is not zero or -1 for ${bits} bits. Got ${value}`);\n }\n else {\n this.writeBit(value === -1n);\n return;\n }\n }\n // Check input\n let vBits = 1n << (BigInt(bits) - 1n);\n if (v < -vBits || v >= vBits) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n // Write sign\n if (v < 0) {\n this.writeBit(true);\n v = (1n << (BigInt(bits) - 1n)) + v;\n }\n else {\n this.writeBit(false);\n }\n // Write value\n this.writeUint(v, bits - 1);\n }\n /**\n * Wrtie var uint value, used for serializing coins\n * @param value value to write as bigint or number\n * @param bits header bits to write size\n */\n writeVarUint(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n if (v < 0) {\n throw Error(`value is negative. Got ${value}`);\n }\n // Corner case for zero\n if (v === 0n) {\n // Write zero size\n this.writeUint(0, bits);\n return;\n }\n // Calculate size\n const sizeBytes = Math.ceil((v.toString(2).length) / 8); // Fastest way in most environments\n const sizeBits = sizeBytes * 8;\n // Write size\n this.writeUint(sizeBytes, bits);\n // Write number\n this.writeUint(v, sizeBits);\n }\n /**\n * Wrtie var int value, used for serializing coins\n * @param value value to write as bigint or number\n * @param bits header bits to write size\n */\n writeVarInt(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero\n if (v === 0n) {\n // Write zero size\n this.writeUint(0, bits);\n return;\n }\n // Calculate size\n let v2 = v > 0 ? v : -v;\n const sizeBytes = 1 + Math.ceil((v2.toString(2).length) / 8); // Fastest way in most environments\n const sizeBits = sizeBytes * 8;\n // Write size\n this.writeUint(sizeBytes, bits);\n // Write number\n this.writeInt(v, sizeBits);\n }\n /**\n * Write coins in var uint format\n * @param amount amount to write\n */\n writeCoins(amount) {\n this.writeVarUint(amount, 4);\n }\n /**\n * Write address\n * @param address write address or address external\n */\n writeAddress(address) {\n // Is empty address\n if (address === null || address === undefined) {\n this.writeUint(0, 2); // Empty address\n return;\n }\n // Is Internal Address\n if (Address_1.Address.isAddress(address)) {\n this.writeUint(2, 2); // Internal address\n this.writeUint(0, 1); // No anycast\n this.writeInt(address.workChain, 8);\n this.writeBuffer(address.hash);\n return;\n }\n // Is External Address\n if (ExternalAddress_1.ExternalAddress.isAddress(address)) {\n this.writeUint(1, 2); // External address\n this.writeUint(address.bits, 9);\n this.writeUint(address.value, address.bits);\n return;\n }\n // Invalid address\n throw Error(`Invalid address. Got ${address}`);\n }\n /**\n * Build BitString\n * @returns result bit string\n */\n build() {\n return new BitString_1.BitString(this._buffer, 0, this._length);\n }\n /**\n * Build into Buffer\n * @returns result buffer\n */\n buffer() {\n if (this._length % 8 !== 0) {\n throw new Error(\"BitBuilder buffer is not byte aligned\");\n }\n return this._buffer.subarray(0, this._length / 8);\n }\n}\nexports.BitBuilder = BitBuilder;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CellType = void 0;\nvar CellType;\n(function (CellType) {\n CellType[CellType[\"Ordinary\"] = -1] = \"Ordinary\";\n CellType[CellType[\"PrunedBranch\"] = 1] = \"PrunedBranch\";\n CellType[CellType[\"Library\"] = 2] = \"Library\";\n CellType[CellType[\"MerkleProof\"] = 3] = \"MerkleProof\";\n CellType[CellType[\"MerkleUpdate\"] = 4] = \"MerkleUpdate\";\n})(CellType = exports.CellType || (exports.CellType = {}));\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDict = void 0;\nfunction readUnaryLength(slice) {\n let res = 0;\n while (slice.loadBit()) {\n res++;\n }\n return res;\n}\nfunction doParse(prefix, slice, n, res, extractor) {\n // Reading label\n let lb0 = slice.loadBit() ? 1 : 0;\n let prefixLength = 0;\n let pp = prefix;\n if (lb0 === 0) {\n // Short label detected\n // Read \n prefixLength = readUnaryLength(slice);\n // Read prefix\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n let lb1 = slice.loadBit() ? 1 : 0;\n if (lb1 === 0) {\n // Long label detected\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n // Same label detected\n let bit = slice.loadBit() ? '1' : '0';\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += bit;\n }\n }\n }\n if (n - prefixLength === 0) {\n res.set(BigInt('0b' + pp), extractor(slice));\n }\n else {\n let left = slice.loadRef();\n let right = slice.loadRef();\n // NOTE: Left and right branches are implicitly contain prefixes '0' and '1'\n if (!left.isExotic) {\n doParse(pp + '0', left.beginParse(), n - prefixLength - 1, res, extractor);\n }\n if (!right.isExotic) {\n doParse(pp + '1', right.beginParse(), n - prefixLength - 1, res, extractor);\n }\n }\n}\nfunction parseDict(sc, keySize, extractor) {\n let res = new Map();\n if (sc) {\n doParse('', sc, keySize, res, extractor);\n }\n return res;\n}\nexports.parseDict = parseDict;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findCommonPrefix = void 0;\nfunction findCommonPrefix(src) {\n // Corner cases\n if (src.length === 0) {\n return '';\n }\n if (src.length === 1) {\n return src[0];\n }\n // Searching for prefix\n const sorted = [...src].sort();\n let size = 0;\n for (let i = 0; i < sorted[0].length; i++) {\n if (sorted[0][i] !== sorted[sorted.length - 1][i]) {\n break;\n }\n size++;\n }\n return src[0].slice(0, size);\n}\nexports.findCommonPrefix = findCommonPrefix;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeDict = exports.detectLabelType = exports.writeLabelSame = exports.writeLabelLong = exports.writeLabelShort = exports.buildTree = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst findCommonPrefix_1 = require(\"./utils/findCommonPrefix\");\n//\n// Tree Build\n//\nfunction pad(src, size) {\n while (src.length < size) {\n src = '0' + src;\n }\n return src;\n}\nfunction removePrefixMap(src, length) {\n if (length === 0) {\n return src;\n }\n else {\n let res = new Map();\n for (let k of src.keys()) {\n let d = src.get(k);\n res.set(k.slice(length), d);\n }\n return res;\n }\n}\nfunction forkMap(src) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n let left = new Map();\n let right = new Map();\n for (let k of src.keys()) {\n let d = src.get(k);\n if (k.startsWith('0')) {\n left.set(k.substr(1), d);\n }\n else {\n right.set(k.substr(1), d);\n }\n }\n if (left.size === 0) {\n throw Error('Internal inconsistency. Left emtpy.');\n }\n if (right.size === 0) {\n throw Error('Internal inconsistency. Right emtpy.');\n }\n return { left, right };\n}\nfunction buildNode(src) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n if (src.size === 1) {\n return { type: 'leaf', value: Array.from(src.values())[0] };\n }\n let { left, right } = forkMap(src);\n return {\n type: 'fork',\n left: buildEdge(left),\n right: buildEdge(right)\n };\n}\nfunction buildEdge(src) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n const label = (0, findCommonPrefix_1.findCommonPrefix)(Array.from(src.keys()));\n return { label, node: buildNode(removePrefixMap(src, label.length)) };\n}\nfunction buildTree(src, keyLength) {\n // Convert map keys\n let converted = new Map();\n for (let k of Array.from(src.keys())) {\n const padded = pad(k.toString(2), keyLength);\n converted.set(padded, src.get(k));\n }\n // Calculate root label\n return buildEdge(converted);\n}\nexports.buildTree = buildTree;\n//\n// Serialization\n//\nfunction writeLabelShort(src, to) {\n // Header\n to.storeBit(0);\n // Unary length\n for (let i = 0; i < src.length; i++) {\n to.storeBit(1);\n }\n to.storeBit(0);\n // Value\n for (let i = 0; i < src.length; i++) {\n to.storeBit(src[i] === '1');\n }\n return to;\n}\nexports.writeLabelShort = writeLabelShort;\nfunction labelShortLength(src) {\n return 1 + src.length + 1 + src.length;\n}\nfunction writeLabelLong(src, keyLength, to) {\n // Header\n to.storeBit(1);\n to.storeBit(0);\n // Length\n let length = Math.ceil(Math.log2(keyLength + 1));\n to.storeUint(src.length, length);\n // Value\n for (let i = 0; i < src.length; i++) {\n to.storeBit(src[i] === '1');\n }\n return to;\n}\nexports.writeLabelLong = writeLabelLong;\nfunction labelLongLength(src, keyLength) {\n return 1 + 1 + Math.ceil(Math.log2(keyLength + 1)) + src.length;\n}\nfunction writeLabelSame(value, length, keyLength, to) {\n // Header\n to.storeBit(1);\n to.storeBit(1);\n // Value\n to.storeBit(value);\n // Length\n let lenLen = Math.ceil(Math.log2(keyLength + 1));\n to.storeUint(length, lenLen);\n}\nexports.writeLabelSame = writeLabelSame;\nfunction labelSameLength(keyLength) {\n return 1 + 1 + 1 + Math.ceil(Math.log2(keyLength + 1));\n}\nfunction isSame(src) {\n if (src.length === 0 || src.length === 1) {\n return true;\n }\n for (let i = 1; i < src.length; i++) {\n if (src[i] !== src[0]) {\n return false;\n }\n }\n return true;\n}\nfunction detectLabelType(src, keyLength) {\n let kind = 'short';\n let kindLength = labelShortLength(src);\n let longLength = labelLongLength(src, keyLength);\n if (longLength < kindLength) {\n kindLength = longLength;\n kind = 'long';\n }\n if (isSame(src)) {\n let sameLength = labelSameLength(keyLength);\n if (sameLength < kindLength) {\n kindLength = sameLength;\n kind = 'same';\n }\n }\n return kind;\n}\nexports.detectLabelType = detectLabelType;\nfunction writeLabel(src, keyLength, to) {\n let type = detectLabelType(src, keyLength);\n if (type === 'short') {\n writeLabelShort(src, to);\n }\n if (type === 'long') {\n writeLabelLong(src, keyLength, to);\n }\n if (type === 'same') {\n writeLabelSame(src[0] === '1', src.length, keyLength, to);\n }\n}\nfunction writeNode(src, keyLength, serializer, to) {\n if (src.type === 'leaf') {\n serializer(src.value, to);\n }\n if (src.type === 'fork') {\n const leftCell = (0, Builder_1.beginCell)();\n const rightCell = (0, Builder_1.beginCell)();\n writeEdge(src.left, keyLength - 1, serializer, leftCell);\n writeEdge(src.right, keyLength - 1, serializer, rightCell);\n to.storeRef(leftCell);\n to.storeRef(rightCell);\n }\n}\nfunction writeEdge(src, keyLength, serializer, to) {\n writeLabel(src.label, keyLength, to);\n writeNode(src.node, keyLength - src.label.length, serializer, to);\n}\nfunction serializeDict(src, keyLength, serializer, to) {\n const tree = buildTree(src, keyLength);\n writeEdge(tree, keyLength, serializer, to);\n}\nexports.serializeDict = serializeDict;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeInternalKey = exports.serializeInternalKey = void 0;\nconst Address_1 = require(\"../../address/Address\");\nfunction serializeInternalKey(value) {\n if (typeof value === 'number') {\n if (!Number.isSafeInteger(value)) {\n throw Error('Invalid key type: not a safe integer: ' + value);\n }\n return 'n:' + value.toString(10);\n }\n else if (typeof value === 'bigint') {\n return 'b:' + value.toString(10);\n }\n else if (Address_1.Address.isAddress(value)) {\n return 'a:' + value.toString();\n }\n else if (Buffer.isBuffer(value)) {\n return 'f:' + value.toString('hex');\n }\n else {\n throw Error('Invalid key type');\n }\n}\nexports.serializeInternalKey = serializeInternalKey;\nfunction deserializeInternalKey(value) {\n let k = value.slice(0, 2);\n let v = value.slice(2);\n if (k === 'n:') {\n return parseInt(v, 10);\n }\n else if (k === 'b:') {\n return BigInt(v);\n }\n else if (k === 'a:') {\n return Address_1.Address.parse(v);\n }\n else if (k === 'f:') {\n return Buffer.from(v, 'hex');\n }\n throw Error('Invalid key type: ' + k);\n}\nexports.deserializeInternalKey = deserializeInternalKey;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dictionary = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Builder_1 = require(\"../boc/Builder\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst parseDict_1 = require(\"./parseDict\");\nconst serializeDict_1 = require(\"./serializeDict\");\nconst internalKeySerializer_1 = require(\"./utils/internalKeySerializer\");\nclass Dictionary {\n /**\n * Create an empty map\n * @param key key type\n * @param value value type\n * @returns Dictionary\n */\n static empty(key, value) {\n if (key && value) {\n return new Dictionary(new Map(), key, value);\n }\n else {\n return new Dictionary(new Map(), null, null);\n }\n }\n /**\n * Load dictionary from slice\n * @param key key description\n * @param value value description\n * @param src slice\n * @returns Dictionary\n */\n static load(key, value, sc) {\n let slice;\n if (sc instanceof Cell_1.Cell) {\n if (sc.isExotic) {\n return Dictionary.empty(key, value);\n }\n slice = sc.beginParse();\n }\n else {\n slice = sc;\n }\n let cell = slice.loadMaybeRef();\n if (cell && !cell.isExotic) {\n return Dictionary.loadDirect(key, value, cell.beginParse());\n }\n else {\n return Dictionary.empty(key, value);\n }\n }\n /**\n * Low level method for rare dictionaries from system contracts.\n * Loads dictionary from slice directly without going to the ref.\n *\n * @param key key description\n * @param value value description\n * @param sc slice\n * @returns Dictionary\n */\n static loadDirect(key, value, sc) {\n if (!sc) {\n return Dictionary.empty(key, value);\n }\n let slice;\n if (sc instanceof Cell_1.Cell) {\n slice = sc.beginParse();\n }\n else {\n slice = sc;\n }\n let values = (0, parseDict_1.parseDict)(slice, key.bits, value.parse);\n let prepare = new Map();\n for (let [k, v] of values) {\n prepare.set((0, internalKeySerializer_1.serializeInternalKey)(key.parse(k)), v);\n }\n return new Dictionary(prepare, key, value);\n }\n constructor(values, key, value) {\n this._key = key;\n this._value = value;\n this._map = values;\n }\n get size() {\n return this._map.size;\n }\n get(key) {\n return this._map.get((0, internalKeySerializer_1.serializeInternalKey)(key));\n }\n has(key) {\n return this._map.has((0, internalKeySerializer_1.serializeInternalKey)(key));\n }\n set(key, value) {\n this._map.set((0, internalKeySerializer_1.serializeInternalKey)(key), value);\n return this;\n }\n delete(key) {\n const k = (0, internalKeySerializer_1.serializeInternalKey)(key);\n return this._map.delete(k);\n }\n clear() {\n this._map.clear();\n }\n *[Symbol.iterator]() {\n for (const [k, v] of this._map) {\n const key = (0, internalKeySerializer_1.deserializeInternalKey)(k);\n yield [key, v];\n }\n }\n keys() {\n return Array.from(this._map.keys()).map((v) => (0, internalKeySerializer_1.deserializeInternalKey)(v));\n }\n values() {\n return Array.from(this._map.values());\n }\n store(builder, key, value) {\n if (this._map.size === 0) {\n builder.storeBit(0);\n }\n else {\n // Resolve serializer\n let resolvedKey = this._key;\n if (key !== null && key !== undefined) {\n resolvedKey = key;\n }\n let resolvedValue = this._value;\n if (value !== null && value !== undefined) {\n resolvedValue = value;\n }\n if (!resolvedKey) {\n throw Error('Key serializer is not defined');\n }\n if (!resolvedValue) {\n throw Error('Value serializer is not defined');\n }\n // Prepare map\n let prepared = new Map();\n for (const [k, v] of this._map) {\n prepared.set(resolvedKey.serialize((0, internalKeySerializer_1.deserializeInternalKey)(k)), v);\n }\n // Store\n builder.storeBit(1);\n let dd = (0, Builder_1.beginCell)();\n (0, serializeDict_1.serializeDict)(prepared, resolvedKey.bits, resolvedValue.serialize, dd);\n builder.storeRef(dd.endCell());\n }\n }\n storeDirect(builder, key, value) {\n if (this._map.size === 0) {\n throw Error('Cannot store empty dictionary directly');\n }\n // Resolve serializer\n let resolvedKey = this._key;\n if (key !== null && key !== undefined) {\n resolvedKey = key;\n }\n let resolvedValue = this._value;\n if (value !== null && value !== undefined) {\n resolvedValue = value;\n }\n if (!resolvedKey) {\n throw Error('Key serializer is not defined');\n }\n if (!resolvedValue) {\n throw Error('Value serializer is not defined');\n }\n // Prepare map\n let prepared = new Map();\n for (const [k, v] of this._map) {\n prepared.set(resolvedKey.serialize((0, internalKeySerializer_1.deserializeInternalKey)(k)), v);\n }\n // Store\n (0, serializeDict_1.serializeDict)(prepared, resolvedKey.bits, resolvedValue.serialize, builder);\n }\n}\nexports.Dictionary = Dictionary;\nDictionary.Keys = {\n /**\n * Standard address key\n * @returns DictionaryKey
\n */\n Address: () => {\n return createAddressKey();\n },\n /**\n * Create standard big integer key\n * @param bits number of bits\n * @returns DictionaryKey\n */\n BigInt: (bits) => {\n return createBigIntKey(bits);\n },\n /**\n * Create integer key\n * @param bits bits of integer\n * @returns DictionaryKey\n */\n Int: (bits) => {\n return createIntKey(bits);\n },\n /**\n * Create standard unsigned big integer key\n * @param bits number of bits\n * @returns DictionaryKey\n */\n BigUint: (bits) => {\n return createBigUintKey(bits);\n },\n /**\n * Create standard unsigned integer key\n * @param bits number of bits\n * @returns DictionaryKey\n */\n Uint: (bits) => {\n return createUintKey(bits);\n },\n /**\n * Create standard buffer key\n * @param bytes number of bytes of a buffer\n * @returns DictionaryKey\n */\n Buffer: (bytes) => {\n return createBufferKey(bytes);\n }\n};\nDictionary.Values = {\n /**\n * Create standard integer value\n * @returns DictionaryValue\n */\n BigInt: (bits) => {\n return createBigIntValue(bits);\n },\n /**\n * Create standard integer value\n * @returns DictionaryValue\n */\n Int: (bits) => {\n return createIntValue(bits);\n },\n /**\n * Create big var int\n * @param bits nubmer of header bits\n * @returns DictionaryValue\n */\n BigVarInt: (bits) => {\n return createBigVarIntValue(bits);\n },\n /**\n * Create standard unsigned integer value\n * @param bits number of bits\n * @returns DictionaryValue\n */\n BigUint: (bits) => {\n return createBigUintValue(bits);\n },\n /**\n * Create standard unsigned integer value\n * @param bits number of bits\n * @returns DictionaryValue\n */\n Uint: (bits) => {\n return createUintValue(bits);\n },\n /**\n * Create big var int\n * @param bits nubmer of header bits\n * @returns DictionaryValue\n */\n BigVarUint: (bits) => {\n return createBigVarUintValue(bits);\n },\n /**\n * Create standard boolean value\n * @returns DictionaryValue\n */\n Bool: () => {\n return createBooleanValue();\n },\n /**\n * Create standard address value\n * @returns DictionaryValue
\n */\n Address: () => {\n return createAddressValue();\n },\n /**\n * Create standard cell value\n * @returns DictionaryValue\n */\n Cell: () => {\n return createCellValue();\n },\n /**\n * Create Builder value\n * @param bytes number of bytes of a buffer\n * @returns DictionaryValue\n */\n Buffer: (bytes) => {\n return createBufferValue(bytes);\n },\n /**\n * Create dictionary value\n * @param key\n * @param value\n */\n Dictionary: (key, value) => {\n return createDictionaryValue(key, value);\n }\n};\n//\n// Keys and Values\n//\nfunction createAddressKey() {\n return {\n bits: 267,\n serialize: (src) => {\n if (!Address_1.Address.isAddress(src)) {\n throw Error('Key is not an address');\n }\n return (0, Builder_1.beginCell)().storeAddress(src).endCell().beginParse().preloadUintBig(267);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, 267).endCell().beginParse().loadAddress();\n }\n };\n}\nfunction createBigIntKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'bigint') {\n throw Error('Key is not a bigint');\n }\n return (0, Builder_1.beginCell)().storeInt(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadIntBig(bits);\n }\n };\n}\nfunction createIntKey(bits) {\n return {\n bits: bits,\n serialize: (src) => {\n if (typeof src !== 'number') {\n throw Error('Key is not a number');\n }\n if (!Number.isSafeInteger(src)) {\n throw Error('Key is not a safe integer: ' + src);\n }\n return (0, Builder_1.beginCell)().storeInt(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadInt(bits);\n }\n };\n}\nfunction createBigUintKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'bigint') {\n throw Error('Key is not a bigint');\n }\n if (src < 0) {\n throw Error('Key is negative: ' + src);\n }\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n }\n };\n}\nfunction createUintKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'number') {\n throw Error('Key is not a number');\n }\n if (!Number.isSafeInteger(src)) {\n throw Error('Key is not a safe integer: ' + src);\n }\n if (src < 0) {\n throw Error('Key is negative: ' + src);\n }\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return Number((0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUint(bits));\n }\n };\n}\nfunction createBufferKey(bytes) {\n return {\n bits: bytes * 8,\n serialize: (src) => {\n if (!Buffer.isBuffer(src)) {\n throw Error('Key is not a buffer');\n }\n return (0, Builder_1.beginCell)().storeBuffer(src).endCell().beginParse().loadUintBig(bytes * 8);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bytes * 8).endCell().beginParse().loadBuffer(bytes);\n }\n };\n}\nfunction createIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeInt(src, bits);\n },\n parse: (src) => {\n return src.loadInt(bits);\n }\n };\n}\nfunction createBigIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeInt(src, bits);\n },\n parse: (src) => {\n return src.loadIntBig(bits);\n }\n };\n}\nfunction createBigVarIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeVarInt(src, bits);\n },\n parse: (src) => {\n return src.loadVarIntBig(bits);\n }\n };\n}\nfunction createBigVarUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeVarUint(src, bits);\n },\n parse: (src) => {\n return src.loadVarUintBig(bits);\n }\n };\n}\nfunction createUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeUint(src, bits);\n },\n parse: (src) => {\n return src.loadUint(bits);\n }\n };\n}\nfunction createBigUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeUint(src, bits);\n },\n parse: (src) => {\n return src.loadUintBig(bits);\n }\n };\n}\nfunction createBooleanValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeBit(src);\n },\n parse: (src) => {\n return src.loadBit();\n }\n };\n}\nfunction createAddressValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeAddress(src);\n },\n parse: (src) => {\n return src.loadAddress();\n }\n };\n}\nfunction createCellValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeRef(src);\n },\n parse: (src) => {\n return src.loadRef();\n }\n };\n}\nfunction createDictionaryValue(key, value) {\n return {\n serialize: (src, buidler) => {\n src.store(buidler);\n },\n parse: (src) => {\n return Dictionary.load(key, value, src);\n }\n };\n}\nfunction createBufferValue(size) {\n return {\n serialize: (src, buidler) => {\n if (src.length !== size) {\n throw Error('Invalid buffer size');\n }\n buidler.storeBuffer(src);\n },\n parse: (src) => {\n return src.loadBuffer(size);\n }\n };\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeString = exports.stringToCell = exports.readString = void 0;\nconst Builder_1 = require(\"../Builder\");\nfunction readBuffer(slice) {\n // Check consistency\n if (slice.remainingBits % 8 !== 0) {\n throw new Error(`Invalid string length: ${slice.remainingBits}`);\n }\n if (slice.remainingRefs !== 0 && slice.remainingRefs !== 1) {\n throw new Error(`invalid number of refs: ${slice.remainingRefs}`);\n }\n if (slice.remainingRefs === 1 && (1023 - slice.remainingBits) > 7) {\n throw new Error(`invalid string length: ${slice.remainingBits / 8}`);\n }\n // Read string\n let res;\n if (slice.remainingBits === 0) {\n res = Buffer.alloc(0);\n }\n else {\n res = slice.loadBuffer(slice.remainingBits / 8);\n }\n // Read tail\n if (slice.remainingRefs === 1) {\n res = Buffer.concat([res, readBuffer(slice.loadRef().beginParse())]);\n }\n return res;\n}\nfunction readString(slice) {\n return readBuffer(slice).toString();\n}\nexports.readString = readString;\nfunction writeBuffer(src, builder) {\n if (src.length > 0) {\n let bytes = Math.floor(builder.availableBits / 8);\n if (src.length > bytes) {\n let a = src.subarray(0, bytes);\n let t = src.subarray(bytes);\n builder = builder.storeBuffer(a);\n let bb = (0, Builder_1.beginCell)();\n writeBuffer(t, bb);\n builder = builder.storeRef(bb.endCell());\n }\n else {\n builder = builder.storeBuffer(src);\n }\n }\n}\nfunction stringToCell(src) {\n let builder = (0, Builder_1.beginCell)();\n writeBuffer(Buffer.from(src), builder);\n return builder.endCell();\n}\nexports.stringToCell = stringToCell;\nfunction writeString(src, builder) {\n writeBuffer(Buffer.from(src), builder);\n}\nexports.writeString = writeString;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slice = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst Builder_1 = require(\"./Builder\");\nconst strings_1 = require(\"./utils/strings\");\n/**\n * Slice is a class that allows to read cell data\n */\nclass Slice {\n constructor(reader, refs) {\n this[_a] = () => this.toString();\n this._reader = reader.clone();\n this._refs = [...refs];\n }\n /**\n * Get remaining bits\n */\n get remainingBits() {\n return this._reader.remaining;\n }\n /**\n * Get remaining refs\n */\n get remainingRefs() {\n return this._refs.length;\n }\n /**\n * Skip bits\n * @param bits\n */\n skip(bits) {\n this._reader.skip(bits);\n return this;\n }\n /**\n * Load a single bit\n * @returns true or false depending on the bit value\n */\n loadBit() {\n return this._reader.loadBit();\n }\n /**\n * Preload a signle bit\n * @returns true or false depending on the bit value\n */\n preloadBit() {\n return this._reader.preloadBit();\n }\n /**\n * Load a boolean\n * @returns true or false depending on the bit value\n */\n loadBoolean() {\n return this.loadBit();\n }\n /**\n * Load maybe boolean\n * @returns true or false depending on the bit value or null\n */\n loadMaybeBoolean() {\n if (this.loadBit()) {\n return this.loadBoolean();\n }\n else {\n return null;\n }\n }\n /**\n * Load bits as a new BitString\n * @param bits number of bits to read\n * @returns new BitString\n */\n loadBits(bits) {\n return this._reader.loadBits(bits);\n }\n /**\n * Preload bits as a new BitString\n * @param bits number of bits to read\n * @returns new BitString\n */\n preloadBits(bits) {\n return this._reader.preloadBits(bits);\n }\n /**\n * Load uint\n * @param bits number of bits to read\n * @returns uint value\n */\n loadUint(bits) {\n return this._reader.loadUint(bits);\n }\n /**\n * Load uint\n * @param bits number of bits to read\n * @returns uint value\n */\n loadUintBig(bits) {\n return this._reader.loadUintBig(bits);\n }\n /**\n * Preload uint\n * @param bits number of bits to read\n * @returns uint value\n */\n preloadUint(bits) {\n return this._reader.preloadUint(bits);\n }\n /**\n * Preload uint\n * @param bits number of bits to read\n * @returns uint value\n */\n preloadUintBig(bits) {\n return this._reader.preloadUintBig(bits);\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeUint(bits) {\n if (this.loadBit()) {\n return this.loadUint(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeUintBig(bits) {\n if (this.loadBit()) {\n return this.loadUintBig(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load int\n * @param bits number of bits to read\n * @returns int value\n */\n loadInt(bits) {\n return this._reader.loadInt(bits);\n }\n /**\n * Load int\n * @param bits number of bits to read\n * @returns int value\n */\n loadIntBig(bits) {\n return this._reader.loadIntBig(bits);\n }\n /**\n * Preload int\n * @param bits number of bits to read\n * @returns int value\n */\n preloadInt(bits) {\n return this._reader.preloadInt(bits);\n }\n /**\n * Preload int\n * @param bits number of bits to read\n * @returns int value\n */\n preloadIntBig(bits) {\n return this._reader.preloadIntBig(bits);\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeInt(bits) {\n if (this.loadBit()) {\n return this.loadInt(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeIntBig(bits) {\n if (this.loadBit()) {\n return this.loadIntBig(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n loadVarUint(bits) {\n return this._reader.loadVarUint(bits);\n }\n /**\n * Load varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n loadVarUintBig(bits) {\n return this._reader.loadVarUintBig(bits);\n }\n /**\n * Preload varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n preloadVarUint(bits) {\n return this._reader.preloadVarUint(bits);\n }\n /**\n * Preload varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n preloadVarUintBig(bits) {\n return this._reader.preloadVarUintBig(bits);\n }\n /**\n * Load varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n loadVarInt(bits) {\n return this._reader.loadVarInt(bits);\n }\n /**\n * Load varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n loadVarIntBig(bits) {\n return this._reader.loadVarIntBig(bits);\n }\n /**\n * Preload varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n preloadVarInt(bits) {\n return this._reader.preloadVarInt(bits);\n }\n /**\n * Preload varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n preloadVarIntBig(bits) {\n return this._reader.preloadVarIntBig(bits);\n }\n /**\n * Load coins\n * @returns coins value\n */\n loadCoins() {\n return this._reader.loadCoins();\n }\n /**\n * Preload coins\n * @returns coins value\n */\n preloadCoins() {\n return this._reader.preloadCoins();\n }\n /**\n * Load maybe coins\n * @returns coins value or null\n */\n loadMaybeCoins() {\n if (this._reader.loadBit()) {\n return this._reader.loadCoins();\n }\n else {\n return null;\n }\n }\n /**\n * Load internal Address\n * @returns Address\n */\n loadAddress() {\n return this._reader.loadAddress();\n }\n /**\n * Load optional internal Address\n * @returns Address or null\n */\n loadMaybeAddress() {\n return this._reader.loadMaybeAddress();\n }\n /**\n * Load external address\n * @returns ExternalAddress\n */\n loadExternalAddress() {\n return this._reader.loadExternalAddress();\n }\n /**\n * Load optional external address\n * @returns ExternalAddress or null\n */\n loadMaybeExternalAddress() {\n return this._reader.loadMaybeExternalAddress();\n }\n /**\n * Load address\n * @returns Address, ExternalAddress or null\n */\n loadAddressAny() {\n return this._reader.loadAddressAny();\n }\n /**\n * Load reference\n * @returns Cell\n */\n loadRef() {\n if (this._refs.length === 0) {\n throw new Error(\"No more references\");\n }\n return this._refs.shift();\n }\n /**\n * Preload reference\n * @returns Cell\n */\n preloadRef() {\n if (this._refs.length === 0) {\n throw new Error(\"No more references\");\n }\n return this._refs[0];\n }\n /**\n * Load optional reference\n * @returns Cell or null\n */\n loadMaybeRef() {\n if (this.loadBit()) {\n return this.loadRef();\n }\n else {\n return null;\n }\n }\n /**\n * Preload optional reference\n * @returns Cell or null\n */\n preloadMaybeRef() {\n if (this.preloadBit()) {\n return this.preloadRef();\n }\n else {\n return null;\n }\n }\n /**\n * Load byte buffer\n * @param bytes number of bytes to load\n * @returns Buffer\n */\n loadBuffer(bytes) {\n return this._reader.loadBuffer(bytes);\n }\n /**\n * Load byte buffer\n * @param bytes number of bytes to load\n * @returns Buffer\n */\n preloadBuffer(bytes) {\n return this._reader.preloadBuffer(bytes);\n }\n /**\n * Load string tail\n */\n loadStringTail() {\n return (0, strings_1.readString)(this);\n }\n /**\n * Load maybe string tail\n * @returns string or null\n */\n loadMaybeStringTail() {\n if (this.loadBit()) {\n return (0, strings_1.readString)(this);\n }\n else {\n return null;\n }\n }\n /**\n * Load string tail from ref\n * @returns string\n */\n loadStringRefTail() {\n return (0, strings_1.readString)(this.loadRef().beginParse());\n }\n /**\n * Load maybe string tail from ref\n * @returns string or null\n */\n loadMaybeStringRefTail() {\n const ref = this.loadMaybeRef();\n if (ref) {\n return (0, strings_1.readString)(ref.beginParse());\n }\n else {\n return null;\n }\n }\n /**\n * Loads dictionary\n * @param key key description\n * @param value value description\n * @returns Dictionary\n */\n loadDict(key, value) {\n return Dictionary_1.Dictionary.load(key, value, this);\n }\n /**\n * Loads dictionary directly from current slice\n * @param key key description\n * @param value value description\n * @returns Dictionary\n */\n loadDictDirect(key, value) {\n return Dictionary_1.Dictionary.loadDirect(key, value, this);\n }\n /**\n * Checks if slice is empty\n */\n endParse() {\n if (this.remainingBits > 0 || this.remainingRefs > 0) {\n throw new Error(\"Slice is not empty\");\n }\n }\n /**\n * Convert slice to cell\n */\n asCell() {\n return (0, Builder_1.beginCell)().storeSlice(this).endCell();\n }\n /**\n *\n * @returns\n */\n asBuilder() {\n return (0, Builder_1.beginCell)().storeSlice(this);\n }\n /**\n * Clone slice\n * @returns cloned slice\n */\n clone() {\n return new Slice(this._reader, this._refs);\n }\n /**\n * Print slice as string by converting it to cell\n * @returns string\n */\n toString() {\n return this.asCell().toString();\n }\n}\nexports.Slice = Slice;\n_a = symbol_inspect_1.default;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitReader = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst ExternalAddress_1 = require(\"../address/ExternalAddress\");\n/**\n * Class for reading bit strings\n */\nclass BitReader {\n constructor(bits, offset = 0) {\n this._checkpoints = [];\n this._bits = bits;\n this._offset = offset;\n }\n /**\n * Number of bits remaining\n */\n get remaining() {\n return this._bits.length - this._offset;\n }\n /**\n * Skip bits\n * @param bits number of bits to skip\n */\n skip(bits) {\n if (bits < 0 || this._offset + bits > this._bits.length) {\n throw new Error(`Index ${this._offset + bits} is out of bounds`);\n }\n this._offset += bits;\n }\n /**\n * Reset to the beginning or latest checkpoint\n */\n reset() {\n if (this._checkpoints.length > 0) {\n this._offset = this._checkpoints.pop();\n }\n else {\n this._offset = 0;\n }\n }\n /**\n * Save checkpoint\n */\n save() {\n this._checkpoints.push(this._offset);\n }\n /**\n * Load a single bit\n * @returns true if the bit is set, false otherwise\n */\n loadBit() {\n let r = this._bits.at(this._offset);\n this._offset++;\n return r;\n }\n /**\n * Preload bit\n * @returns true if the bit is set, false otherwise\n */\n preloadBit() {\n return this._bits.at(this._offset);\n }\n /**\n * Load bit string\n * @param bits number of bits to read\n * @returns new bitstring\n */\n loadBits(bits) {\n let r = this._bits.substring(this._offset, bits);\n this._offset += bits;\n return r;\n }\n /**\n * Preload bit string\n * @param bits number of bits to read\n * @returns new bitstring\n */\n preloadBits(bits) {\n return this._bits.substring(this._offset, bits);\n }\n /**\n * Load buffer\n * @param bytes number of bytes\n * @returns new buffer\n */\n loadBuffer(bytes) {\n let buf = this._preloadBuffer(bytes, this._offset);\n this._offset += bytes * 8;\n return buf;\n }\n /**\n * Preload buffer\n * @param bytes number of bytes\n * @returns new buffer\n */\n preloadBuffer(bytes) {\n return this._preloadBuffer(bytes, this._offset);\n }\n /**\n * Load uint value\n * @param bits uint bits\n * @returns read value as number\n */\n loadUint(bits) {\n return Number(this.loadUintBig(bits));\n }\n /**\n * Load uint value as bigint\n * @param bits uint bits\n * @returns read value as bigint\n */\n loadUintBig(bits) {\n let loaded = this.preloadUintBig(bits);\n this._offset += bits;\n return loaded;\n }\n /**\n * Preload uint value\n * @param bits uint bits\n * @returns read value as number\n */\n preloadUint(bits) {\n return Number(this._preloadUint(bits, this._offset));\n }\n /**\n * Preload uint value as bigint\n * @param bits uint bits\n * @returns read value as bigint\n */\n preloadUintBig(bits) {\n return this._preloadUint(bits, this._offset);\n }\n /**\n * Load int value\n * @param bits int bits\n * @returns read value as bigint\n */\n loadInt(bits) {\n let res = this._preloadInt(bits, this._offset);\n this._offset += bits;\n return Number(res);\n }\n /**\n * Load int value as bigint\n * @param bits int bits\n * @returns read value as bigint\n */\n loadIntBig(bits) {\n let res = this._preloadInt(bits, this._offset);\n this._offset += bits;\n return res;\n }\n /**\n * Preload int value\n * @param bits int bits\n * @returns read value as bigint\n */\n preloadInt(bits) {\n return Number(this._preloadInt(bits, this._offset));\n }\n /**\n * Preload int value\n * @param bits int bits\n * @returns read value as bigint\n */\n preloadIntBig(bits) {\n return this._preloadInt(bits, this._offset);\n }\n /**\n * Load varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarUint(bits) {\n let size = Number(this.loadUint(bits));\n return Number(this.loadUintBig(size * 8));\n }\n /**\n * Load varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarUintBig(bits) {\n let size = Number(this.loadUint(bits));\n return this.loadUintBig(size * 8);\n }\n /**\n * Preload varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarUint(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return Number(this._preloadUint(size * 8, this._offset + bits));\n }\n /**\n * Preload varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarUintBig(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._preloadUint(size * 8, this._offset + bits);\n }\n /**\n * Load varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarInt(bits) {\n let size = Number(this.loadUint(bits));\n return Number(this.loadIntBig(size * 8));\n }\n /**\n * Load varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarIntBig(bits) {\n let size = Number(this.loadUint(bits));\n return this.loadIntBig(size * 8);\n }\n /**\n * Preload varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarInt(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return Number(this._preloadInt(size * 8, this._offset + bits));\n }\n /**\n * Preload varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarIntBig(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._preloadInt(size * 8, this._offset + bits);\n }\n /**\n * Load coins value\n * @returns read value as bigint\n */\n loadCoins() {\n return this.loadVarUintBig(4);\n }\n /**\n * Preload coins value\n * @returns read value as bigint\n */\n preloadCoins() {\n return this.preloadVarUintBig(4);\n }\n /**\n * Load Address\n * @returns Address\n */\n loadAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 2) {\n return this._loadInternalAddress();\n }\n else {\n throw new Error(\"Invalid address: \" + type);\n }\n }\n /**\n * Load internal address\n * @returns Address or null\n */\n loadMaybeAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 2) {\n return this._loadInternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Load external address\n * @returns ExternalAddress\n */\n loadExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 1) {\n return this._loadExternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Load external address\n * @returns ExternalAddress or null\n */\n loadMaybeExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 1) {\n return this._loadExternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Read address of any type\n * @returns Address or ExternalAddress or null\n */\n loadAddressAny() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 2) {\n return this._loadInternalAddress();\n }\n else if (type === 1) {\n return this._loadExternalAddress();\n }\n else if (type === 3) {\n throw Error('Unsupported');\n }\n else {\n throw Error('Unreachable');\n }\n }\n /**\n * Load bit string that was padded to make it byte alligned. Used in BOC serialization\n * @param bytes number of bytes to read\n */\n loadPaddedBits(bits) {\n // Check that number of bits is byte alligned\n if (bits % 8 !== 0) {\n throw new Error(\"Invalid number of bits\");\n }\n // Skip padding\n let length = bits;\n while (true) {\n if (this._bits.at(this._offset + length - 1)) {\n length--;\n break;\n }\n else {\n length--;\n }\n }\n // Read substring\n let r = this._bits.substring(this._offset, length);\n this._offset += bits;\n return r;\n }\n /**\n * Clone BitReader\n */\n clone() {\n return new BitReader(this._bits, this._offset);\n }\n /**\n * Preload int from specific offset\n * @param bits bits to preload\n * @param offset offset to start from\n * @returns read value as bigint\n */\n _preloadInt(bits, offset) {\n if (bits == 0) {\n return 0n;\n }\n let sign = this._bits.at(offset);\n let res = 0n;\n for (let i = 0; i < bits - 1; i++) {\n if (this._bits.at(offset + 1 + i)) {\n res += 1n << BigInt(bits - i - 1 - 1);\n }\n }\n if (sign) {\n res = res - (1n << BigInt(bits - 1));\n }\n return res;\n }\n /**\n * Preload uint from specific offset\n * @param bits bits to preload\n * @param offset offset to start from\n * @returns read value as bigint\n */\n _preloadUint(bits, offset) {\n if (bits == 0) {\n return 0n;\n }\n let res = 0n;\n for (let i = 0; i < bits; i++) {\n if (this._bits.at(offset + i)) {\n res += 1n << BigInt(bits - i - 1);\n }\n }\n return res;\n }\n _preloadBuffer(bytes, offset) {\n // Try to load fast\n let fastBuffer = this._bits.subbuffer(offset, bytes * 8);\n if (fastBuffer) {\n return fastBuffer;\n }\n // Load slow\n let buf = Buffer.alloc(bytes);\n for (let i = 0; i < bytes; i++) {\n buf[i] = Number(this._preloadUint(8, offset + i * 8));\n }\n return buf;\n }\n _loadInternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type !== 2) {\n throw Error('Invalid address');\n }\n // No Anycast supported\n if (this._preloadUint(1, this._offset + 2) !== 0n) {\n throw Error('Invalid address');\n }\n // Read address\n let wc = Number(this._preloadInt(8, this._offset + 3));\n let hash = this._preloadBuffer(32, this._offset + 11);\n // Update offset\n this._offset += 267;\n return new Address_1.Address(wc, hash);\n }\n _loadExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type !== 1) {\n throw Error('Invalid address');\n }\n // Load length\n let bits = Number(this._preloadUint(9, this._offset + 2));\n // Load address\n let value = this._preloadUint(bits, this._offset + 11);\n // Update offset\n this._offset += 11 + bits;\n return new ExternalAddress_1.ExternalAddress(value, bits);\n }\n}\nexports.BitReader = BitReader;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticLibrary = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticLibrary(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash\n const size = 8 + 256;\n if (bits.length !== size) {\n throw new Error(`Library cell must have exactly (8 + 256) bits, got \"${bits.length}\"`);\n }\n // Check type\n let type = reader.loadUint(8);\n if (type !== 2) {\n throw new Error(`Library cell must have type 2, got \"${type}\"`);\n }\n return {};\n}\nexports.exoticLibrary = exoticLibrary;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticMerkleProof = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticMerkleProof(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash + depth\n const size = 8 + 256 + 16;\n if (bits.length !== size) {\n throw new Error(`Merkle Proof cell must have exactly (8 + 256 + 16) bits, got \"${bits.length}\"`);\n }\n if (refs.length !== 1) {\n throw new Error(`Merkle Proof cell must have exactly 1 ref, got \"${refs.length}\"`);\n }\n // Check type\n let type = reader.loadUint(8);\n if (type !== 3) {\n throw new Error(`Merkle Proof cell must have type 3, got \"${type}\"`);\n }\n // Check data\n const proofHash = reader.loadBuffer(32);\n const proofDepth = reader.loadUint(16);\n const refHash = refs[0].hash(0);\n const refDepth = refs[0].depth(0);\n if (proofDepth !== refDepth) {\n throw new Error(`Merkle Proof cell ref depth must be exactly \"${proofDepth}\", got \"${refDepth}\"`);\n }\n if (!proofHash.equals(refHash)) {\n throw new Error(`Merkle Proof cell ref hash must be exactly \"${proofHash.toString('hex')}\", got \"${refHash.toString('hex')}\"`);\n }\n return {\n proofDepth,\n proofHash\n };\n}\nexports.exoticMerkleProof = exoticMerkleProof;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticMerkleUpdate = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticMerkleUpdate(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash + hash + depth + depth\n const size = 8 + (2 * (256 + 16));\n if (bits.length !== size) {\n throw new Error(`Merkle Update cell must have exactly (8 + (2 * (256 + 16))) bits, got \"${bits.length}\"`);\n }\n if (refs.length !== 2) {\n throw new Error(`Merkle Update cell must have exactly 2 refs, got \"${refs.length}\"`);\n }\n let type = reader.loadUint(8);\n if (type !== 4) {\n throw new Error(`Merkle Update cell type must be exactly 4, got \"${type}\"`);\n }\n const proofHash1 = reader.loadBuffer(32);\n const proofHash2 = reader.loadBuffer(32);\n const proofDepth1 = reader.loadUint(16);\n const proofDepth2 = reader.loadUint(16);\n if (proofDepth1 !== refs[0].depth(0)) {\n throw new Error(`Merkle Update cell ref depth must be exactly \"${proofDepth1}\", got \"${refs[0].depth(0)}\"`);\n }\n if (!proofHash1.equals(refs[0].hash(0))) {\n throw new Error(`Merkle Update cell ref hash must be exactly \"${proofHash1.toString('hex')}\", got \"${refs[0].hash(0).toString('hex')}\"`);\n }\n if (proofDepth2 !== refs[1].depth(0)) {\n throw new Error(`Merkle Update cell ref depth must be exactly \"${proofDepth2}\", got \"${refs[1].depth(0)}\"`);\n }\n if (!proofHash2.equals(refs[1].hash(0))) {\n throw new Error(`Merkle Update cell ref hash must be exactly \"${proofHash2.toString('hex')}\", got \"${refs[1].hash(0).toString('hex')}\"`);\n }\n return {\n proofDepth1,\n proofDepth2,\n proofHash1,\n proofHash2\n };\n}\nexports.exoticMerkleUpdate = exoticMerkleUpdate;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LevelMask = void 0;\nclass LevelMask {\n constructor(mask = 0) {\n this._mask = 0;\n this._mask = mask;\n this._hashIndex = countSetBits(this._mask);\n this._hashCount = this._hashIndex + 1;\n }\n get value() {\n return this._mask;\n }\n get level() {\n return 32 - Math.clz32(this._mask);\n }\n get hashIndex() {\n return this._hashIndex;\n }\n get hashCount() {\n return this._hashCount;\n }\n apply(level) {\n return new LevelMask(this._mask & ((1 << level) - 1));\n }\n isSignificant(level) {\n let res = level === 0 || (this._mask >> (level - 1)) % 2 !== 0;\n return res;\n // bool res = level == 0 | | ( (mask_ >> (level -1)) % 2 != 0);\n }\n}\nexports.LevelMask = LevelMask;\nfunction countSetBits(n) {\n n = n - ((n >> 1) & 0x55555555);\n n = (n & 0x33333333) + ((n >> 2) & 0x33333333);\n return ((n + (n >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticPruned = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst LevelMask_1 = require(\"./LevelMask\");\nfunction exoticPruned(bits, refs) {\n let reader = new BitReader_1.BitReader(bits);\n // Check type\n let type = reader.loadUint(8);\n if (type !== 1) {\n throw new Error(`Pruned branch cell must have type 1, got \"${type}\"`);\n }\n // Check refs\n if (refs.length !== 0) {\n throw new Error(`Pruned Branch cell can't has refs, got \"${refs.length}\"`);\n }\n // Resolve cell\n let mask;\n if (bits.length === 280) {\n // Special case for config proof\n // This test proof is generated in the moment of voting for a slashing\n // it seems that tools generate it incorrectly and therefore doesn't have mask in it\n // so we need to hardcode it equal to 1\n mask = new LevelMask_1.LevelMask(1);\n }\n else {\n // Check level\n mask = new LevelMask_1.LevelMask(reader.loadUint(8));\n if (mask.level < 1 || mask.level > 3) {\n throw new Error(`Pruned Branch cell level must be >= 1 and <= 3, got \"${mask.level}/${mask.value}\"`);\n }\n // Read pruned\n const size = 8 + 8 + (mask.apply(mask.level - 1).hashCount * (256 /* Hash */ + 16 /* Depth */));\n if (bits.length !== size) {\n throw new Error(`Pruned branch cell must have exactly ${size} bits, got \"${bits.length}\"`);\n }\n }\n // Read pruned\n let pruned = [];\n let hashes = [];\n let depths = [];\n for (let i = 0; i < mask.level; i++) {\n hashes.push(reader.loadBuffer(32));\n }\n for (let i = 0; i < mask.level; i++) {\n depths.push(reader.loadUint(16));\n }\n for (let i = 0; i < mask.level; i++) {\n pruned.push({\n depth: depths[i],\n hash: hashes[i]\n });\n }\n return {\n mask: mask.value,\n pruned\n };\n}\nexports.exoticPruned = exoticPruned;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveExotic = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst CellType_1 = require(\"../CellType\");\nconst exoticLibrary_1 = require(\"./exoticLibrary\");\nconst exoticMerkleProof_1 = require(\"./exoticMerkleProof\");\nconst exoticMerkleUpdate_1 = require(\"./exoticMerkleUpdate\");\nconst exoticPruned_1 = require(\"./exoticPruned\");\nconst LevelMask_1 = require(\"./LevelMask\");\nfunction resolvePruned(bits, refs) {\n // Parse pruned cell\n let pruned = (0, exoticPruned_1.exoticPruned)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask(pruned.mask);\n for (let i = 0; i < pruned.pruned.length; i++) {\n depths.push(pruned.pruned[i].depth);\n hashes.push(pruned.pruned[i].hash);\n }\n return {\n type: CellType_1.CellType.PrunedBranch,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveLibrary(bits, refs) {\n // Parse library cell\n let pruned = (0, exoticLibrary_1.exoticLibrary)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask();\n return {\n type: CellType_1.CellType.Library,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveMerkleProof(bits, refs) {\n // Parse merkle proof cell\n let merkleProof = (0, exoticMerkleProof_1.exoticMerkleProof)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask(refs[0].level() >> 1);\n return {\n type: CellType_1.CellType.MerkleProof,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveMerkleUpdate(bits, refs) {\n // Parse merkle proof cell\n let merkleUpdate = (0, exoticMerkleUpdate_1.exoticMerkleUpdate)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask((refs[0].level() | refs[1].level()) >> 1);\n return {\n type: CellType_1.CellType.MerkleUpdate,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveExotic(bits, refs) {\n let reader = new BitReader_1.BitReader(bits);\n let type = reader.preloadUint(8);\n if (type === 1) {\n return resolvePruned(bits, refs);\n }\n if (type === 2) {\n return resolveLibrary(bits, refs);\n }\n if (type === 3) {\n return resolveMerkleProof(bits, refs);\n }\n if (type === 4) {\n return resolveMerkleUpdate(bits, refs);\n }\n throw Error('Invalid exotic cell type: ' + type);\n}\nexports.resolveExotic = resolveExotic;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRepr = exports.getBitsDescriptor = exports.getRefsDescriptor = void 0;\nconst CellType_1 = require(\"../CellType\");\nconst paddedBits_1 = require(\"../utils/paddedBits\");\nfunction getRefsDescriptor(refs, level, type) {\n return refs.length + (type !== CellType_1.CellType.Ordinary ? 1 : 0) * 8 + level * 32;\n}\nexports.getRefsDescriptor = getRefsDescriptor;\nfunction getBitsDescriptor(bits) {\n let len = bits.length;\n return Math.ceil(len / 8) + Math.floor(len / 8);\n}\nexports.getBitsDescriptor = getBitsDescriptor;\nfunction getRepr(bits, refs, level, type) {\n // Allocate\n const bitsLen = Math.ceil(bits.length / 8);\n const repr = Buffer.alloc(2 + bitsLen + (2 + 32) * refs.length);\n // Write descriptors\n let reprCursor = 0;\n repr[reprCursor++] = getRefsDescriptor(refs, level, type);\n repr[reprCursor++] = getBitsDescriptor(bits);\n // Write bits\n (0, paddedBits_1.bitsToPaddedBuffer)(bits).copy(repr, reprCursor);\n reprCursor += bitsLen;\n // Write refs\n for (const c of refs) {\n let childDepth;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childDepth = c.depth(level + 1);\n }\n else {\n childDepth = c.depth(level);\n }\n repr[reprCursor++] = Math.floor(childDepth / 256);\n repr[reprCursor++] = childDepth % 256;\n }\n for (const c of refs) {\n let childHash;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childHash = c.hash(level + 1);\n }\n else {\n childHash = c.hash(level);\n }\n childHash.copy(repr, reprCursor);\n reprCursor += 32;\n }\n // Result\n return repr;\n}\nexports.getRepr = getRepr;\n", "import { packedValue, EncodingType, FormatType } from \"./custom_types\";\n/**\n * Return type for all the *2packed functions\n */\nconst b64Tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nconst arraybuffer_error = \"ARRAYBUFFER not supported by this environment\";\nconst uint8array_error = \"UINT8ARRAY not supported by this environment\";\n\n/**\n * Convert a string to an array of words.\n *\n * There is a known bug with an odd number of existing bytes and using a UTF-16 encoding. However, this function is\n * used such that the existing bytes are always a result of a previous UTF-16 str2packed call and therefore there \n * should never be an odd number of existing bytes.\n\n * @param str Unicode string to be converted to binary representation.\n * @param utfType The Unicode type to use to encode the source string.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked`.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction str2packed(\n str: string,\n utfType: EncodingType,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let codePnt,\n codePntArr,\n byteCnt = 0,\n i,\n j,\n intOffset,\n byteOffset,\n shiftModifier,\n transposeBytes;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3;\n\n if (\"UTF8\" === utfType) {\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n for (i = 0; i < str.length; i += 1) {\n codePnt = str.charCodeAt(i);\n codePntArr = [];\n\n if (0x80 > codePnt) {\n codePntArr.push(codePnt);\n } else if (0x800 > codePnt) {\n codePntArr.push(0xc0 | (codePnt >>> 6));\n codePntArr.push(0x80 | (codePnt & 0x3f));\n } else if (0xd800 > codePnt || 0xe000 <= codePnt) {\n codePntArr.push(0xe0 | (codePnt >>> 12), 0x80 | ((codePnt >>> 6) & 0x3f), 0x80 | (codePnt & 0x3f));\n } else {\n i += 1;\n codePnt = 0x10000 + (((codePnt & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n codePntArr.push(\n 0xf0 | (codePnt >>> 18),\n 0x80 | ((codePnt >>> 12) & 0x3f),\n 0x80 | ((codePnt >>> 6) & 0x3f),\n 0x80 | (codePnt & 0x3f)\n );\n }\n\n for (j = 0; j < codePntArr.length; j += 1) {\n byteOffset = byteCnt + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n /* Known bug kicks in here */\n packed[intOffset] |= codePntArr[j] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n byteCnt += 1;\n }\n }\n } else {\n /* UTF16BE or UTF16LE */\n shiftModifier = bigEndianMod === -1 ? 2 : 0;\n /* Internally strings are UTF-16BE so transpose bytes under two conditions:\n * need LE and not switching endianness due to SHA-3\n * need BE and switching endianness due to SHA-3 */\n transposeBytes = (\"UTF16LE\" === utfType && bigEndianMod !== 1) || (\"UTF16LE\" !== utfType && bigEndianMod === 1);\n for (i = 0; i < str.length; i += 1) {\n codePnt = str.charCodeAt(i);\n if (transposeBytes === true) {\n j = codePnt & 0xff;\n codePnt = (j << 8) | (codePnt >>> 8);\n }\n\n byteOffset = byteCnt + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n byteCnt += 2;\n }\n }\n return { value: packed, binLen: byteCnt * 8 + existingPackedLen };\n}\n\n/**\n * Convert a hex string to an array of words.\n *\n * @param str Hexadecimal string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction hex2packed(\n str: string,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let i, num, intOffset, byteOffset;\n\n if (0 !== str.length % 2) {\n throw new Error(\"String of HEX type must be in byte increments\");\n }\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < str.length; i += 2) {\n num = parseInt(str.substr(i, 2), 16);\n if (!isNaN(num)) {\n byteOffset = (i >>> 1) + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= num << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n } else {\n throw new Error(\"String of HEX type contains invalid characters\");\n }\n }\n\n return { value: packed, binLen: str.length * 4 + existingPackedLen };\n}\n\n/**\n * Convert a string of raw bytes to an array of words.\n *\n * @param str String of raw bytes to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction bytes2packed(\n str: string,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let codePnt, i, intOffset, byteOffset;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < str.length; i += 1) {\n codePnt = str.charCodeAt(i);\n\n byteOffset = i + existingByteLen;\n intOffset = byteOffset >>> 2;\n if (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n }\n\n return { value: packed, binLen: str.length * 8 + existingPackedLen };\n}\n\n/**\n * Convert a base-64 string to an array of words.\n *\n * @param str Base64-encoded string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction b642packed(\n str: string,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let byteCnt = 0,\n index,\n i,\n j,\n tmpInt,\n strPart,\n intOffset,\n byteOffset;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0,\n firstEqual = str.indexOf(\"=\");\n\n if (-1 === str.search(/^[a-zA-Z0-9=+/]+$/)) {\n throw new Error(\"Invalid character in base-64 string\");\n }\n\n str = str.replace(/=/g, \"\");\n if (-1 !== firstEqual && firstEqual < str.length) {\n throw new Error(\"Invalid '=' found in base-64 string\");\n }\n\n for (i = 0; i < str.length; i += 4) {\n strPart = str.substr(i, 4);\n tmpInt = 0;\n\n for (j = 0; j < strPart.length; j += 1) {\n index = b64Tab.indexOf(strPart.charAt(j));\n tmpInt |= index << (18 - 6 * j);\n }\n\n for (j = 0; j < strPart.length - 1; j += 1) {\n byteOffset = byteCnt + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |=\n ((tmpInt >>> (16 - j * 8)) & 0xff) << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n byteCnt += 1;\n }\n }\n\n return { value: packed, binLen: byteCnt * 8 + existingPackedLen };\n}\n\n/**\n * Convert an Uint8Array to an array of words.\n *\n * @param arr Uint8Array to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction uint8array2packed(\n arr: Uint8Array,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let i, intOffset, byteOffset;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < arr.length; i += 1) {\n byteOffset = i + existingByteLen;\n intOffset = byteOffset >>> 2;\n if (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= arr[i] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n }\n\n return { value: packed, binLen: arr.length * 8 + existingPackedLen };\n}\n\n/**\n * Convert an ArrayBuffer to an array of words\n *\n * @param arr ArrayBuffer to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction arraybuffer2packed(\n arr: ArrayBuffer,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n return uint8array2packed(new Uint8Array(arr), existingPacked, existingPackedLen, bigEndianMod);\n}\n\n/**\n * Function that takes an input format and UTF encoding and returns the appropriate function used to convert the input.\n *\n * @param format The format of the input to be converted\n * @param utfType The string encoding to use for TEXT inputs.\n * @param bigEndianMod Modifier for whether hash function is big or small endian\n * @returns Function that will convert an input to a packed int array.\n */\nexport function getStrConverter(\n format: FormatType,\n utfType: EncodingType,\n bigEndianMod: -1 | 1\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n): (input: any, existingBin?: number[], existingBinLen?: number) => packedValue {\n /* Validate encoding */\n switch (utfType) {\n case \"UTF8\":\n /* Fallthrough */\n case \"UTF16BE\":\n /* Fallthrough */\n case \"UTF16LE\":\n /* Fallthrough */\n break;\n default:\n throw new Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\");\n }\n\n /* Map inputFormat to the appropriate converter */\n switch (format) {\n case \"HEX\":\n /**\n * @param str String of hexadecimal bytes to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return hex2packed(str, existingBin, existingBinLen, bigEndianMod);\n };\n case \"TEXT\":\n /**\n * @param str Unicode string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return str2packed(str, utfType, existingBin, existingBinLen, bigEndianMod);\n };\n case \"B64\":\n /**\n * @param str Base64-encoded string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return b642packed(str, existingBin, existingBinLen, bigEndianMod);\n };\n case \"BYTES\":\n /**\n * @param str String of raw bytes to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return bytes2packed(str, existingBin, existingBinLen, bigEndianMod);\n };\n case \"ARRAYBUFFER\":\n try {\n new ArrayBuffer(0);\n } catch (ignore) {\n throw new Error(arraybuffer_error);\n }\n /**\n * @param arr ArrayBuffer to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (arr: ArrayBuffer, existingBin?: number[], existingBinLen?: number): packedValue {\n return arraybuffer2packed(arr, existingBin, existingBinLen, bigEndianMod);\n };\n case \"UINT8ARRAY\":\n try {\n new Uint8Array(0);\n } catch (ignore) {\n throw new Error(uint8array_error);\n }\n /**\n * @param arr Uint8Array to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (arr: Uint8Array, existingBin?: number[], existingBinLen?: number): packedValue {\n return uint8array2packed(arr, existingBin, existingBinLen, bigEndianMod);\n };\n default:\n throw new Error(\"format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\");\n }\n}\n\n/**\n * Convert an array of words to a hexadecimal string.\n *\n * toString() won't work here because it removes preceding zeros (e.g. 0x00000001.toString === \"1\" rather than\n * \"00000001\" and 0.toString(16) === \"0\" rather than \"00\").\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param formatOpts Hashmap containing validated output formatting options.\n * @returns Hexadecimal representation of `packed`.\n */\nexport function packed2hex(\n packed: number[],\n outputLength: number,\n bigEndianMod: -1 | 1,\n formatOpts: { outputUpper: boolean; b64Pad: string }\n): string {\n const hex_tab = \"0123456789abcdef\";\n let str = \"\",\n i,\n srcByte;\n\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 1) {\n /* The below is more than a byte but it gets taken care of later */\n srcByte = packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)));\n str += hex_tab.charAt((srcByte >>> 4) & 0xf) + hex_tab.charAt(srcByte & 0xf);\n }\n\n return formatOpts[\"outputUpper\"] ? str.toUpperCase() : str;\n}\n\n/**\n * Convert an array of words to a base-64 string.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param formatOpts Hashmap containing validated output formatting options.\n * @returns Base64-encoded representation of `packed`.\n */\nexport function packed2b64(\n packed: number[],\n outputLength: number,\n bigEndianMod: -1 | 1,\n formatOpts: { outputUpper: boolean; b64Pad: string }\n): string {\n let str = \"\",\n i,\n j,\n triplet,\n int1,\n int2;\n\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 3) {\n int1 = i + 1 < length ? packed[(i + 1) >>> 2] : 0;\n int2 = i + 2 < length ? packed[(i + 2) >>> 2] : 0;\n triplet =\n (((packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff) << 16) |\n (((int1 >>> (8 * (shiftModifier + bigEndianMod * ((i + 1) % 4)))) & 0xff) << 8) |\n ((int2 >>> (8 * (shiftModifier + bigEndianMod * ((i + 2) % 4)))) & 0xff);\n for (j = 0; j < 4; j += 1) {\n if (i * 8 + j * 6 <= outputLength) {\n str += b64Tab.charAt((triplet >>> (6 * (3 - j))) & 0x3f);\n } else {\n str += formatOpts[\"b64Pad\"];\n }\n }\n }\n return str;\n}\n\n/**\n * Convert an array of words to raw bytes string.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Raw bytes representation of `packed`.\n */\nexport function packed2bytes(packed: number[], outputLength: number, bigEndianMod: -1 | 1): string {\n let str = \"\",\n i,\n srcByte;\n\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 1) {\n srcByte = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff;\n str += String.fromCharCode(srcByte);\n }\n\n return str;\n}\n\n/**\n * Convert an array of words to an ArrayBuffer.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns An ArrayBuffer containing bytes from `packed.\n */\nexport function packed2arraybuffer(packed: number[], outputLength: number, bigEndianMod: -1 | 1): ArrayBuffer {\n let i;\n const length = outputLength / 8,\n retVal = new ArrayBuffer(length),\n arrView = new Uint8Array(retVal),\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 1) {\n arrView[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff;\n }\n\n return retVal;\n}\n\n/**\n * Convert an array of words to an Uint8Array.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns An Uint8Array containing bytes from `packed.\n */\nexport function packed2uint8array(packed: number[], outputLength: number, bigEndianMod: -1 | 1): Uint8Array {\n let i;\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0,\n retVal = new Uint8Array(length);\n\n for (i = 0; i < length; i += 1) {\n retVal[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff;\n }\n\n return retVal;\n}\n\n/**\n * Function that takes an output format and associated parameters and returns a function that converts packed integers\n * to that format.\n *\n * @param format The desired output formatting.\n * @param outputBinLen Output length in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param outputOptions Hashmap of output formatting options\n * @returns Function that will convert a packed integer array to desired format.\n */\nexport function getOutputConverter(\n format: \"HEX\" | \"B64\" | \"BYTES\" | \"ARRAYBUFFER\" | \"UINT8ARRAY\",\n outputBinLen: number,\n bigEndianMod: -1 | 1,\n outputOptions: { outputUpper: boolean; b64Pad: string }\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n): (binarray: number[]) => any {\n switch (format) {\n case \"HEX\":\n return function (binarray): string {\n return packed2hex(binarray, outputBinLen, bigEndianMod, outputOptions);\n };\n case \"B64\":\n return function (binarray): string {\n return packed2b64(binarray, outputBinLen, bigEndianMod, outputOptions);\n };\n case \"BYTES\":\n return function (binarray): string {\n return packed2bytes(binarray, outputBinLen, bigEndianMod);\n };\n case \"ARRAYBUFFER\":\n try {\n /* Need to test ArrayBuffer support */\n new ArrayBuffer(0);\n } catch (ignore) {\n throw new Error(arraybuffer_error);\n }\n return function (binarray): ArrayBuffer {\n return packed2arraybuffer(binarray, outputBinLen, bigEndianMod);\n };\n case \"UINT8ARRAY\":\n try {\n /* Need to test Uint8Array support */\n new Uint8Array(0);\n } catch (ignore) {\n throw new Error(uint8array_error);\n }\n return function (binarray): Uint8Array {\n return packed2uint8array(binarray, outputBinLen, bigEndianMod);\n };\n default:\n throw new Error(\"format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\");\n }\n}\n", "import { getStrConverter, getOutputConverter } from \"./converters\";\n\nimport {\n FormatType,\n EncodingType,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n packedValue,\n GenericInputType,\n} from \"./custom_types\";\n\nexport const TWO_PWR_32 = 4294967296;\n\n/* Constant used in SHA-2 families */\nexport const K_sha2 = [\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2,\n];\n\n/* Constant used in SHA-2 families */\nexport const H_trunc = [0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4];\n\n/* Constant used in SHA-2 families */\nexport const H_full = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n\nexport const sha_variant_error = \"Chosen SHA variant is not supported\";\nexport const mac_rounds_error = \"Cannot set numRounds with MAC\";\n\n/**\n * Concatenates 2 packed arrays. Clobbers array `a`.\n *\n * @param a First array to concatenate.\n * @param b Second array to concatenate.\n * @returns The concatentation of `a` + `b`.\n */\nexport function packedLEConcat(a: packedValue, b: packedValue): packedValue {\n let i, arrOffset;\n const aByteLen = a[\"binLen\"] >>> 3,\n bByteLen = b[\"binLen\"] >>> 3,\n leftShiftAmount = aByteLen << 3,\n rightShiftAmount = (4 - aByteLen) << 3;\n\n /* If a only contains \"full\" integers, we can just use concat which is so much easier */\n if (aByteLen % 4 !== 0) {\n for (i = 0; i < bByteLen; i += 4) {\n arrOffset = (aByteLen + i) >>> 2;\n /* Left shift chops off bits over 32-bits */\n a[\"value\"][arrOffset] |= b[\"value\"][i >>> 2] << leftShiftAmount;\n a[\"value\"].push(0);\n a[\"value\"][arrOffset + 1] |= b[\"value\"][i >>> 2] >>> rightShiftAmount;\n }\n\n /* Since an unconditional push was performed above, we may have pushed an extra value if it could have been\n encoded without it. Check if popping an int off (reducing total length by 4 bytes) is still bigger than the\n needed size. */\n if ((a[\"value\"].length << 2) - 4 >= bByteLen + aByteLen) {\n a[\"value\"].pop();\n }\n\n return { value: a[\"value\"], binLen: a[\"binLen\"] + b[\"binLen\"] };\n } else {\n return { value: a[\"value\"].concat(b[\"value\"]), binLen: a[\"binLen\"] + b[\"binLen\"] };\n }\n}\n\n/**\n * Validate hash list containing output formatting options, ensuring presence of every option or adding the default\n * value.\n *\n * @param options Hashmap of output formatting options from user.\n * @returns Validated hashmap containing output formatting options.\n */\nexport function getOutputOpts(options?: {\n outputUpper?: boolean;\n b64Pad?: string;\n shakeLen?: number;\n outputLen?: number;\n}): { outputUpper: boolean; b64Pad: string; outputLen: number } {\n const retVal = { outputUpper: false, b64Pad: \"=\", outputLen: -1 },\n outputOptions: { outputUpper?: boolean; b64Pad?: string; shakeLen?: number; outputLen?: number } = options || {},\n lenErrstr = \"Output length must be a multiple of 8\";\n\n retVal[\"outputUpper\"] = outputOptions[\"outputUpper\"] || false;\n\n if (outputOptions[\"b64Pad\"]) {\n retVal[\"b64Pad\"] = outputOptions[\"b64Pad\"];\n }\n\n if (outputOptions[\"outputLen\"]) {\n if (outputOptions[\"outputLen\"] % 8 !== 0) {\n throw new Error(lenErrstr);\n }\n retVal[\"outputLen\"] = outputOptions[\"outputLen\"];\n } else if (outputOptions[\"shakeLen\"]) {\n if (outputOptions[\"shakeLen\"] % 8 !== 0) {\n throw new Error(lenErrstr);\n }\n retVal[\"outputLen\"] = outputOptions[\"shakeLen\"];\n }\n\n if (\"boolean\" !== typeof retVal[\"outputUpper\"]) {\n throw new Error(\"Invalid outputUpper formatting option\");\n }\n\n if (\"string\" !== typeof retVal[\"b64Pad\"]) {\n throw new Error(\"Invalid b64Pad formatting option\");\n }\n\n return retVal;\n}\n\n/**\n * Parses an external constructor object and returns a packed number, if possible.\n *\n * @param key The human-friendly key name to prefix any errors with\n * @param value The input value object to parse\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param fallback Fallback value if `value` is undefined. If not present and `value` is undefined, an Error is thrown\n */\nexport function parseInputOption(\n key: string,\n value: GenericInputType | undefined,\n bigEndianMod: -1 | 1,\n fallback?: packedValue\n): packedValue {\n const errStr = key + \" must include a value and format\";\n if (!value) {\n if (!fallback) {\n throw new Error(errStr);\n }\n return fallback;\n }\n\n if (typeof value[\"value\"] === \"undefined\" || !value[\"format\"]) {\n throw new Error(errStr);\n }\n\n return getStrConverter(\n value[\"format\"],\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore - the value of encoding gets value checked by getStrConverter\n value[\"encoding\"] || \"UTF8\",\n bigEndianMod\n )(value[\"value\"]);\n}\n\nexport abstract class jsSHABase {\n /**\n * @param variant The desired SHA variant.\n * @param inputFormat The input format to be used in future `update` calls.\n * @param options Hashmap of extra input options.\n */\n /* Needed inputs */\n protected readonly shaVariant: VariantT;\n protected readonly inputFormat: FormatType;\n protected readonly utfType: EncodingType;\n protected readonly numRounds: number;\n\n /* State */\n protected abstract intermediateState: StateT;\n protected keyWithIPad: number[];\n protected keyWithOPad: number[];\n protected remainder: number[];\n protected remainderLen: number;\n protected updateCalled: boolean;\n protected processedLen: number;\n protected macKeySet: boolean;\n\n /* Variant specifics */\n protected abstract readonly variantBlockSize: number;\n protected abstract readonly bigEndianMod: -1 | 1;\n protected abstract readonly outputBinLen: number;\n protected abstract readonly isVariableLen: boolean;\n protected abstract readonly HMACSupported: boolean;\n\n /* Functions */\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n protected abstract readonly converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n protected abstract readonly roundFunc: (block: number[], H: StateT) => StateT;\n protected abstract readonly finalizeFunc: (\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: StateT,\n outputLen: number\n ) => number[];\n protected abstract readonly stateCloneFunc: (state: StateT) => StateT;\n protected abstract readonly newStateFunc: (variant: VariantT) => StateT;\n protected abstract readonly getMAC: ((options: { outputLen: number }) => number[]) | null;\n\n protected constructor(variant: VariantT, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n protected constructor(variant: VariantT, inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected constructor(variant: any, inputFormat: any, options?: any) {\n const inputOptions = options || {};\n this.inputFormat = inputFormat;\n\n this.utfType = inputOptions[\"encoding\"] || \"UTF8\";\n this.numRounds = inputOptions[\"numRounds\"] || 1;\n\n /* eslint-disable-next-line @typescript-eslint/ban-ts-ignore */\n // @ts-ignore - The spec actually says ToString is called on the first parseInt argument so it's OK to use it here\n // to check if an arugment is an integer. This cheat would break if it's used to get the value of the argument.\n if (isNaN(this.numRounds) || this.numRounds !== parseInt(this.numRounds, 10) || 1 > this.numRounds) {\n throw new Error(\"numRounds must a integer >= 1\");\n }\n\n this.shaVariant = variant;\n this.remainder = [];\n this.remainderLen = 0;\n this.updateCalled = false;\n this.processedLen = 0;\n this.macKeySet = false;\n this.keyWithIPad = [];\n this.keyWithOPad = [];\n }\n\n /**\n * Hashes as many blocks as possible. Stores the rest for either a future update or getHash call.\n *\n * @param srcString The input to be hashed.\n */\n update(srcString: string | ArrayBuffer | Uint8Array): void {\n let i,\n updateProcessedLen = 0;\n const variantBlockIntInc = this.variantBlockSize >>> 5,\n convertRet = this.converterFunc(srcString, this.remainder, this.remainderLen),\n chunkBinLen = convertRet[\"binLen\"],\n chunk = convertRet[\"value\"],\n chunkIntLen = chunkBinLen >>> 5;\n\n for (i = 0; i < chunkIntLen; i += variantBlockIntInc) {\n if (updateProcessedLen + this.variantBlockSize <= chunkBinLen) {\n this.intermediateState = this.roundFunc(chunk.slice(i, i + variantBlockIntInc), this.intermediateState);\n updateProcessedLen += this.variantBlockSize;\n }\n }\n this.processedLen += updateProcessedLen;\n this.remainder = chunk.slice(updateProcessedLen >>> 5);\n this.remainderLen = chunkBinLen % this.variantBlockSize;\n this.updateCalled = true;\n }\n\n /**\n * Returns the desired SHA hash of the input fed in via `update` calls.\n *\n * @param format The desired output formatting\n * @param options Hashmap of output formatting options. `outputLen` must be specified for variable length hashes.\n * `outputLen` replaces the now deprecated `shakeLen` key.\n * @returns The hash in the format specified.\n */\n getHash(format: \"HEX\", options?: { outputUpper?: boolean; outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"B64\", options?: { b64Pad?: string; outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"BYTES\", options?: { outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"UINT8ARRAY\", options?: { outputLen?: number; shakeLen?: number }): Uint8Array;\n getHash(format: \"ARRAYBUFFER\", options?: { outputLen?: number; shakeLen?: number }): ArrayBuffer;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getHash(format: any, options?: any): any {\n let i,\n finalizedState,\n outputBinLen = this.outputBinLen;\n\n const outputOptions = getOutputOpts(options);\n\n if (this.isVariableLen) {\n if (outputOptions[\"outputLen\"] === -1) {\n throw new Error(\"Output length must be specified in options\");\n }\n outputBinLen = outputOptions[\"outputLen\"];\n }\n\n const formatFunc = getOutputConverter(format, outputBinLen, this.bigEndianMod, outputOptions);\n if (this.macKeySet && this.getMAC) {\n return formatFunc(this.getMAC(outputOptions));\n }\n\n finalizedState = this.finalizeFunc(\n this.remainder.slice(),\n this.remainderLen,\n this.processedLen,\n this.stateCloneFunc(this.intermediateState),\n outputBinLen\n );\n for (i = 1; i < this.numRounds; i += 1) {\n /* Need to mask out bits that should be zero due to output not being a multiple of 32 */\n if (this.isVariableLen && outputBinLen % 32 !== 0) {\n finalizedState[finalizedState.length - 1] &= 0x00ffffff >>> (24 - (outputBinLen % 32));\n }\n finalizedState = this.finalizeFunc(\n finalizedState,\n outputBinLen,\n 0,\n this.newStateFunc(this.shaVariant),\n outputBinLen\n );\n }\n\n return formatFunc(finalizedState);\n }\n\n /**\n * Sets the HMAC key for an eventual `getHMAC` call. Must be called immediately after jsSHA object instantiation.\n *\n * @param key The key used to calculate the HMAC\n * @param inputFormat The format of key.\n * @param options Hashmap of extra input options.\n */\n setHMACKey(key: string, inputFormat: \"TEXT\", options?: { encoding?: EncodingType }): void;\n setHMACKey(key: string, inputFormat: \"B64\" | \"HEX\" | \"BYTES\"): void;\n setHMACKey(key: ArrayBuffer, inputFormat: \"ARRAYBUFFER\"): void;\n setHMACKey(key: Uint8Array, inputFormat: \"UINT8ARRAY\"): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setHMACKey(key: any, inputFormat: any, options?: any): void {\n if (!this.HMACSupported) {\n throw new Error(\"Variant does not support HMAC\");\n }\n\n if (this.updateCalled) {\n throw new Error(\"Cannot set MAC key after calling update\");\n }\n\n const keyOptions = options || {},\n keyConverterFunc = getStrConverter(inputFormat, keyOptions[\"encoding\"] || \"UTF8\", this.bigEndianMod);\n\n this._setHMACKey(keyConverterFunc(key));\n }\n\n /**\n * Internal function that sets the MAC key.\n *\n * @param key The packed MAC key to use\n */\n protected _setHMACKey(key: packedValue): void {\n const blockByteSize = this.variantBlockSize >>> 3,\n lastArrayIndex = blockByteSize / 4 - 1;\n let i;\n if (this.numRounds !== 1) {\n throw new Error(mac_rounds_error);\n }\n\n if (this.macKeySet) {\n throw new Error(\"MAC key already set\");\n }\n\n /* Figure out what to do with the key based on its size relative to\n * the hash's block size */\n if (blockByteSize < key[\"binLen\"] / 8) {\n key[\"value\"] = this.finalizeFunc(\n key[\"value\"],\n key[\"binLen\"],\n 0,\n this.newStateFunc(this.shaVariant),\n this.outputBinLen\n );\n }\n while (key[\"value\"].length <= lastArrayIndex) {\n key[\"value\"].push(0);\n }\n /* Create ipad and opad */\n for (i = 0; i <= lastArrayIndex; i += 1) {\n this.keyWithIPad[i] = key[\"value\"][i] ^ 0x36363636;\n this.keyWithOPad[i] = key[\"value\"][i] ^ 0x5c5c5c5c;\n }\n\n this.intermediateState = this.roundFunc(this.keyWithIPad, this.intermediateState);\n this.processedLen = this.variantBlockSize;\n\n this.macKeySet = true;\n }\n\n /**\n * Returns the the HMAC in the specified format using the key given by a previous `setHMACKey` call.\n *\n * @param format The desired output formatting.\n * @param options Hashmap of extra outputs options.\n * @returns The HMAC in the format specified.\n */\n getHMAC(format: \"HEX\", options?: { outputUpper?: boolean }): string;\n getHMAC(format: \"B64\", options?: { b64Pad?: string }): string;\n getHMAC(format: \"BYTES\"): string;\n getHMAC(format: \"UINT8ARRAY\"): Uint8Array;\n getHMAC(format: \"ARRAYBUFFER\"): ArrayBuffer;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getHMAC(format: any, options?: any): any {\n const outputOptions = getOutputOpts(options),\n formatFunc = getOutputConverter(format, this.outputBinLen, this.bigEndianMod, outputOptions);\n\n return formatFunc(this._getHMAC());\n }\n\n /**\n * Internal function that returns the \"raw\" HMAC\n */\n protected _getHMAC(): number[] {\n let finalizedState;\n\n if (!this.macKeySet) {\n throw new Error(\"Cannot call getHMAC without first setting MAC key\");\n }\n\n const firstHash = this.finalizeFunc(\n this.remainder.slice(),\n this.remainderLen,\n this.processedLen,\n this.stateCloneFunc(this.intermediateState),\n this.outputBinLen\n );\n finalizedState = this.roundFunc(this.keyWithOPad, this.newStateFunc(this.shaVariant));\n finalizedState = this.finalizeFunc(\n firstHash,\n this.outputBinLen,\n this.variantBlockSize,\n finalizedState,\n this.outputBinLen\n );\n\n return finalizedState;\n }\n}\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n", "/*\n * Note 1: All the functions in this file guarantee only that the bottom 32-bits of the return value are correct.\n * JavaScript is flakey when it comes to bit operations and a '1' in the highest order bit of a 32-bit number causes\n * it to be interpreted as a negative number per two's complement.\n *\n * Note 2: Per the ECMAScript spec, all JavaScript operations mask the shift amount by 0x1F. This results in weird\n * cases like 1 << 32 == 1 and 1 << 33 === 1 << 1 === 2\n */\n\n/**\n * The 32-bit implementation of circular rotate left.\n *\n * @param x The 32-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted left circularly by `n` bits\n */\nexport function rotl_32(x: number, n: number): number {\n return (x << n) | (x >>> (32 - n));\n}\n\n/**\n * The 32-bit implementation of circular rotate right.\n *\n * @param x The 32-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted right circularly by `n` bits\n */\nfunction rotr_32(x: number, n: number): number {\n return (x >>> n) | (x << (32 - n));\n}\n\n/**\n * The 32-bit implementation of shift right.\n *\n * @param x The 32-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted by `n` bits.\n */\nfunction shr_32(x: number, n: number): number {\n return x >>> n;\n}\n\n/**\n * The 32-bit implementation of the NIST specified Parity function.\n *\n * @param x The first 32-bit integer argument.\n * @param y The second 32-bit integer argument.\n * @param z The third 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function parity_32(x: number, y: number, z: number): number {\n return x ^ y ^ z;\n}\n\n/**\n * The 32-bit implementation of the NIST specified Ch function.\n *\n * @param x The first 32-bit integer argument.\n * @param y The second 32-bit integer argument.\n * @param z The third 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function ch_32(x: number, y: number, z: number): number {\n return (x & y) ^ (~x & z);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Maj function.\n *\n * @param x The first 32-bit integer argument.\n * @param y The second 32-bit integer argument.\n * @param z The third 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function maj_32(x: number, y: number, z: number): number {\n return (x & y) ^ (x & z) ^ (y & z);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Sigma0 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma0_32(x: number): number {\n return rotr_32(x, 2) ^ rotr_32(x, 13) ^ rotr_32(x, 22);\n}\n\n/**\n * Add two 32-bit integers.\n *\n * This uses 16-bit operations internally to work around sign problems due to JavaScript's lack of uint32 support.\n *\n * @param a The first 32-bit integer argument to be added.\n * @param b The second 32-bit integer argument to be added.\n * @returns The sum of `a` + `b`.\n */\nexport function safeAdd_32_2(a: number, b: number): number {\n const lsw = (a & 0xffff) + (b & 0xffff),\n msw = (a >>> 16) + (b >>> 16) + (lsw >>> 16);\n\n return ((msw & 0xffff) << 16) | (lsw & 0xffff);\n}\n\n/**\n * Add four 32-bit integers.\n *\n * This uses 16-bit operations internally to work around sign problems due to JavaScript's lack of uint32 support.\n *\n * @param a The first 32-bit integer argument to be added.\n * @param b The second 32-bit integer argument to be added.\n * @param c The third 32-bit integer argument to be added.\n * @param d The fourth 32-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d`.\n */\nexport function safeAdd_32_4(a: number, b: number, c: number, d: number): number {\n const lsw = (a & 0xffff) + (b & 0xffff) + (c & 0xffff) + (d & 0xffff),\n msw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) + (lsw >>> 16);\n\n return ((msw & 0xffff) << 16) | (lsw & 0xffff);\n}\n\n/**\n * Add five 32-bit integers.\n *\n * This uses 16-bit operations internally to work around sign problems due to JavaScript's lack of uint32 support.\n *\n * @param a The first 32-bit integer argument to be added.\n * @param b The second 32-bit integer argument to be added.\n * @param c The third 32-bit integer argument to be added.\n * @param d The fourth 32-bit integer argument to be added.\n * @param e The fifth 32-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d` + `e`.\n */\nexport function safeAdd_32_5(a: number, b: number, c: number, d: number, e: number): number {\n const lsw = (a & 0xffff) + (b & 0xffff) + (c & 0xffff) + (d & 0xffff) + (e & 0xffff),\n msw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) + (e >>> 16) + (lsw >>> 16);\n\n return ((msw & 0xffff) << 16) | (lsw & 0xffff);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Gamma1 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma1_32(x: number): number {\n return rotr_32(x, 17) ^ rotr_32(x, 19) ^ shr_32(x, 10);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Gamma0 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma0_32(x: number): number {\n return rotr_32(x, 7) ^ rotr_32(x, 18) ^ shr_32(x, 3);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Sigma1 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma1_32(x: number): number {\n return rotr_32(x, 6) ^ rotr_32(x, 11) ^ rotr_32(x, 25);\n}\n", "import { jsSHABase, TWO_PWR_32, sha_variant_error, parseInputOption } from \"./common\";\nimport {\n packedValue,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport { ch_32, parity_32, maj_32, rotl_32, safeAdd_32_2, safeAdd_32_5 } from \"./primitives_32\";\n\n/**\n * Gets the state values for the specified SHA variant.\n *\n * @param _variant: Unused\n * @returns The initial state values.\n */\nfunction getNewState(_variant: \"SHA-1\"): number[] {\n return [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n}\n\n/**\n * Performs a round of SHA-1 hashing over a 512-byte block. This clobbers `H`.\n *\n * @param block The binary array representation of the block to hash.\n * @param H The intermediate H values from a previous round.\n * @returns The resulting H values.\n */\nfunction roundSHA1(block: number[], H: number[]): number[] {\n let a, b, c, d, e, T, t;\n const W: number[] = [];\n\n a = H[0];\n b = H[1];\n c = H[2];\n d = H[3];\n e = H[4];\n\n for (t = 0; t < 80; t += 1) {\n if (t < 16) {\n W[t] = block[t];\n } else {\n W[t] = rotl_32(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n if (t < 20) {\n T = safeAdd_32_5(rotl_32(a, 5), ch_32(b, c, d), e, 0x5a827999, W[t]);\n } else if (t < 40) {\n T = safeAdd_32_5(rotl_32(a, 5), parity_32(b, c, d), e, 0x6ed9eba1, W[t]);\n } else if (t < 60) {\n T = safeAdd_32_5(rotl_32(a, 5), maj_32(b, c, d), e, 0x8f1bbcdc, W[t]);\n } else {\n T = safeAdd_32_5(rotl_32(a, 5), parity_32(b, c, d), e, 0xca62c1d6, W[t]);\n }\n\n e = d;\n d = c;\n c = rotl_32(b, 30);\n b = a;\n a = T;\n }\n\n H[0] = safeAdd_32_2(a, H[0]);\n H[1] = safeAdd_32_2(b, H[1]);\n H[2] = safeAdd_32_2(c, H[2]);\n H[3] = safeAdd_32_2(d, H[3]);\n H[4] = safeAdd_32_2(e, H[4]);\n\n return H;\n}\n\n/**\n * Finalizes the SHA-1 hash. This clobbers `remainder` and `H`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param processedBinLen The number of bits already processed.\n * @param H The intermediate H values from a previous round.\n * @returns The array of integers representing the SHA-1 hash of message.\n */\nfunction finalizeSHA1(remainder: number[], remainderBinLen: number, processedBinLen: number, H: number[]): number[] {\n let i;\n\n /* The 65 addition is a hack but it works. The correct number is\n\t\tactually 72 (64 + 8) but the below math fails if\n\t\tremainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n\t\t\"shorting\" the addition is OK. */\n const offset = (((remainderBinLen + 65) >>> 9) << 4) + 15,\n totalLen = remainderBinLen + processedBinLen;\n while (remainder.length <= offset) {\n remainder.push(0);\n }\n /* Append '1' at the end of the binary string */\n remainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n\n /* Append length of binary string in the position such that the new\n * length is a multiple of 512. Logic does not work for even multiples\n * of 512 but there can never be even multiples of 512. JavaScript\n * numbers are limited to 2^53 so it's \"safe\" to treat the totalLen as\n * a 64-bit integer. */\n remainder[offset] = totalLen & 0xffffffff;\n\n /* Bitwise operators treat the operand as a 32-bit number so need to\n * use hacky division and round to get access to upper 32-ish bits */\n remainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n /* This will always be at least 1 full chunk */\n for (i = 0; i < remainder.length; i += 16) {\n H = roundSHA1(remainder.slice(i, i + 16), H);\n }\n\n return H;\n}\n\nexport default class jsSHA extends jsSHABase {\n intermediateState: number[];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: number[]) => number[];\n finalizeFunc: (remainder: number[], remainderBinLen: number, processedBinLen: number, H: number[]) => number[];\n stateCloneFunc: (state: number[]) => number[];\n newStateFunc: (variant: \"SHA-1\") => number[];\n getMAC: () => number[];\n\n constructor(variant: \"SHA-1\", inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(variant: \"SHA-1\", inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (\"SHA-1\" !== variant) {\n throw new Error(sha_variant_error);\n }\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n this.bigEndianMod = -1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA1;\n this.stateCloneFunc = function (state: number[]): number[] {\n return state.slice();\n };\n this.newStateFunc = getNewState;\n this.finalizeFunc = finalizeSHA1;\n\n this.intermediateState = getNewState(variant);\n this.variantBlockSize = 512;\n this.outputBinLen = 160;\n this.isVariableLen = false;\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n}\n", "import { jsSHABase, TWO_PWR_32, H_full, H_trunc, K_sha2, sha_variant_error, parseInputOption } from \"./common\";\nimport {\n packedValue,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport {\n ch_32,\n gamma0_32,\n gamma1_32,\n maj_32,\n safeAdd_32_2,\n safeAdd_32_4,\n safeAdd_32_5,\n sigma0_32,\n sigma1_32,\n} from \"./primitives_32\";\n\ntype VariantType = \"SHA-224\" | \"SHA-256\";\n\n/**\n * Gets the state values for the specified SHA variant.\n *\n * @param variant: The SHA-256 family variant.\n * @returns The initial state values.\n */\nfunction getNewState256(variant: VariantType): number[] {\n let retVal;\n\n if (\"SHA-224\" == variant) {\n retVal = H_trunc.slice();\n } else {\n /* \"SHA-256\" */\n retVal = H_full.slice();\n }\n return retVal;\n}\n\n/**\n * Performs a round of SHA-256 hashing over a block. This clobbers `H`.\n *\n * @param block The binary array representation of the block to hash.\n * @param H The intermediate H values from a previous round.\n * @returns The resulting H values.\n */\nfunction roundSHA256(block: number[], H: number[]): number[] {\n let a, b, c, d, e, f, g, h, T1, T2, t;\n\n const W: number[] = [];\n\n a = H[0];\n b = H[1];\n c = H[2];\n d = H[3];\n e = H[4];\n f = H[5];\n g = H[6];\n h = H[7];\n\n for (t = 0; t < 64; t += 1) {\n if (t < 16) {\n W[t] = block[t];\n } else {\n W[t] = safeAdd_32_4(gamma1_32(W[t - 2]), W[t - 7], gamma0_32(W[t - 15]), W[t - 16]);\n }\n T1 = safeAdd_32_5(h, sigma1_32(e), ch_32(e, f, g), K_sha2[t], W[t]);\n T2 = safeAdd_32_2(sigma0_32(a), maj_32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safeAdd_32_2(d, T1);\n d = c;\n c = b;\n b = a;\n a = safeAdd_32_2(T1, T2);\n }\n\n H[0] = safeAdd_32_2(a, H[0]);\n H[1] = safeAdd_32_2(b, H[1]);\n H[2] = safeAdd_32_2(c, H[2]);\n H[3] = safeAdd_32_2(d, H[3]);\n H[4] = safeAdd_32_2(e, H[4]);\n H[5] = safeAdd_32_2(f, H[5]);\n H[6] = safeAdd_32_2(g, H[6]);\n H[7] = safeAdd_32_2(h, H[7]);\n\n return H;\n}\n\n/**\n * Finalizes the SHA-256 hash. This clobbers `remainder` and `H`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param processedBinLen The number of bits already processed.\n * @param H The intermediate H values from a previous round.\n * @param variant The desired SHA-256 variant.\n * @returns The array of integers representing the SHA-2 hash of message.\n */\nfunction finalizeSHA256(\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: number[],\n variant: VariantType\n): number[] {\n let i, retVal;\n\n /* The 65 addition is a hack but it works. The correct number is\n actually 72 (64 + 8) but the below math fails if\n remainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n \"shorting\" the addition is OK. */\n const offset = (((remainderBinLen + 65) >>> 9) << 4) + 15,\n binaryStringInc = 16,\n totalLen = remainderBinLen + processedBinLen;\n\n while (remainder.length <= offset) {\n remainder.push(0);\n }\n /* Append '1' at the end of the binary string */\n remainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n /* Append length of binary string in the position such that the new\n * length is correct. JavaScript numbers are limited to 2^53 so it's\n * \"safe\" to treat the totalLen as a 64-bit integer. */\n\n remainder[offset] = totalLen & 0xffffffff;\n /* Bitwise operators treat the operand as a 32-bit number so need to\n * use hacky division and round to get access to upper 32-ish bits */\n remainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n /* This will always be at least 1 full chunk */\n for (i = 0; i < remainder.length; i += binaryStringInc) {\n H = roundSHA256(remainder.slice(i, i + binaryStringInc), H);\n }\n\n if (\"SHA-224\" === variant) {\n retVal = [H[0], H[1], H[2], H[3], H[4], H[5], H[6]];\n } else {\n /* \"SHA-256 */\n retVal = H;\n }\n\n return retVal;\n}\nexport default class jsSHA extends jsSHABase {\n intermediateState: number[];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: number[]) => number[];\n finalizeFunc: (remainder: number[], remainderBinLen: number, processedBinLen: number, H: number[]) => number[];\n stateCloneFunc: (state: number[]) => number[];\n newStateFunc: (variant: VariantType) => number[];\n getMAC: () => number[];\n\n constructor(variant: VariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(variant: VariantType, inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (!(\"SHA-224\" === variant || \"SHA-256\" === variant)) {\n throw new Error(sha_variant_error);\n }\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n this.HMACSupported = true;\n this.bigEndianMod = -1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA256;\n this.stateCloneFunc = function (state): number[] {\n return state.slice();\n };\n\n this.newStateFunc = getNewState256;\n this.finalizeFunc = function (remainder, remainderBinLen, processedBinLen, H): number[] {\n return finalizeSHA256(remainder, remainderBinLen, processedBinLen, H, variant);\n };\n\n this.intermediateState = getNewState256(variant);\n this.variantBlockSize = 512;\n this.outputBinLen = \"SHA-224\" === variant ? 224 : 256;\n this.isVariableLen = false;\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n}\n", "/*\n * Note 1: All the functions in this file guarantee only that the bottom 32-bits of the returned Int_64 are correct.\n * JavaScript is flakey when it comes to bit operations and a '1' in the highest order bit of a 32-bit number causes\n * it to be interpreted as a negative number per two's complement.\n *\n * Note 2: Per the ECMAScript spec, all JavaScript operations mask the shift amount by 0x1F. This results in weird\n * cases like 1 << 32 == 1 and 1 << 33 === 1 << 1 === 2\n */\n\n/**\n * Int_64 is a object for 2 32-bit numbers emulating a 64-bit number.\n */\nexport class Int_64 {\n /**\n * @param msint_32 The most significant 32-bits of a 64-bit number.\n * @param lsint_32 The least significant 32-bits of a 64-bit number.\n */\n readonly highOrder: number;\n readonly lowOrder: number;\n constructor(msint_32: number, lsint_32: number) {\n this.highOrder = msint_32;\n this.lowOrder = lsint_32;\n }\n}\n\n/**\n * The 64-bit implementation of circular rotate left.\n *\n * This does not work for n >= 64 or n == 32 but those are never done.\n *\n * @param x The 64-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted left circularly by `n` bits.\n */\nexport function rotl_64(x: Int_64, n: number): Int_64 {\n let tmp;\n if (n > 32) {\n tmp = 64 - n;\n return new Int_64((x.lowOrder << n) | (x.highOrder >>> tmp), (x.highOrder << n) | (x.lowOrder >>> tmp));\n } else if (0 !== n) {\n tmp = 32 - n;\n return new Int_64((x.highOrder << n) | (x.lowOrder >>> tmp), (x.lowOrder << n) | (x.highOrder >>> tmp));\n } else {\n return x;\n }\n}\n\n/**\n * The 64-bit implementation of circular rotate right.\n *\n * This does not work for n >= 64, n == 32, or n == 0 but those are never done.\n *\n * @param x The 64-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted right circularly by `n` bits.\n */\nfunction rotr_64(x: Int_64, n: number): Int_64 {\n let tmp;\n if (n < 32) {\n tmp = 32 - n;\n return new Int_64((x.highOrder >>> n) | (x.lowOrder << tmp), (x.lowOrder >>> n) | (x.highOrder << tmp));\n } else {\n tmp = 64 - n;\n return new Int_64((x.lowOrder >>> n) | (x.highOrder << tmp), (x.highOrder >>> n) | (x.lowOrder << tmp));\n }\n}\n\n/**\n * The 64-bit implementation of shift right.\n *\n * This does not work for n >= 32 but is only called for n < 32.\n *\n * @param x The 64-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted right by `n` bits\n */\nfunction shr_64(x: Int_64, n: number): Int_64 {\n return new Int_64(x.highOrder >>> n, (x.lowOrder >>> n) | (x.highOrder << (32 - n)));\n}\n\n/**\n * The 64-bit implementation of the NIST specified Ch function.\n *\n * @param x The first 64-bit integer argument.\n * @param y The second 64-bit integer argument.\n * @param z The third 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function ch_64(x: Int_64, y: Int_64, z: Int_64): Int_64 {\n return new Int_64(\n (x.highOrder & y.highOrder) ^ (~x.highOrder & z.highOrder),\n (x.lowOrder & y.lowOrder) ^ (~x.lowOrder & z.lowOrder)\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Maj function.\n *\n * @param x The first 64-bit integer argument.\n * @param y The second 64-bit integer argument.\n * @param z The third 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function maj_64(x: Int_64, y: Int_64, z: Int_64): Int_64 {\n return new Int_64(\n (x.highOrder & y.highOrder) ^ (x.highOrder & z.highOrder) ^ (y.highOrder & z.highOrder),\n (x.lowOrder & y.lowOrder) ^ (x.lowOrder & z.lowOrder) ^ (y.lowOrder & z.lowOrder)\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Sigma0 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma0_64(x: Int_64): Int_64 {\n const rotr28 = rotr_64(x, 28),\n rotr34 = rotr_64(x, 34),\n rotr39 = rotr_64(x, 39);\n\n return new Int_64(\n rotr28.highOrder ^ rotr34.highOrder ^ rotr39.highOrder,\n rotr28.lowOrder ^ rotr34.lowOrder ^ rotr39.lowOrder\n );\n}\n\n/**\n * Add two 64-bit integers.\n *\n * @param x The first 64-bit integer argument to be added.\n * @param y The second 64-bit integer argument to be added.\n * @returns The sum of `x` + `y`.\n */\nexport function safeAdd_64_2(x: Int_64, y: Int_64): Int_64 {\n let lsw, msw;\n\n lsw = (x.lowOrder & 0xffff) + (y.lowOrder & 0xffff);\n msw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);\n const lowOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n lsw = (x.highOrder & 0xffff) + (y.highOrder & 0xffff) + (msw >>> 16);\n msw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);\n const highOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n return new Int_64(highOrder, lowOrder);\n}\n\n/**\n * Add four 64-bit integers.\n *\n * @param a The first 64-bit integer argument to be added.\n * @param b The second 64-bit integer argument to be added.\n * @param c The third 64-bit integer argument to be added.\n * @param d The fouth 64-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d`.\n */\nexport function safeAdd_64_4(a: Int_64, b: Int_64, c: Int_64, d: Int_64): Int_64 {\n let lsw, msw;\n\n lsw = (a.lowOrder & 0xffff) + (b.lowOrder & 0xffff) + (c.lowOrder & 0xffff) + (d.lowOrder & 0xffff);\n msw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) + (c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (lsw >>> 16);\n const lowOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n lsw =\n (a.highOrder & 0xffff) + (b.highOrder & 0xffff) + (c.highOrder & 0xffff) + (d.highOrder & 0xffff) + (msw >>> 16);\n msw = (a.highOrder >>> 16) + (b.highOrder >>> 16) + (c.highOrder >>> 16) + (d.highOrder >>> 16) + (lsw >>> 16);\n const highOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n return new Int_64(highOrder, lowOrder);\n}\n\n/**\n * Add five 64-bit integers.\n *\n * @param a The first 64-bit integer argument to be added.\n * @param b The second 64-bit integer argument to be added.\n * @param c The third 64-bit integer argument to be added.\n * @param d The fouth 64-bit integer argument to be added.\n * @param e The fifth 64-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d` + `e`.\n */\nexport function safeAdd_64_5(a: Int_64, b: Int_64, c: Int_64, d: Int_64, e: Int_64): Int_64 {\n let lsw, msw;\n\n lsw =\n (a.lowOrder & 0xffff) +\n (b.lowOrder & 0xffff) +\n (c.lowOrder & 0xffff) +\n (d.lowOrder & 0xffff) +\n (e.lowOrder & 0xffff);\n msw =\n (a.lowOrder >>> 16) +\n (b.lowOrder >>> 16) +\n (c.lowOrder >>> 16) +\n (d.lowOrder >>> 16) +\n (e.lowOrder >>> 16) +\n (lsw >>> 16);\n const lowOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n lsw =\n (a.highOrder & 0xffff) +\n (b.highOrder & 0xffff) +\n (c.highOrder & 0xffff) +\n (d.highOrder & 0xffff) +\n (e.highOrder & 0xffff) +\n (msw >>> 16);\n msw =\n (a.highOrder >>> 16) +\n (b.highOrder >>> 16) +\n (c.highOrder >>> 16) +\n (d.highOrder >>> 16) +\n (e.highOrder >>> 16) +\n (lsw >>> 16);\n const highOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n return new Int_64(highOrder, lowOrder);\n}\n\n/**\n * XORs two given arguments.\n *\n * @param a The first argument to be XORed.\n * @param b The second argument to be XORed.\n * @returns The The XOR `a` and `b`\n */\nexport function xor_64_2(a: Int_64, b: Int_64): Int_64 {\n return new Int_64(a.highOrder ^ b.highOrder, a.lowOrder ^ b.lowOrder);\n}\n\n/**\n * XORs five given arguments.\n *\n * @param a The first argument to be XORed.\n * @param b The second argument to be XORed.\n * @param c The third argument to be XORed.\n * @param d The fourth argument to be XORed.\n * @param e The fifth argument to be XORed.\n * @returns The XOR of `a`, `b`, `c`, `d`, and `e`.\n */\nexport function xor_64_5(a: Int_64, b: Int_64, c: Int_64, d: Int_64, e: Int_64): Int_64 {\n return new Int_64(\n a.highOrder ^ b.highOrder ^ c.highOrder ^ d.highOrder ^ e.highOrder,\n a.lowOrder ^ b.lowOrder ^ c.lowOrder ^ d.lowOrder ^ e.lowOrder\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Gamma1 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma1_64(x: Int_64): Int_64 {\n const rotr19 = rotr_64(x, 19),\n rotr61 = rotr_64(x, 61),\n shr6 = shr_64(x, 6);\n\n return new Int_64(\n rotr19.highOrder ^ rotr61.highOrder ^ shr6.highOrder,\n rotr19.lowOrder ^ rotr61.lowOrder ^ shr6.lowOrder\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Gamma0 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma0_64(x: Int_64): Int_64 {\n const rotr1 = rotr_64(x, 1),\n rotr8 = rotr_64(x, 8),\n shr7 = shr_64(x, 7);\n\n return new Int_64(\n rotr1.highOrder ^ rotr8.highOrder ^ shr7.highOrder,\n rotr1.lowOrder ^ rotr8.lowOrder ^ shr7.lowOrder\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Sigma1 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma1_64(x: Int_64): Int_64 {\n const rotr14 = rotr_64(x, 14),\n rotr18 = rotr_64(x, 18),\n rotr41 = rotr_64(x, 41);\n\n return new Int_64(\n rotr14.highOrder ^ rotr18.highOrder ^ rotr41.highOrder,\n rotr14.lowOrder ^ rotr18.lowOrder ^ rotr41.lowOrder\n );\n}\n", "import { jsSHABase, TWO_PWR_32, H_trunc, H_full, K_sha2, sha_variant_error, parseInputOption } from \"./common\";\nimport {\n packedValue,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport {\n ch_64,\n gamma0_64,\n gamma1_64,\n Int_64,\n maj_64,\n safeAdd_64_2,\n safeAdd_64_4,\n safeAdd_64_5,\n sigma0_64,\n sigma1_64,\n} from \"./primitives_64\";\n\ntype VariantType = \"SHA-384\" | \"SHA-512\";\n\nconst K_sha512 = [\n new Int_64(K_sha2[0], 0xd728ae22),\n new Int_64(K_sha2[1], 0x23ef65cd),\n new Int_64(K_sha2[2], 0xec4d3b2f),\n new Int_64(K_sha2[3], 0x8189dbbc),\n new Int_64(K_sha2[4], 0xf348b538),\n new Int_64(K_sha2[5], 0xb605d019),\n new Int_64(K_sha2[6], 0xaf194f9b),\n new Int_64(K_sha2[7], 0xda6d8118),\n new Int_64(K_sha2[8], 0xa3030242),\n new Int_64(K_sha2[9], 0x45706fbe),\n new Int_64(K_sha2[10], 0x4ee4b28c),\n new Int_64(K_sha2[11], 0xd5ffb4e2),\n new Int_64(K_sha2[12], 0xf27b896f),\n new Int_64(K_sha2[13], 0x3b1696b1),\n new Int_64(K_sha2[14], 0x25c71235),\n new Int_64(K_sha2[15], 0xcf692694),\n new Int_64(K_sha2[16], 0x9ef14ad2),\n new Int_64(K_sha2[17], 0x384f25e3),\n new Int_64(K_sha2[18], 0x8b8cd5b5),\n new Int_64(K_sha2[19], 0x77ac9c65),\n new Int_64(K_sha2[20], 0x592b0275),\n new Int_64(K_sha2[21], 0x6ea6e483),\n new Int_64(K_sha2[22], 0xbd41fbd4),\n new Int_64(K_sha2[23], 0x831153b5),\n new Int_64(K_sha2[24], 0xee66dfab),\n new Int_64(K_sha2[25], 0x2db43210),\n new Int_64(K_sha2[26], 0x98fb213f),\n new Int_64(K_sha2[27], 0xbeef0ee4),\n new Int_64(K_sha2[28], 0x3da88fc2),\n new Int_64(K_sha2[29], 0x930aa725),\n new Int_64(K_sha2[30], 0xe003826f),\n new Int_64(K_sha2[31], 0x0a0e6e70),\n new Int_64(K_sha2[32], 0x46d22ffc),\n new Int_64(K_sha2[33], 0x5c26c926),\n new Int_64(K_sha2[34], 0x5ac42aed),\n new Int_64(K_sha2[35], 0x9d95b3df),\n new Int_64(K_sha2[36], 0x8baf63de),\n new Int_64(K_sha2[37], 0x3c77b2a8),\n new Int_64(K_sha2[38], 0x47edaee6),\n new Int_64(K_sha2[39], 0x1482353b),\n new Int_64(K_sha2[40], 0x4cf10364),\n new Int_64(K_sha2[41], 0xbc423001),\n new Int_64(K_sha2[42], 0xd0f89791),\n new Int_64(K_sha2[43], 0x0654be30),\n new Int_64(K_sha2[44], 0xd6ef5218),\n new Int_64(K_sha2[45], 0x5565a910),\n new Int_64(K_sha2[46], 0x5771202a),\n new Int_64(K_sha2[47], 0x32bbd1b8),\n new Int_64(K_sha2[48], 0xb8d2d0c8),\n new Int_64(K_sha2[49], 0x5141ab53),\n new Int_64(K_sha2[50], 0xdf8eeb99),\n new Int_64(K_sha2[51], 0xe19b48a8),\n new Int_64(K_sha2[52], 0xc5c95a63),\n new Int_64(K_sha2[53], 0xe3418acb),\n new Int_64(K_sha2[54], 0x7763e373),\n new Int_64(K_sha2[55], 0xd6b2b8a3),\n new Int_64(K_sha2[56], 0x5defb2fc),\n new Int_64(K_sha2[57], 0x43172f60),\n new Int_64(K_sha2[58], 0xa1f0ab72),\n new Int_64(K_sha2[59], 0x1a6439ec),\n new Int_64(K_sha2[60], 0x23631e28),\n new Int_64(K_sha2[61], 0xde82bde9),\n new Int_64(K_sha2[62], 0xb2c67915),\n new Int_64(K_sha2[63], 0xe372532b),\n new Int_64(0xca273ece, 0xea26619c),\n new Int_64(0xd186b8c7, 0x21c0c207),\n new Int_64(0xeada7dd6, 0xcde0eb1e),\n new Int_64(0xf57d4f7f, 0xee6ed178),\n new Int_64(0x06f067aa, 0x72176fba),\n new Int_64(0x0a637dc5, 0xa2c898a6),\n new Int_64(0x113f9804, 0xbef90dae),\n new Int_64(0x1b710b35, 0x131c471b),\n new Int_64(0x28db77f5, 0x23047d84),\n new Int_64(0x32caab7b, 0x40c72493),\n new Int_64(0x3c9ebe0a, 0x15c9bebc),\n new Int_64(0x431d67c4, 0x9c100d4c),\n new Int_64(0x4cc5d4be, 0xcb3e42b6),\n new Int_64(0x597f299c, 0xfc657e2a),\n new Int_64(0x5fcb6fab, 0x3ad6faec),\n new Int_64(0x6c44198c, 0x4a475817),\n];\n\n/**\n * Gets the state values for the specified SHA variant.\n *\n * @param variant: The SHA-512 family variant.\n * @returns The initial state values.\n */\nfunction getNewState512(variant: VariantType): Int_64[] {\n if (\"SHA-384\" === variant) {\n return [\n new Int_64(0xcbbb9d5d, H_trunc[0]),\n new Int_64(0x0629a292a, H_trunc[1]),\n new Int_64(0x9159015a, H_trunc[2]),\n new Int_64(0x0152fecd8, H_trunc[3]),\n new Int_64(0x67332667, H_trunc[4]),\n new Int_64(0x98eb44a87, H_trunc[5]),\n new Int_64(0xdb0c2e0d, H_trunc[6]),\n new Int_64(0x047b5481d, H_trunc[7]),\n ];\n } else {\n /* SHA-512 */\n return [\n new Int_64(H_full[0], 0xf3bcc908),\n new Int_64(H_full[1], 0x84caa73b),\n new Int_64(H_full[2], 0xfe94f82b),\n new Int_64(H_full[3], 0x5f1d36f1),\n new Int_64(H_full[4], 0xade682d1),\n new Int_64(H_full[5], 0x2b3e6c1f),\n new Int_64(H_full[6], 0xfb41bd6b),\n new Int_64(H_full[7], 0x137e2179),\n ];\n }\n}\n\n/**\n * Performs a round of SHA-512 hashing over a block. This clobbers `H`.\n *\n * @param block The binary array representation of the block to hash.\n * @param H The intermediate H values from a previous round.\n * @returns The resulting H values.\n */\nfunction roundSHA512(block: number[], H: Int_64[]): Int_64[] {\n let a, b, c, d, e, f, g, h, T1, T2, t, offset;\n\n const W: Int_64[] = [];\n\n a = H[0];\n b = H[1];\n c = H[2];\n d = H[3];\n e = H[4];\n f = H[5];\n g = H[6];\n h = H[7];\n\n for (t = 0; t < 80; t += 1) {\n if (t < 16) {\n offset = t * 2;\n W[t] = new Int_64(block[offset], block[offset + 1]);\n } else {\n W[t] = safeAdd_64_4(gamma1_64(W[t - 2]), W[t - 7], gamma0_64(W[t - 15]), W[t - 16]);\n }\n T1 = safeAdd_64_5(h, sigma1_64(e), ch_64(e, f, g), K_sha512[t], W[t]);\n T2 = safeAdd_64_2(sigma0_64(a), maj_64(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safeAdd_64_2(d, T1);\n d = c;\n c = b;\n b = a;\n a = safeAdd_64_2(T1, T2);\n }\n\n H[0] = safeAdd_64_2(a, H[0]);\n H[1] = safeAdd_64_2(b, H[1]);\n H[2] = safeAdd_64_2(c, H[2]);\n H[3] = safeAdd_64_2(d, H[3]);\n H[4] = safeAdd_64_2(e, H[4]);\n H[5] = safeAdd_64_2(f, H[5]);\n H[6] = safeAdd_64_2(g, H[6]);\n H[7] = safeAdd_64_2(h, H[7]);\n\n return H;\n}\n\n/**\n * Finalizes the SHA-512 hash. This clobbers `remainder` and `H`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param processedBinLen The number of bits already processed.\n * @param H The intermediate H values from a previous round.\n * @param variant The desired SHA-512 variant.\n * @returns The array of integers representing the SHA-512 hash of message.\n */\nfunction finalizeSHA512(\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: Int_64[],\n variant: VariantType\n): number[] {\n let i, retVal;\n\n /* The 129 addition is a hack but it works. The correct number is\n actually 136 (128 + 8) but the below math fails if\n remainderBinLen + 136 % 1024 = 0. Since remainderBinLen % 8 = 0,\n \"shorting\" the addition is OK. */\n const offset = (((remainderBinLen + 129) >>> 10) << 5) + 31,\n binaryStringInc = 32,\n totalLen = remainderBinLen + processedBinLen;\n\n while (remainder.length <= offset) {\n remainder.push(0);\n }\n /* Append '1' at the end of the binary string */\n remainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n /* Append length of binary string in the position such that the new\n * length is correct. JavaScript numbers are limited to 2^53 so it's\n * \"safe\" to treat the totalLen as a 64-bit integer. */\n\n remainder[offset] = totalLen & 0xffffffff;\n /* Bitwise operators treat the operand as a 32-bit number so need to\n * use hacky division and round to get access to upper 32-ish bits */\n remainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n /* This will always be at least 1 full chunk */\n for (i = 0; i < remainder.length; i += binaryStringInc) {\n H = roundSHA512(remainder.slice(i, i + binaryStringInc), H);\n }\n\n if (\"SHA-384\" === variant) {\n H = (H as unknown) as Int_64[];\n retVal = [\n H[0].highOrder,\n H[0].lowOrder,\n H[1].highOrder,\n H[1].lowOrder,\n H[2].highOrder,\n H[2].lowOrder,\n H[3].highOrder,\n H[3].lowOrder,\n H[4].highOrder,\n H[4].lowOrder,\n H[5].highOrder,\n H[5].lowOrder,\n ];\n } else {\n /* SHA-512 */\n retVal = [\n H[0].highOrder,\n H[0].lowOrder,\n H[1].highOrder,\n H[1].lowOrder,\n H[2].highOrder,\n H[2].lowOrder,\n H[3].highOrder,\n H[3].lowOrder,\n H[4].highOrder,\n H[4].lowOrder,\n H[5].highOrder,\n H[5].lowOrder,\n H[6].highOrder,\n H[6].lowOrder,\n H[7].highOrder,\n H[7].lowOrder,\n ];\n }\n return retVal;\n}\n\nexport default class jsSHA extends jsSHABase {\n intermediateState: Int_64[];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: Int_64[]) => Int_64[];\n finalizeFunc: (remainder: number[], remainderBinLen: number, processedBinLen: number, H: Int_64[]) => number[];\n stateCloneFunc: (state: Int_64[]) => Int_64[];\n newStateFunc: (variant: VariantType) => Int_64[];\n getMAC: () => number[];\n\n constructor(variant: VariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(variant: VariantType, inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (!(\"SHA-384\" === variant || \"SHA-512\" === variant)) {\n throw new Error(sha_variant_error);\n }\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n this.HMACSupported = true;\n this.bigEndianMod = -1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA512;\n this.stateCloneFunc = function (state): Int_64[] {\n return state.slice();\n };\n this.newStateFunc = getNewState512;\n this.finalizeFunc = function (remainder, remainderBinLen, processedBinLen, H): number[] {\n return finalizeSHA512(remainder, remainderBinLen, processedBinLen, H, variant);\n };\n\n this.intermediateState = getNewState512(variant);\n this.variantBlockSize = 1024;\n this.outputBinLen = \"SHA-384\" === variant ? 384 : 512;\n this.isVariableLen = false;\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n}\n", "import { jsSHABase, packedLEConcat, sha_variant_error, mac_rounds_error, TWO_PWR_32, parseInputOption } from \"./common\";\nimport {\n packedValue,\n CSHAKEOptionsNoEncodingType,\n CSHAKEOptionsEncodingType,\n SHAKEOptionsNoEncodingType,\n SHAKEOptionsEncodingType,\n KMACOptionsNoEncodingType,\n KMACOptionsEncodingType,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n ResolvedCSHAKEOptionsNoEncodingType,\n ResolvedKMACOptionsNoEncodingType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport { Int_64, rotl_64, xor_64_2, xor_64_5 } from \"./primitives_64\";\n\ntype FixedLengthVariantType = \"SHA3-224\" | \"SHA3-256\" | \"SHA3-384\" | \"SHA3-512\" | \"SHAKE128\" | \"SHAKE256\";\n\ntype VariantType = FixedLengthVariantType | \"SHAKE128\" | \"SHAKE256\" | \"CSHAKE128\" | \"CSHAKE256\" | \"KMAC128\" | \"KMAC256\";\n\nconst rc_sha3 = [\n new Int_64(0x00000000, 0x00000001),\n new Int_64(0x00000000, 0x00008082),\n new Int_64(0x80000000, 0x0000808a),\n new Int_64(0x80000000, 0x80008000),\n new Int_64(0x00000000, 0x0000808b),\n new Int_64(0x00000000, 0x80000001),\n new Int_64(0x80000000, 0x80008081),\n new Int_64(0x80000000, 0x00008009),\n new Int_64(0x00000000, 0x0000008a),\n new Int_64(0x00000000, 0x00000088),\n new Int_64(0x00000000, 0x80008009),\n new Int_64(0x00000000, 0x8000000a),\n new Int_64(0x00000000, 0x8000808b),\n new Int_64(0x80000000, 0x0000008b),\n new Int_64(0x80000000, 0x00008089),\n new Int_64(0x80000000, 0x00008003),\n new Int_64(0x80000000, 0x00008002),\n new Int_64(0x80000000, 0x00000080),\n new Int_64(0x00000000, 0x0000800a),\n new Int_64(0x80000000, 0x8000000a),\n new Int_64(0x80000000, 0x80008081),\n new Int_64(0x80000000, 0x00008080),\n new Int_64(0x00000000, 0x80000001),\n new Int_64(0x80000000, 0x80008008),\n];\n\nconst r_sha3 = [\n [0, 36, 3, 41, 18],\n [1, 44, 10, 45, 2],\n [62, 6, 43, 15, 61],\n [28, 55, 25, 21, 56],\n [27, 20, 39, 8, 14],\n];\n\n/**\n * Gets the state values for the specified SHA-3 variant.\n *\n * @param _variant Unused for this family.\n * @returns The initial state values.\n */\nfunction getNewState(_variant: VariantType): Int_64[][] {\n let i;\n const retVal = [];\n\n for (i = 0; i < 5; i += 1) {\n retVal[i] = [new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0)];\n }\n\n return retVal;\n}\n\n/**\n * Returns a clone of the given SHA3 state.\n *\n * @param state The state to be cloned.\n * @returns The cloned state.\n */\nfunction cloneSHA3State(state: Int_64[][]): Int_64[][] {\n let i;\n const clone = [];\n for (i = 0; i < 5; i += 1) {\n clone[i] = state[i].slice();\n }\n\n return clone;\n}\n\n/**\n * Performs a round of SHA-3 hashing over a block. This clobbers `state`.\n *\n * @param block The binary array representation of the block to hash.\n * @param state Hash state from a previous round.\n * @returns The resulting state value.\n */\nfunction roundSHA3(block: number[] | null, state: Int_64[][]): Int_64[][] {\n let round, x, y, B;\n const C = [],\n D = [];\n\n if (null !== block) {\n for (x = 0; x < block.length; x += 2) {\n state[(x >>> 1) % 5][((x >>> 1) / 5) | 0] = xor_64_2(\n state[(x >>> 1) % 5][((x >>> 1) / 5) | 0],\n new Int_64(block[x + 1], block[x])\n );\n }\n }\n\n for (round = 0; round < 24; round += 1) {\n /* Any SHA-3 variant name will do here */\n B = getNewState(\"SHA3-384\");\n\n /* Perform theta step */\n for (x = 0; x < 5; x += 1) {\n C[x] = xor_64_5(state[x][0], state[x][1], state[x][2], state[x][3], state[x][4]);\n }\n for (x = 0; x < 5; x += 1) {\n D[x] = xor_64_2(C[(x + 4) % 5], rotl_64(C[(x + 1) % 5], 1));\n }\n for (x = 0; x < 5; x += 1) {\n for (y = 0; y < 5; y += 1) {\n state[x][y] = xor_64_2(state[x][y], D[x]);\n }\n }\n\n /* Perform combined ro and pi steps */\n for (x = 0; x < 5; x += 1) {\n for (y = 0; y < 5; y += 1) {\n B[y][(2 * x + 3 * y) % 5] = rotl_64(state[x][y], r_sha3[x][y]);\n }\n }\n\n /* Perform chi step */\n for (x = 0; x < 5; x += 1) {\n for (y = 0; y < 5; y += 1) {\n state[x][y] = xor_64_2(\n B[x][y],\n new Int_64(\n ~B[(x + 1) % 5][y].highOrder & B[(x + 2) % 5][y].highOrder,\n ~B[(x + 1) % 5][y].lowOrder & B[(x + 2) % 5][y].lowOrder\n )\n );\n }\n }\n\n /* Perform iota step */\n state[0][0] = xor_64_2(state[0][0], rc_sha3[round]);\n }\n\n return state;\n}\n\n/**\n * Finalizes the SHA-3 hash. This clobbers `remainder` and `state`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param _processedBinLen Unused for this family.\n * @param state The state from a previous round.\n * @param blockSize The block size/rate of the variant in bits\n * @param delimiter The delimiter value for the variant\n * @param outputLen The output length for the variant in bits\n * @returns The array of integers representing the SHA-3 hash of message.\n */\nfunction finalizeSHA3(\n remainder: number[],\n remainderBinLen: number,\n _processedBinLen: number,\n state: Int_64[][],\n blockSize: number,\n delimiter: number,\n outputLen: number\n): number[] {\n let i,\n state_offset = 0,\n temp;\n const retVal = [],\n binaryStringInc = blockSize >>> 5,\n remainderIntLen = remainderBinLen >>> 5;\n\n /* Process as many blocks as possible, some may be here for multiple rounds\n\t\twith SHAKE\n\t*/\n for (i = 0; i < remainderIntLen && remainderBinLen >= blockSize; i += binaryStringInc) {\n state = roundSHA3(remainder.slice(i, i + binaryStringInc), state);\n remainderBinLen -= blockSize;\n }\n\n remainder = remainder.slice(i);\n remainderBinLen = remainderBinLen % blockSize;\n\n /* Pad out the remainder to a full block */\n while (remainder.length < binaryStringInc) {\n remainder.push(0);\n }\n\n /* Find the next \"empty\" byte for the 0x80 and append it via an xor */\n i = remainderBinLen >>> 3;\n remainder[i >> 2] ^= delimiter << (8 * (i % 4));\n\n remainder[binaryStringInc - 1] ^= 0x80000000;\n state = roundSHA3(remainder, state);\n\n while (retVal.length * 32 < outputLen) {\n temp = state[state_offset % 5][(state_offset / 5) | 0];\n retVal.push(temp.lowOrder);\n if (retVal.length * 32 >= outputLen) {\n break;\n }\n retVal.push(temp.highOrder);\n state_offset += 1;\n\n if (0 === (state_offset * 64) % blockSize) {\n roundSHA3(null, state);\n state_offset = 0;\n }\n }\n\n return retVal;\n}\n\n/**\n * Performs NIST left_encode function returned with no extra garbage bits. `x` is limited to <= 9007199254740991.\n *\n * @param x 32-bit number to to encode.\n * @returns The NIST specified output of the function.\n */\nfunction left_encode(x: number): packedValue {\n let byteOffset,\n byte,\n numEncodedBytes = 0;\n /* JavaScript numbers max out at 0x1FFFFFFFFFFFFF (7 bytes) so this will return a maximum of 7 + 1 = 8 bytes */\n const retVal = [0, 0],\n x_64 = [x & 0xffffffff, (x / TWO_PWR_32) & 0x1fffff];\n\n for (byteOffset = 6; byteOffset >= 0; byteOffset--) {\n /* This will surprisingly work for large shifts because JavaScript masks the shift amount by 0x1F */\n byte = (x_64[byteOffset >> 2] >>> (8 * byteOffset)) & 0xff;\n\n /* Starting from the most significant byte of a 64-bit number, start recording the first non-0 byte and then\n every byte thereafter */\n if (byte !== 0 || numEncodedBytes !== 0) {\n retVal[(numEncodedBytes + 1) >> 2] |= byte << ((numEncodedBytes + 1) * 8);\n numEncodedBytes += 1;\n }\n }\n numEncodedBytes = numEncodedBytes !== 0 ? numEncodedBytes : 1;\n retVal[0] |= numEncodedBytes;\n\n return { value: numEncodedBytes + 1 > 4 ? retVal : [retVal[0]], binLen: 8 + numEncodedBytes * 8 };\n}\n\n/**\n * Performs NIST right_encode function returned with no extra garbage bits. `x` is limited to <= 9007199254740991.\n *\n * @param x 32-bit number to to encode.\n * @returns The NIST specified output of the function.\n */\nfunction right_encode(x: number): packedValue {\n let byteOffset,\n byte,\n numEncodedBytes = 0;\n /* JavaScript numbers max out at 0x1FFFFFFFFFFFFF (7 bytes) so this will return a maximum of 7 + 1 = 8 bytes */\n const retVal = [0, 0],\n x_64 = [x & 0xffffffff, (x / TWO_PWR_32) & 0x1fffff];\n\n for (byteOffset = 6; byteOffset >= 0; byteOffset--) {\n /* This will surprisingly work for large shifts because JavaScript masks the shift amount by 0x1F */\n byte = (x_64[byteOffset >> 2] >>> (8 * byteOffset)) & 0xff;\n\n /* Starting from the most significant byte of a 64-bit number, start recording the first non-0 byte and then\n every byte thereafter */\n if (byte !== 0 || numEncodedBytes !== 0) {\n retVal[numEncodedBytes >> 2] |= byte << (numEncodedBytes * 8);\n numEncodedBytes += 1;\n }\n }\n numEncodedBytes = numEncodedBytes !== 0 ? numEncodedBytes : 1;\n retVal[numEncodedBytes >> 2] |= numEncodedBytes << (numEncodedBytes * 8);\n\n return { value: numEncodedBytes + 1 > 4 ? retVal : [retVal[0]], binLen: 8 + numEncodedBytes * 8 };\n}\n\n/**\n * Performs NIST encode_string function.\n *\n * @param input Packed array of integers.\n * @returns NIST encode_string output.\n */\nfunction encode_string(input: packedValue): packedValue {\n return packedLEConcat(left_encode(input[\"binLen\"]), input);\n}\n\n/**\n * Performs NIST byte_pad function.\n *\n * @param packed Packed array of integers.\n * @param outputByteLen Desired length of the output in bytes, assumed to be a multiple of 4.\n * @returns NIST byte_pad output.\n */\nfunction byte_pad(packed: packedValue, outputByteLen: number): number[] {\n let encodedLen = left_encode(outputByteLen),\n i;\n\n encodedLen = packedLEConcat(encodedLen, packed);\n const outputIntLen = outputByteLen >>> 2,\n intsToAppend = (outputIntLen - (encodedLen[\"value\"].length % outputIntLen)) % outputIntLen;\n\n for (i = 0; i < intsToAppend; i++) {\n encodedLen[\"value\"].push(0);\n }\n\n return encodedLen[\"value\"];\n}\n\n/**\n * Parses/validate constructor options for a CSHAKE variant\n *\n * @param options Option given to constructor\n */\nfunction resolveCSHAKEOptions(options: CSHAKEOptionsNoEncodingType): ResolvedCSHAKEOptionsNoEncodingType {\n const resolvedOptions = options || {};\n\n return {\n funcName: parseInputOption(\"funcName\", resolvedOptions[\"funcName\"], 1, { value: [], binLen: 0 }),\n customization: parseInputOption(\"Customization\", resolvedOptions[\"customization\"], 1, { value: [], binLen: 0 }),\n };\n}\n\n/**\n * Parses/validate constructor options for a KMAC variant\n *\n * @param options Option given to constructor\n */\nfunction resolveKMACOptions(options: KMACOptionsNoEncodingType): ResolvedKMACOptionsNoEncodingType {\n const resolvedOptions = options || {};\n\n return {\n kmacKey: parseInputOption(\"kmacKey\", resolvedOptions[\"kmacKey\"], 1),\n /* This is little-endian packed \"KMAC\" */\n funcName: { value: [0x43414d4b], binLen: 32 },\n customization: parseInputOption(\"Customization\", resolvedOptions[\"customization\"], 1, { value: [], binLen: 0 }),\n };\n}\n\nexport default class jsSHA extends jsSHABase {\n intermediateState: Int_64[][];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: Int_64[][]) => Int_64[][];\n finalizeFunc: (\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: Int_64[][],\n outputLen: number\n ) => number[];\n stateCloneFunc: (state: Int_64[][]) => Int_64[][];\n newStateFunc: (variant: VariantType) => Int_64[][];\n getMAC: ((options: { outputLen: number }) => number[]) | null;\n\n constructor(variant: FixedLengthVariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(\n variant: FixedLengthVariantType,\n inputFormat: FormatNoTextType,\n options?: FixedLengthOptionsNoEncodingType\n );\n constructor(variant: \"SHAKE128\" | \"SHAKE256\", inputFormat: \"TEXT\", options?: SHAKEOptionsEncodingType);\n constructor(variant: \"SHAKE128\" | \"SHAKE256\", inputFormat: FormatNoTextType, options?: SHAKEOptionsNoEncodingType);\n constructor(variant: \"CSHAKE128\" | \"CSHAKE256\", inputFormat: \"TEXT\", options?: CSHAKEOptionsEncodingType);\n constructor(variant: \"CSHAKE128\" | \"CSHAKE256\", inputFormat: FormatNoTextType, options?: CSHAKEOptionsNoEncodingType);\n constructor(variant: \"KMAC128\" | \"KMAC256\", inputFormat: \"TEXT\", options: KMACOptionsEncodingType);\n constructor(variant: \"KMAC128\" | \"KMAC256\", inputFormat: FormatNoTextType, options: KMACOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n let delimiter = 0x06,\n variantBlockSize = 0;\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n /* In other variants, this was done after variable initialization but need to do it earlier here becaue we want to\n avoid KMAC initialization */\n if (this.numRounds !== 1) {\n if (resolvedOptions[\"kmacKey\"] || resolvedOptions[\"hmacKey\"]) {\n throw new Error(mac_rounds_error);\n } else if (this.shaVariant === \"CSHAKE128\" || this.shaVariant === \"CSHAKE256\") {\n throw new Error(\"Cannot set numRounds for CSHAKE variants\");\n }\n }\n\n this.bigEndianMod = 1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA3;\n this.stateCloneFunc = cloneSHA3State;\n this.newStateFunc = getNewState;\n this.intermediateState = getNewState(variant);\n\n this.isVariableLen = false;\n switch (variant) {\n case \"SHA3-224\":\n this.variantBlockSize = variantBlockSize = 1152;\n this.outputBinLen = 224;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHA3-256\":\n this.variantBlockSize = variantBlockSize = 1088;\n this.outputBinLen = 256;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHA3-384\":\n this.variantBlockSize = variantBlockSize = 832;\n this.outputBinLen = 384;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHA3-512\":\n this.variantBlockSize = variantBlockSize = 576;\n this.outputBinLen = 512;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHAKE128\":\n delimiter = 0x1f;\n this.variantBlockSize = variantBlockSize = 1344;\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n case \"SHAKE256\":\n delimiter = 0x1f;\n this.variantBlockSize = variantBlockSize = 1088;\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n case \"KMAC128\":\n delimiter = 0x4;\n this.variantBlockSize = variantBlockSize = 1344;\n this._initializeKMAC(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getKMAC;\n break;\n case \"KMAC256\":\n delimiter = 0x4;\n this.variantBlockSize = variantBlockSize = 1088;\n this._initializeKMAC(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getKMAC;\n break;\n case \"CSHAKE128\":\n this.variantBlockSize = variantBlockSize = 1344;\n delimiter = this._initializeCSHAKE(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n case \"CSHAKE256\":\n this.variantBlockSize = variantBlockSize = 1088;\n delimiter = this._initializeCSHAKE(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n default:\n throw new Error(sha_variant_error);\n }\n\n /* This needs to be down here as CSHAKE can change its delimiter */\n this.finalizeFunc = function (remainder, remainderBinLen, processedBinLen, state, outputBinLen): number[] {\n return finalizeSHA3(\n remainder,\n remainderBinLen,\n processedBinLen,\n state,\n variantBlockSize,\n delimiter,\n outputBinLen\n );\n };\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n\n /**\n * Initialize CSHAKE variants.\n *\n * @param options Options containing CSHAKE params.\n * @param funcNameOverride Overrides any \"funcName\" present in `options` (used with KMAC)\n * @returns The delimiter to be used\n */\n protected _initializeCSHAKE(options?: CSHAKEOptionsNoEncodingType, funcNameOverride?: packedValue): number {\n const resolvedOptions = resolveCSHAKEOptions(options || {});\n if (funcNameOverride) {\n resolvedOptions[\"funcName\"] = funcNameOverride;\n }\n const packedParams = packedLEConcat(\n encode_string(resolvedOptions[\"funcName\"]),\n encode_string(resolvedOptions[\"customization\"])\n );\n\n /* CSHAKE is defined to be a call to SHAKE iff both the customization and function-name string are both empty. This\n can be accomplished by processing nothing in this step. */\n if (resolvedOptions[\"customization\"][\"binLen\"] !== 0 || resolvedOptions[\"funcName\"][\"binLen\"] !== 0) {\n const byte_pad_out = byte_pad(packedParams, this.variantBlockSize >>> 3);\n for (let i = 0; i < byte_pad_out.length; i += this.variantBlockSize >>> 5) {\n this.intermediateState = this.roundFunc(\n byte_pad_out.slice(i, i + (this.variantBlockSize >>> 5)),\n this.intermediateState\n );\n this.processedLen += this.variantBlockSize;\n }\n return 0x04;\n } else {\n return 0x1f;\n }\n }\n\n /**\n * Initialize KMAC variants.\n *\n * @param options Options containing KMAC params.\n */\n protected _initializeKMAC(options: KMACOptionsNoEncodingType): void {\n const resolvedOptions = resolveKMACOptions(options || {});\n\n this._initializeCSHAKE(options, resolvedOptions[\"funcName\"]);\n const byte_pad_out = byte_pad(encode_string(resolvedOptions[\"kmacKey\"]), this.variantBlockSize >>> 3);\n for (let i = 0; i < byte_pad_out.length; i += this.variantBlockSize >>> 5) {\n this.intermediateState = this.roundFunc(\n byte_pad_out.slice(i, i + (this.variantBlockSize >>> 5)),\n this.intermediateState\n );\n this.processedLen += this.variantBlockSize;\n }\n this.macKeySet = true;\n }\n\n /**\n * Returns the the KMAC in the specified format.\n *\n * @param options Hashmap of extra outputs options. `outputLen` must be specified.\n * @returns The KMAC in the format specified.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected _getKMAC(options: { outputLen: number }): number[] {\n const concatedRemainder = packedLEConcat(\n { value: this.remainder.slice(), binLen: this.remainderLen },\n right_encode(options[\"outputLen\"])\n );\n\n return this.finalizeFunc(\n concatedRemainder[\"value\"],\n concatedRemainder[\"binLen\"],\n this.processedLen,\n this.stateCloneFunc(this.intermediateState),\n options[\"outputLen\"]\n );\n }\n}\n", "import { sha_variant_error } from \"./common\";\nimport {\n CSHAKEOptionsEncodingType,\n CSHAKEOptionsNoEncodingType,\n SHAKEOptionsEncodingType,\n SHAKEOptionsNoEncodingType,\n EncodingType,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n KMACOptionsNoEncodingType,\n KMACOptionsEncodingType,\n} from \"./custom_types\";\nimport jsSHA1 from \"./sha1\";\nimport jsSHA256 from \"./sha256\";\nimport jsSHA512 from \"./sha512\";\nimport jsSHA3 from \"./sha3\";\n\ntype FixedLengthVariantType =\n | \"SHA-1\"\n | \"SHA-224\"\n | \"SHA-256\"\n | \"SHA-384\"\n | \"SHA-512\"\n | \"SHA3-224\"\n | \"SHA3-256\"\n | \"SHA3-384\"\n | \"SHA3-512\";\n\nexport default class jsSHA {\n private readonly shaObj: jsSHA1 | jsSHA256 | jsSHA512 | jsSHA3;\n /**\n * @param variant The desired SHA variant (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-256,\n * SHA3-384, SHA3-512, SHAKE128, SHAKE256, CSHAKE128, CSHAKE256, KMAC128, or KMAC256) as a string.\n * @param inputFormat The input format to be used in future `update` calls (TEXT, HEX, B64, BYTES, ARRAYBUFFER,\n * or UINT8ARRAY) as a string.\n * @param options Options in the form of { encoding?: \"UTF8\" | \"UTF16BE\" | \"UTF16LE\"; numRounds?: number }.\n * `encoding` is for only TEXT input (defaults to UTF8) and `numRounds` defaults to 1.\n * `numRounds` is not valid for any of the MAC or CSHAKE variants.\n * * If the variant supports HMAC, `options` may have an additional `hmacKey` key which must be in the form of\n * {value:
` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar map = function (f) {\n return function (fa) {\n return (0, exports.separated)((0, exports.left)(fa), f((0, exports.right)(fa)));\n };\n};\nexports.map = map;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar mapLeft = function (f) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), (0, exports.right)(fa));\n };\n};\nexports.mapLeft = mapLeft;\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar bimap = function (f, g) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), g((0, exports.right)(fa)));\n };\n};\nexports.bimap = bimap;\n/**\n * @category type lambdas\n * @since 2.10.0\n */\nexports.URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar left = function (s) { return s.left; };\nexports.left = left;\n/**\n * @since 2.10.0\n */\nvar right = function (s) { return s.right; };\nexports.right = right;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterE = exports.witherDefault = exports.wiltDefault = void 0;\nvar _ = __importStar(require(\"./internal\"));\nfunction wiltDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.separate); };\n };\n}\nexports.wiltDefault = wiltDefault;\nfunction witherDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.compact); };\n };\n}\nexports.witherDefault = witherDefault;\nfunction filterE(W) {\n return function (F) {\n var witherF = W.wither(F);\n return function (predicate) { return function (ga) { return witherF(ga, function (a) { return F.map(predicate(a), function (b) { return (b ? _.some(a) : _.none); }); }); }; };\n };\n}\nexports.filterE = filterE;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fold = exports.match = exports.foldW = exports.matchW = exports.isRight = exports.isLeft = exports.fromOption = exports.fromPredicate = exports.FromEither = exports.MonadThrow = exports.throwError = exports.ChainRec = exports.Extend = exports.extend = exports.Alt = exports.alt = exports.altW = exports.Bifunctor = exports.mapLeft = exports.bimap = exports.Traversable = exports.sequence = exports.traverse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.chain = exports.chainW = exports.Applicative = exports.Apply = exports.ap = exports.apW = exports.Pointed = exports.of = exports.Functor = exports.map = exports.getAltValidation = exports.getApplicativeValidation = exports.getWitherable = exports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.URI = exports.right = exports.left = void 0;\nexports.getValidation = exports.getValidationMonoid = exports.getValidationSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.either = exports.stringifyJSON = exports.parseJSON = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toError = exports.toUnion = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.orElse = exports.orElseW = exports.swap = exports.filterOrElseW = exports.filterOrElse = exports.chainOptionK = exports.fromOptionK = exports.duplicate = exports.flatten = exports.flattenW = exports.chainFirstW = exports.chainFirst = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar ChainRec_1 = require(\"./ChainRec\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.left = _.left;\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.right = _.right;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) { return function (fa, f) {\n var foldMapM = (0, exports.foldMap)(M);\n return (0, function_1.pipe)(fa, foldMapM(f));\n}; };\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\nvar _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); };\nvar _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\nvar _chainRec = function (a, f) {\n return (0, ChainRec_1.tailRec)(f(a), function (e) {\n return (0, exports.isLeft)(e) ? (0, exports.right)((0, exports.left)(e.left)) : (0, exports.isLeft)(e.right) ? (0, exports.left)(f(e.right.left)) : (0, exports.right)((0, exports.right)(e.right.right));\n });\n};\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (SE, SA) { return ({\n show: function (ma) { return ((0, exports.isLeft)(ma) ? \"left(\".concat(SE.show(ma.left), \")\") : \"right(\".concat(SA.show(ma.right), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (EL, EA) { return ({\n equals: function (x, y) {\n return x === y || ((0, exports.isLeft)(x) ? (0, exports.isLeft)(y) && EL.equals(x.left, y.left) : (0, exports.isRight)(y) && EA.equals(x.right, y.right));\n }\n}); };\nexports.getEq = getEq;\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isLeft)(y) ? x : (0, exports.isLeft)(x) ? y : (0, exports.right)(S.concat(x.right, y.right))); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category filtering\n * @since 2.10.0\n */\nvar getCompactable = function (M) {\n var empty = (0, exports.left)(M.empty);\n return {\n URI: exports.URI,\n _E: undefined,\n compact: function (ma) { return ((0, exports.isLeft)(ma) ? ma : ma.right._tag === 'None' ? empty : (0, exports.right)(ma.right.value)); },\n separate: function (ma) {\n return (0, exports.isLeft)(ma)\n ? (0, Separated_1.separated)(ma, ma)\n : (0, exports.isLeft)(ma.right)\n ? (0, Separated_1.separated)((0, exports.right)(ma.right.left), empty)\n : (0, Separated_1.separated)(empty, (0, exports.right)(ma.right.right));\n }\n };\n};\nexports.getCompactable = getCompactable;\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.10.0\n */\nvar getFilterable = function (M) {\n var empty = (0, exports.left)(M.empty);\n var _a = (0, exports.getCompactable)(M), compact = _a.compact, separate = _a.separate;\n var filter = function (ma, predicate) {\n return (0, exports.isLeft)(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return (0, exports.isLeft)(ma)\n ? (0, Separated_1.separated)(ma, ma)\n : p(ma.right)\n ? (0, Separated_1.separated)(empty, (0, exports.right)(ma.right))\n : (0, Separated_1.separated)((0, exports.right)(ma.right), empty);\n };\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if ((0, exports.isLeft)(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : (0, exports.right)(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if ((0, exports.isLeft)(ma)) {\n return (0, Separated_1.separated)(ma, ma);\n }\n var e = f(ma.right);\n return (0, exports.isLeft)(e) ? (0, Separated_1.separated)((0, exports.right)(e.left), empty) : (0, Separated_1.separated)(empty, (0, exports.right)(e.right));\n }\n };\n};\nexports.getFilterable = getFilterable;\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.0.0\n */\nvar getWitherable = function (M) {\n var F_ = (0, exports.getFilterable)(M);\n var C = (0, exports.getCompactable)(M);\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: F_.compact,\n separate: F_.separate,\n filter: F_.filter,\n filterMap: F_.filterMap,\n partition: F_.partition,\n partitionMap: F_.partitionMap,\n traverse: _traverse,\n sequence: exports.sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: (0, Witherable_1.witherDefault)(exports.Traversable, C),\n wilt: (0, Witherable_1.wiltDefault)(exports.Traversable, C)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * The default [`Applicative`](#applicative) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as A from 'fp-ts/Apply'\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n *\n * const parsePerson = (\n * input: Record\n * ): E.Either =>\n * pipe(\n * E.Do,\n * E.apS('name', parseString(input.name)),\n * E.apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error\n *\n * const Applicative = E.getApplicativeValidation(\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * const apS = A.apS(Applicative)\n *\n * const parsePersonAll = (\n * input: Record\n * ): E.Either =>\n * pipe(\n * E.Do,\n * apS('name', parseString(input.name)),\n * apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nvar getApplicativeValidation = function (SE) { return ({\n URI: exports.URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) {\n return (0, exports.isLeft)(fab)\n ? (0, exports.isLeft)(fa)\n ? (0, exports.left)(SE.concat(fab.left, fa.left))\n : fab\n : (0, exports.isLeft)(fa)\n ? fa\n : (0, exports.right)(fab.right(fa.right));\n },\n of: exports.of\n}); };\nexports.getApplicativeValidation = getApplicativeValidation;\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * const parse = (u: unknown): E.Either =>\n * pipe(\n * parseString(u),\n * E.alt(() => parseNumber(u))\n * )\n *\n * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error\n *\n * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', ')))\n *\n * const parseAll = (u: unknown): E.Either =>\n * Alt.alt(parseString(u), () => parseNumber(u))\n *\n * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nvar getAltValidation = function (SE) { return ({\n URI: exports.URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if ((0, exports.isRight)(me)) {\n return me;\n }\n var ea = that();\n return (0, exports.isLeft)(ea) ? (0, exports.left)(SE.concat(me.left, ea.left)) : ea;\n }\n}); };\nexports.getAltValidation = getAltValidation;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? fa : (0, exports.right)(f(fa.right));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.right;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nvar apW = function (fa) { return function (fab) {\n return (0, exports.isLeft)(fab) ? fab : (0, exports.isLeft)(fa) ? fa : (0, exports.right)(fab.right(fa.right));\n}; };\nexports.apW = apW;\n/**\n * @since 2.0.0\n */\nexports.ap = exports.apW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * Less strict version of [`chain`](#chain).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * const e1: E.Either = E.right(1)\n * const e2: E.Either = E.right(2)\n *\n * export const result1 = pipe(\n * // @ts-expect-error\n * e1,\n * E.chain(() => e2)\n * )\n *\n * // merged error types -----v-------------v\n * // const result2: E.Either\n * export const result2 = pipe(\n * e1, // no error\n * E.chainW(() => e2)\n * )\n *\n * @category sequencing\n * @since 2.6.0\n */\nvar chainW = function (f) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? ma : f(ma.right);\n };\n};\nexports.chainW = chainW;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chain = exports.chainW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * Left-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'prefix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduce(startWith, concat)),\n * 'prefix:a'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduce(startWith, concat)),\n * 'prefix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? b : f(b, fa.right);\n}; };\nexports.reduce = reduce;\n/**\n * Map each element of the structure to a monoid, and combine the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as S from 'fp-ts/string'\n *\n * const yell = (a: string) => `${a}!`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),\n * 'a!'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),\n * S.Monoid.empty\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? M.empty : f(fa.right);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * Right-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'postfix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduceRight(startWith, concat)),\n * 'a:postfix'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduceRight(startWith, concat)),\n * 'postfix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? b : f(fa.right, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isLeft)(ta) ? F.of((0, exports.left)(ta.left)) : F.map(f(ta.right), exports.right);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? F.of((0, exports.left)(ma.left)) : F.map(ma.right, exports.right);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar bimap = function (f, g) { return function (fa) {\n return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : (0, exports.right)(g(fa.right));\n}; };\nexports.bimap = bimap;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.0.0\n */\nvar mapLeft = function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : fa;\n}; };\nexports.mapLeft = mapLeft;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) { return function (fa) {\n return (0, exports.isLeft)(fa) ? that() : fa;\n}; };\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`).\n *\n * | x | y | pipe(x, alt(() => y) |\n * | -------- | -------- | -------------------- |\n * | left(a) | left(b) | left(b) |\n * | left(a) | right(2) | right(2) |\n * | right(1) | left(b) | right(1) |\n * | right(1) | right(2) | right(1) |\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.left('b'))\n * ),\n * E.left('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.right(2))\n * ),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.left('b'))\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.right(2))\n * ),\n * E.right(1)\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isLeft)(wa) ? wa : (0, exports.right)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.ChainRec = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRec\n};\n/**\n * @since 2.6.3\n */\nexports.throwError = exports.left;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n throwError: exports.throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: function_1.identity\n};\n/**\n * @example\n * import { fromPredicate, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * 1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * -1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n *\n * @category lifting\n * @since 2.0.0\n */\nexports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some(1),\n * E.fromOption(() => 'error')\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * E.fromOption(() => 'error')\n * ),\n * E.left('error')\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromOption = \n/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isRight = _.isRight;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onLeft, onRight) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onLeft) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma.right;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Less strict version of [`apFirst`](#apfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apFirstW = exports.apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * Less strict version of [`apSecond`](#apsecond)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apSecondW = exports.apSecond;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * Less strict version of [`chainFirst`](#chainfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.8.0\n */\nexports.chainFirstW = exports.chainFirst;\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexports.flattenW = \n/*#__PURE__*/ (0, exports.chainW)(function_1.identity);\n/**\n * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))\n * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))\n * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.flattenW;\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category lifting\n * @since 2.10.0\n */\nexports.fromOptionK = \n/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain);\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(-1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('a')\n * )\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexports.filterOrElseW = exports.filterOrElse;\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @since 2.0.0\n */\nvar swap = function (ma) { return ((0, exports.isLeft)(ma) ? (0, exports.right)(ma.left) : (0, exports.left)(ma.right)); };\nexports.swap = swap;\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar orElseW = function (onLeft) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma;\n };\n};\nexports.orElseW = orElseW;\n/**\n * Useful for recovering from errors.\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.orElse = exports.orElseW;\n/**\n * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use\n * the provided default as a `Left`.\n *\n * @example\n * import { fromNullable, left, right } from 'fp-ts/Either'\n *\n * const parse = fromNullable('nully')\n *\n * assert.deepStrictEqual(parse(1), right(1))\n * assert.deepStrictEqual(parse(null), left('nully'))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (e) {\n return function (a) {\n return a == null ? (0, exports.left)(e) : (0, exports.right)(a);\n };\n};\nexports.fromNullable = fromNullable;\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = (as: ReadonlyArray): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = (as: ReadonlyArray): E.Either =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f, onThrow) {\n try {\n return (0, exports.right)(f());\n }\n catch (e) {\n return (0, exports.left)(onThrow(e));\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onThrow);\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * @category lifting\n * @since 2.9.0\n */\nvar fromNullableK = function (e) {\n var from = (0, exports.fromNullable)(e);\n return function (f) { return (0, function_1.flow)(f, from); };\n};\nexports.fromNullableK = fromNullableK;\n/**\n * @category sequencing\n * @since 2.9.0\n */\nvar chainNullableK = function (e) {\n var from = (0, exports.fromNullableK)(e);\n return function (f) { return (0, exports.chain)(from(f)); };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.toUnion = (0, exports.foldW)(function_1.identity, function_1.identity);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nfunction toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\nexports.toError = toError;\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isLeft)(ma) ? false : E.equals(a, ma.right);\n };\n}\nexports.elem = elem;\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? false : predicate(ma.right);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.bindW = exports.bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.apSW = exports.apS;\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var e = f(0, _.head(as));\n if ((0, exports.isLeft)(e)) {\n return e;\n }\n var out = [e.right];\n for (var i = 1; i < as.length; i++) {\n var e_1 = f(i, as[i]);\n if ((0, exports.isLeft)(e_1)) {\n return e_1;\n }\n out.push(e_1.right);\n }\n return (0, exports.right)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); };\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction parseJSON(s, onError) {\n return (0, exports.tryCatch)(function () { return JSON.parse(s); }, onError);\n}\nexports.parseJSON = parseJSON;\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar stringifyJSON = function (u, onError) {\n return (0, exports.tryCatch)(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\nexports.stringifyJSON = stringifyJSON;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either`\n * (where `E` is from `import E from 'fp-ts/Either'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.either = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values\n * are concatenated using the provided `Semigroup`\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = \n/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = \n/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationSemigroup = function (SE, SA) {\n return (0, Apply_1.getApplySemigroup)((0, exports.getApplicativeValidation)(SE))(SA);\n};\nexports.getValidationSemigroup = getValidationSemigroup;\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationMonoid = function (SE, MA) {\n return (0, Applicative_1.getApplicativeMonoid)((0, exports.getApplicativeValidation)(SE))(MA);\n};\nexports.getValidationMonoid = getValidationMonoid;\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getValidation(SE) {\n var ap = (0, exports.getApplicativeValidation)(SE).ap;\n var alt = (0, exports.getAltValidation)(SE).alt;\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n of: exports.of,\n chain: _chain,\n bimap: _bimap,\n mapLeft: _mapLeft,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n extend: _extend,\n traverse: _traverse,\n sequence: exports.sequence,\n chainRec: _chainRec,\n throwError: exports.throwError,\n ap: ap,\n alt: alt\n };\n}\nexports.getValidation = getValidation;\n", "\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partial = exports.PartialType = exports.type = exports.InterfaceType = exports.array = exports.ArrayType = exports.recursion = exports.RecursiveType = exports.Int = exports.brand = exports.RefinementType = exports.keyof = exports.KeyofType = exports.literal = exports.LiteralType = exports.void = exports.undefined = exports.null = exports.UnknownRecord = exports.AnyDictionaryType = exports.UnknownArray = exports.AnyArrayType = exports.boolean = exports.BooleanType = exports.bigint = exports.BigIntType = exports.number = exports.NumberType = exports.string = exports.StringType = exports.unknown = exports.UnknownType = exports.voidType = exports.VoidType = exports.UndefinedType = exports.nullType = exports.NullType = exports.getIndex = exports.getTags = exports.emptyTags = exports.mergeAll = exports.getDomainKeys = exports.appendContext = exports.getContextEntry = exports.getFunctionName = exports.identity = exports.Type = exports.success = exports.failure = exports.failures = void 0;\nexports.alias = exports.clean = exports.StrictType = exports.dictionary = exports.Integer = exports.refinement = exports.object = exports.ObjectType = exports.Dictionary = exports.any = exports.AnyType = exports.never = exports.NeverType = exports.getDefaultContext = exports.getValidationError = exports.interface = exports.Array = exports.taggedUnion = exports.TaggedUnionType = exports.Function = exports.FunctionType = exports.exact = exports.ExactType = exports.strict = exports.readonlyArray = exports.ReadonlyArrayType = exports.readonly = exports.ReadonlyType = exports.tuple = exports.TupleType = exports.intersection = exports.IntersectionType = exports.union = exports.UnionType = exports.record = exports.DictionaryType = void 0;\n/**\n * @since 1.0.0\n */\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * @category Decode error\n * @since 1.0.0\n */\nexports.failures = Either_1.left;\n/**\n * @category Decode error\n * @since 1.0.0\n */\nvar failure = function (value, context, message) {\n return (0, exports.failures)([{ value: value, context: context, message: message }]);\n};\nexports.failure = failure;\n/**\n * @category Decode error\n * @since 1.0.0\n */\nexports.success = Either_1.right;\n/**\n * @category Codec\n * @since 1.0.0\n */\nvar Type = /** @class */ (function () {\n function Type(\n /** a unique name for this codec */\n name, \n /** a custom type guard */\n is, \n /** succeeds if a value of type I can be decoded to a value of type A */\n validate, \n /** converts a value of type A to a value of type O */\n encode) {\n this.name = name;\n this.is = is;\n this.validate = validate;\n this.encode = encode;\n this.decode = this.decode.bind(this);\n }\n /**\n * @since 1.0.0\n */\n Type.prototype.pipe = function (ab, name) {\n var _this = this;\n if (name === void 0) { name = \"pipe(\".concat(this.name, \", \").concat(ab.name, \")\"); }\n return new Type(name, ab.is, function (i, c) {\n var e = _this.validate(i, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n return ab.validate(e.right, c);\n }, this.encode === exports.identity && ab.encode === exports.identity ? exports.identity : function (b) { return _this.encode(ab.encode(b)); });\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asDecoder = function () {\n return this;\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asEncoder = function () {\n return this;\n };\n /**\n * a version of `validate` with a default context\n * @since 1.0.0\n */\n Type.prototype.decode = function (i) {\n return this.validate(i, [{ key: '', type: this, actual: i }]);\n };\n return Type;\n}());\nexports.Type = Type;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar identity = function (a) { return a; };\nexports.identity = identity;\n/**\n * @since 1.0.0\n */\nfunction getFunctionName(f) {\n return f.displayName || f.name || \"\");\n}\nexports.getFunctionName = getFunctionName;\n/**\n * @since 1.0.0\n */\nfunction getContextEntry(key, decoder) {\n return { key: key, type: decoder };\n}\nexports.getContextEntry = getContextEntry;\n/**\n * @since 1.0.0\n */\nfunction appendContext(c, key, decoder, actual) {\n var len = c.length;\n var r = Array(len + 1);\n for (var i = 0; i < len; i++) {\n r[i] = c[i];\n }\n r[len] = { key: key, type: decoder, actual: actual };\n return r;\n}\nexports.appendContext = appendContext;\nfunction pushAll(xs, ys) {\n var l = ys.length;\n for (var i = 0; i < l; i++) {\n xs.push(ys[i]);\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction getNameFromProps(props) {\n return Object.keys(props)\n .map(function (k) { return \"\".concat(k, \": \").concat(props[k].name); })\n .join(', ');\n}\nfunction useIdentity(codecs) {\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].encode !== exports.identity) {\n return false;\n }\n }\n return true;\n}\nfunction getInterfaceTypeName(props) {\n return \"{ \".concat(getNameFromProps(props), \" }\");\n}\nfunction getPartialTypeName(inner) {\n return \"Partial<\".concat(inner, \">\");\n}\nfunction enumerableRecord(keys, domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \".concat(domain.name, \"]: \").concat(codomain.name, \" }\"); }\n var len = keys.length;\n return new DictionaryType(name, function (u) { return exports.UnknownRecord.is(u) && keys.every(function (k) { return codomain.is(u[k]); }); }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var o = e.right;\n var a = {};\n var errors = [];\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = o[k];\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n if ((0, Either_1.isLeft)(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)((changed || Object.keys(o).length !== len ? a : o));\n }, codomain.encode === exports.identity\n ? exports.identity\n : function (a) {\n var s = {};\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[k] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @internal\n */\nfunction getDomainKeys(domain) {\n var _a;\n if (isLiteralC(domain)) {\n var literal_1 = domain.value;\n if (exports.string.is(literal_1)) {\n return _a = {}, _a[literal_1] = null, _a;\n }\n }\n else if (isKeyofC(domain)) {\n return domain.keys;\n }\n else if (isUnionC(domain)) {\n var keys = domain.types.map(function (type) { return getDomainKeys(type); });\n return keys.some(undefinedType.is) ? undefined : Object.assign.apply(Object, __spreadArray([{}], keys, false));\n }\n return undefined;\n}\nexports.getDomainKeys = getDomainKeys;\nfunction nonEnumerableRecord(domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \".concat(domain.name, \"]: \").concat(codomain.name, \" }\"); }\n return new DictionaryType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n return Object.keys(u).every(function (k) { return domain.is(k) && codomain.is(u[k]); });\n }\n return isAnyC(codomain) && Array.isArray(u);\n }, function (u, c) {\n if (exports.UnknownRecord.is(u)) {\n var a = {};\n var errors = [];\n var keys = Object.keys(u);\n var len = keys.length;\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = u[k];\n var domainResult = domain.validate(k, appendContext(c, k, domain, k));\n if ((0, Either_1.isLeft)(domainResult)) {\n pushAll(errors, domainResult.left);\n }\n else {\n var vk = domainResult.right;\n changed = changed || vk !== k;\n k = vk;\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n if ((0, Either_1.isLeft)(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)((changed ? a : u));\n }\n if (isAnyC(codomain) && Array.isArray(u)) {\n return (0, exports.success)(u);\n }\n return (0, exports.failure)(u, c);\n }, domain.encode === exports.identity && codomain.encode === exports.identity\n ? exports.identity\n : function (a) {\n var s = {};\n var keys = Object.keys(a);\n var len = keys.length;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[String(domain.encode(k))] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\nfunction getUnionName(codecs) {\n return '(' + codecs.map(function (type) { return type.name; }).join(' | ') + ')';\n}\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction mergeAll(base, us) {\n var equal = true;\n var primitive = true;\n var baseIsNotADictionary = !exports.UnknownRecord.is(base);\n for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {\n var u = us_1[_i];\n if (u !== base) {\n equal = false;\n }\n if (exports.UnknownRecord.is(u)) {\n primitive = false;\n }\n }\n if (equal) {\n return base;\n }\n else if (primitive) {\n return us[us.length - 1];\n }\n var r = {};\n for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {\n var u = us_2[_a];\n for (var k in u) {\n if (!hasOwnProperty.call(r, k) || baseIsNotADictionary || u[k] !== base[k]) {\n r[k] = u[k];\n }\n }\n }\n return r;\n}\nexports.mergeAll = mergeAll;\nfunction getProps(codec) {\n switch (codec._tag) {\n case 'RefinementType':\n case 'ReadonlyType':\n return getProps(codec.type);\n case 'InterfaceType':\n case 'StrictType':\n case 'PartialType':\n return codec.props;\n case 'IntersectionType':\n return codec.types.reduce(function (props, type) { return Object.assign(props, getProps(type)); }, {});\n }\n}\nfunction stripKeys(o, props) {\n var keys = Object.getOwnPropertyNames(o);\n var shouldStrip = false;\n var r = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwnProperty.call(props, key)) {\n shouldStrip = true;\n }\n else {\n r[key] = o[key];\n }\n }\n return shouldStrip ? r : o;\n}\nfunction getExactTypeName(codec) {\n if (isTypeC(codec)) {\n return \"{| \".concat(getNameFromProps(codec.props), \" |}\");\n }\n else if (isPartialC(codec)) {\n return getPartialTypeName(\"{| \".concat(getNameFromProps(codec.props), \" |}\"));\n }\n return \"Exact<\".concat(codec.name, \">\");\n}\nfunction isNonEmpty(as) {\n return as.length > 0;\n}\n/**\n * @internal\n */\nexports.emptyTags = {};\nfunction intersect(a, b) {\n var r = [];\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var v = a_1[_i];\n if (b.indexOf(v) !== -1) {\n r.push(v);\n }\n }\n return r;\n}\nfunction mergeTags(a, b) {\n if (a === exports.emptyTags) {\n return b;\n }\n if (b === exports.emptyTags) {\n return a;\n }\n var r = Object.assign({}, a);\n for (var k in b) {\n if (hasOwnProperty.call(a, k)) {\n var intersection_1 = intersect(a[k], b[k]);\n if (isNonEmpty(intersection_1)) {\n r[k] = intersection_1;\n }\n else {\n r = exports.emptyTags;\n break;\n }\n }\n else {\n r[k] = b[k];\n }\n }\n return r;\n}\nfunction intersectTags(a, b) {\n if (a === exports.emptyTags || b === exports.emptyTags) {\n return exports.emptyTags;\n }\n var r = exports.emptyTags;\n for (var k in a) {\n if (hasOwnProperty.call(b, k)) {\n var intersection_2 = intersect(a[k], b[k]);\n if (intersection_2.length === 0) {\n if (r === exports.emptyTags) {\n r = {};\n }\n r[k] = a[k].concat(b[k]);\n }\n }\n }\n return r;\n}\n// tslint:disable-next-line: deprecation\nfunction isAnyC(codec) {\n return codec._tag === 'AnyType';\n}\nfunction isLiteralC(codec) {\n return codec._tag === 'LiteralType';\n}\nfunction isKeyofC(codec) {\n return codec._tag === 'KeyofType';\n}\nfunction isTypeC(codec) {\n return codec._tag === 'InterfaceType';\n}\nfunction isPartialC(codec) {\n return codec._tag === 'PartialType';\n}\n// tslint:disable-next-line: deprecation\nfunction isStrictC(codec) {\n return codec._tag === 'StrictType';\n}\nfunction isExactC(codec) {\n return codec._tag === 'ExactType';\n}\n// tslint:disable-next-line: deprecation\nfunction isRefinementC(codec) {\n return codec._tag === 'RefinementType';\n}\nfunction isIntersectionC(codec) {\n return codec._tag === 'IntersectionType';\n}\nfunction isUnionC(codec) {\n return codec._tag === 'UnionType';\n}\nfunction isRecursiveC(codec) {\n return codec._tag === 'RecursiveType';\n}\nvar lazyCodecs = [];\n/**\n * @internal\n */\nfunction getTags(codec) {\n if (lazyCodecs.indexOf(codec) !== -1) {\n return exports.emptyTags;\n }\n if (isTypeC(codec) || isStrictC(codec)) {\n var index = exports.emptyTags;\n // tslint:disable-next-line: forin\n for (var k in codec.props) {\n var prop = codec.props[k];\n if (isLiteralC(prop)) {\n if (index === exports.emptyTags) {\n index = {};\n }\n index[k] = [prop.value];\n }\n }\n return index;\n }\n else if (isExactC(codec) || isRefinementC(codec)) {\n return getTags(codec.type);\n }\n else if (isIntersectionC(codec)) {\n return codec.types.reduce(function (tags, codec) { return mergeTags(tags, getTags(codec)); }, exports.emptyTags);\n }\n else if (isUnionC(codec)) {\n return codec.types.slice(1).reduce(function (tags, codec) { return intersectTags(tags, getTags(codec)); }, getTags(codec.types[0]));\n }\n else if (isRecursiveC(codec)) {\n lazyCodecs.push(codec);\n var tags = getTags(codec.type);\n lazyCodecs.pop();\n return tags;\n }\n return exports.emptyTags;\n}\nexports.getTags = getTags;\n/**\n * @internal\n */\nfunction getIndex(codecs) {\n var tags = getTags(codecs[0]);\n var keys = Object.keys(tags);\n var len = codecs.length;\n var _loop_1 = function (k) {\n var all = tags[k].slice();\n var index = [tags[k]];\n for (var i = 1; i < len; i++) {\n var codec = codecs[i];\n var ctags = getTags(codec);\n var values = ctags[k];\n // tslint:disable-next-line: strict-type-predicates\n if (values === undefined) {\n return \"continue-keys\";\n }\n else {\n if (values.some(function (v) { return all.indexOf(v) !== -1; })) {\n return \"continue-keys\";\n }\n else {\n all.push.apply(all, values);\n index.push(values);\n }\n }\n }\n return { value: [k, index] };\n };\n keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var state_1 = _loop_1(k);\n if (typeof state_1 === \"object\")\n return state_1.value;\n switch (state_1) {\n case \"continue-keys\": continue keys;\n }\n }\n return undefined;\n}\nexports.getIndex = getIndex;\n// -------------------------------------------------------------------------------------\n// primitives\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar NullType = /** @class */ (function (_super) {\n __extends(NullType, _super);\n function NullType() {\n var _this = _super.call(this, 'null', function (u) { return u === null; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NullType';\n return _this;\n }\n return NullType;\n}(Type));\nexports.NullType = NullType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.nullType = new NullType();\nexports.null = exports.nullType;\n/**\n * @since 1.0.0\n */\nvar UndefinedType = /** @class */ (function (_super) {\n __extends(UndefinedType, _super);\n function UndefinedType() {\n var _this = _super.call(this, 'undefined', function (u) { return u === void 0; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UndefinedType';\n return _this;\n }\n return UndefinedType;\n}(Type));\nexports.UndefinedType = UndefinedType;\nvar undefinedType = new UndefinedType();\nexports.undefined = undefinedType;\n/**\n * @since 1.2.0\n */\nvar VoidType = /** @class */ (function (_super) {\n __extends(VoidType, _super);\n function VoidType() {\n var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'VoidType';\n return _this;\n }\n return VoidType;\n}(Type));\nexports.VoidType = VoidType;\n/**\n * @category primitives\n * @since 1.2.0\n */\nexports.voidType = new VoidType();\nexports.void = exports.voidType;\n/**\n * @since 1.5.0\n */\nvar UnknownType = /** @class */ (function (_super) {\n __extends(UnknownType, _super);\n function UnknownType() {\n var _this = _super.call(this, 'unknown', function (_) { return true; }, exports.success, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnknownType';\n return _this;\n }\n return UnknownType;\n}(Type));\nexports.UnknownType = UnknownType;\n/**\n * @category primitives\n * @since 1.5.0\n */\nexports.unknown = new UnknownType();\n/**\n * @since 1.0.0\n */\nvar StringType = /** @class */ (function (_super) {\n __extends(StringType, _super);\n function StringType() {\n var _this = _super.call(this, 'string', function (u) { return typeof u === 'string'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StringType';\n return _this;\n }\n return StringType;\n}(Type));\nexports.StringType = StringType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.string = new StringType();\n/**\n * @since 1.0.0\n */\nvar NumberType = /** @class */ (function (_super) {\n __extends(NumberType, _super);\n function NumberType() {\n var _this = _super.call(this, 'number', function (u) { return typeof u === 'number'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NumberType';\n return _this;\n }\n return NumberType;\n}(Type));\nexports.NumberType = NumberType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.number = new NumberType();\n/**\n * @since 2.1.0\n */\nvar BigIntType = /** @class */ (function (_super) {\n __extends(BigIntType, _super);\n function BigIntType() {\n var _this = _super.call(this, 'bigint', \n // tslint:disable-next-line: valid-typeof\n function (u) { return typeof u === 'bigint'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BigIntType';\n return _this;\n }\n return BigIntType;\n}(Type));\nexports.BigIntType = BigIntType;\n/**\n * @category primitives\n * @since 2.1.0\n */\nexports.bigint = new BigIntType();\n/**\n * @since 1.0.0\n */\nvar BooleanType = /** @class */ (function (_super) {\n __extends(BooleanType, _super);\n function BooleanType() {\n var _this = _super.call(this, 'boolean', function (u) { return typeof u === 'boolean'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BooleanType';\n return _this;\n }\n return BooleanType;\n}(Type));\nexports.BooleanType = BooleanType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.boolean = new BooleanType();\n/**\n * @since 1.0.0\n */\nvar AnyArrayType = /** @class */ (function (_super) {\n __extends(AnyArrayType, _super);\n function AnyArrayType() {\n var _this = _super.call(this, 'UnknownArray', Array.isArray, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyArrayType';\n return _this;\n }\n return AnyArrayType;\n}(Type));\nexports.AnyArrayType = AnyArrayType;\n/**\n * @category primitives\n * @since 1.7.1\n */\nexports.UnknownArray = new AnyArrayType();\nexports.Array = exports.UnknownArray;\n/**\n * @since 1.0.0\n */\nvar AnyDictionaryType = /** @class */ (function (_super) {\n __extends(AnyDictionaryType, _super);\n function AnyDictionaryType() {\n var _this = _super.call(this, 'UnknownRecord', function (u) { return u !== null && typeof u === 'object' && !Array.isArray(u); }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyDictionaryType';\n return _this;\n }\n return AnyDictionaryType;\n}(Type));\nexports.AnyDictionaryType = AnyDictionaryType;\n/**\n * @category primitives\n * @since 1.7.1\n */\nexports.UnknownRecord = new AnyDictionaryType();\n/**\n * @since 1.0.0\n */\nvar LiteralType = /** @class */ (function (_super) {\n __extends(LiteralType, _super);\n function LiteralType(name, is, validate, encode, value) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.value = value;\n /**\n * @since 1.0.0\n */\n _this._tag = 'LiteralType';\n return _this;\n }\n return LiteralType;\n}(Type));\nexports.LiteralType = LiteralType;\n/**\n * @category constructors\n * @since 1.0.0\n */\nfunction literal(value, name) {\n if (name === void 0) { name = JSON.stringify(value); }\n var is = function (u) { return u === value; };\n return new LiteralType(name, is, function (u, c) { return (is(u) ? (0, exports.success)(value) : (0, exports.failure)(u, c)); }, exports.identity, value);\n}\nexports.literal = literal;\n/**\n * @since 1.0.0\n */\nvar KeyofType = /** @class */ (function (_super) {\n __extends(KeyofType, _super);\n function KeyofType(name, is, validate, encode, keys) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.keys = keys;\n /**\n * @since 1.0.0\n */\n _this._tag = 'KeyofType';\n return _this;\n }\n return KeyofType;\n}(Type));\nexports.KeyofType = KeyofType;\n/**\n * @category constructors\n * @since 1.0.0\n */\nfunction keyof(keys, name) {\n if (name === void 0) { name = Object.keys(keys)\n .map(function (k) { return JSON.stringify(k); })\n .join(' | '); }\n var is = function (u) { return exports.string.is(u) && hasOwnProperty.call(keys, u); };\n return new KeyofType(name, is, function (u, c) { return (is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity, keys);\n}\nexports.keyof = keyof;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar RefinementType = /** @class */ (function (_super) {\n __extends(RefinementType, _super);\n function RefinementType(name, is, validate, encode, type, predicate) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n _this.predicate = predicate;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RefinementType';\n return _this;\n }\n return RefinementType;\n}(Type));\nexports.RefinementType = RefinementType;\n/**\n * @category combinators\n * @since 1.8.1\n */\nfunction brand(codec, predicate, name) {\n // tslint:disable-next-line: deprecation\n return refinement(codec, predicate, name);\n}\nexports.brand = brand;\n/**\n * A branded codec representing an integer\n *\n * @category primitives\n * @since 1.8.1\n */\nexports.Int = brand(exports.number, function (n) { return Number.isInteger(n); }, 'Int');\n/**\n * @since 1.0.0\n */\nvar RecursiveType = /** @class */ (function (_super) {\n __extends(RecursiveType, _super);\n function RecursiveType(name, is, validate, encode, runDefinition) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.runDefinition = runDefinition;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RecursiveType';\n return _this;\n }\n return RecursiveType;\n}(Type));\nexports.RecursiveType = RecursiveType;\nObject.defineProperty(RecursiveType.prototype, 'type', {\n get: function () {\n return this.runDefinition();\n },\n enumerable: true,\n configurable: true\n});\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction recursion(name, definition) {\n var cache;\n var runDefinition = function () {\n if (!cache) {\n cache = definition(Self);\n cache.name = name;\n }\n return cache;\n };\n var Self = new RecursiveType(name, function (u) { return runDefinition().is(u); }, function (u, c) { return runDefinition().validate(u, c); }, function (a) { return runDefinition().encode(a); }, runDefinition);\n return Self;\n}\nexports.recursion = recursion;\n/**\n * @since 1.0.0\n */\nvar ArrayType = /** @class */ (function (_super) {\n __extends(ArrayType, _super);\n function ArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ArrayType';\n return _this;\n }\n return ArrayType;\n}(Type));\nexports.ArrayType = ArrayType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction array(item, name) {\n if (name === void 0) { name = \"Array<\".concat(item.name, \">\"); }\n return new ArrayType(name, function (u) { return exports.UnknownArray.is(u) && u.every(item.is); }, function (u, c) {\n var e = exports.UnknownArray.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var us = e.right;\n var len = us.length;\n var as = us;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var ui = us[i];\n var result = item.validate(ui, appendContext(c, String(i), item, ui));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n var ai = result.right;\n if (ai !== ui) {\n if (as === us) {\n as = us.slice();\n }\n as[i] = ai;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(as);\n }, item.encode === exports.identity ? exports.identity : function (a) { return a.map(item.encode); }, item);\n}\nexports.array = array;\n/**\n * @since 1.0.0\n */\nvar InterfaceType = /** @class */ (function (_super) {\n __extends(InterfaceType, _super);\n function InterfaceType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'InterfaceType';\n return _this;\n }\n return InterfaceType;\n}(Type));\nexports.InterfaceType = InterfaceType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction type(props, name) {\n if (name === void 0) { name = getInterfaceTypeName(props); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new InterfaceType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if ((uk === undefined && !hasOwnProperty.call(u, k)) || !types[i].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_1 = types[i];\n var result = type_1.validate(ak, appendContext(c, k, type_1, ak));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n var vak = result.right;\n if (vak !== ak || (vak === undefined && !hasOwnProperty.call(a, k))) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(a);\n }, useIdentity(types)\n ? exports.identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var encode = types[i].encode;\n if (encode !== exports.identity) {\n s[k] = encode(a[k]);\n }\n }\n return s;\n }, props);\n}\nexports.type = type;\nexports.interface = type;\n/**\n * @since 1.0.0\n */\nvar PartialType = /** @class */ (function (_super) {\n __extends(PartialType, _super);\n function PartialType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'PartialType';\n return _this;\n }\n return PartialType;\n}(Type));\nexports.PartialType = PartialType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction partial(props, name) {\n if (name === void 0) { name = getPartialTypeName(getInterfaceTypeName(props)); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new PartialType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if (uk !== undefined && !props[k].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_2 = props[k];\n var result = type_2.validate(ak, appendContext(c, k, type_2, ak));\n if ((0, Either_1.isLeft)(result)) {\n if (ak !== undefined) {\n pushAll(errors, result.left);\n }\n }\n else {\n var vak = result.right;\n if (vak !== ak) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(a);\n }, useIdentity(types)\n ? exports.identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n if (ak !== undefined) {\n s[k] = types[i].encode(ak);\n }\n }\n return s;\n }, props);\n}\nexports.partial = partial;\n/**\n * @since 1.0.0\n */\nvar DictionaryType = /** @class */ (function (_super) {\n __extends(DictionaryType, _super);\n function DictionaryType(name, is, validate, encode, domain, codomain) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.domain = domain;\n _this.codomain = codomain;\n /**\n * @since 1.0.0\n */\n _this._tag = 'DictionaryType';\n return _this;\n }\n return DictionaryType;\n}(Type));\nexports.DictionaryType = DictionaryType;\n/**\n * @category combinators\n * @since 1.7.1\n */\nfunction record(domain, codomain, name) {\n var keys = getDomainKeys(domain);\n return keys\n ? enumerableRecord(Object.keys(keys), domain, codomain, name)\n : nonEnumerableRecord(domain, codomain, name);\n}\nexports.record = record;\n/**\n * @since 1.0.0\n */\nvar UnionType = /** @class */ (function (_super) {\n __extends(UnionType, _super);\n function UnionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnionType';\n return _this;\n }\n return UnionType;\n}(Type));\nexports.UnionType = UnionType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction union(codecs, name) {\n if (name === void 0) { name = getUnionName(codecs); }\n var index = getIndex(codecs);\n if (index !== undefined && codecs.length > 0) {\n var tag_1 = index[0], groups_1 = index[1];\n var len_1 = groups_1.length;\n var find_1 = function (value) {\n for (var i = 0; i < len_1; i++) {\n if (groups_1[i].indexOf(value) !== -1) {\n return i;\n }\n }\n return undefined;\n };\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n var i = find_1(u[tag_1]);\n return i !== undefined ? codecs[i].is(u) : false;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var r = e.right;\n var i = find_1(r[tag_1]);\n if (i === undefined) {\n return (0, exports.failure)(u, c);\n }\n var codec = codecs[i];\n return codec.validate(r, appendContext(c, String(i), codec, r));\n }, useIdentity(codecs)\n ? exports.identity\n : function (a) {\n var i = find_1(a[tag_1]);\n if (i === undefined) {\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union codec \".concat(name));\n }\n else {\n return codecs[i].encode(a);\n }\n }, codecs, tag_1);\n }\n else {\n return new UnionType(name, function (u) { return codecs.some(function (type) { return type.is(u); }); }, function (u, c) {\n var errors = [];\n for (var i = 0; i < codecs.length; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n return (0, exports.success)(result.right);\n }\n }\n return (0, exports.failures)(errors);\n }, useIdentity(codecs)\n ? exports.identity\n : function (a) {\n for (var _i = 0, codecs_1 = codecs; _i < codecs_1.length; _i++) {\n var codec = codecs_1[_i];\n if (codec.is(a)) {\n return codec.encode(a);\n }\n }\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union type \".concat(name));\n }, codecs);\n }\n}\nexports.union = union;\n/**\n * @since 1.0.0\n */\nvar IntersectionType = /** @class */ (function (_super) {\n __extends(IntersectionType, _super);\n function IntersectionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'IntersectionType';\n return _this;\n }\n return IntersectionType;\n}(Type));\nexports.IntersectionType = IntersectionType;\nfunction intersection(codecs, name) {\n if (name === void 0) { name = \"(\".concat(codecs.map(function (type) { return type.name; }).join(' & '), \")\"); }\n var len = codecs.length;\n return new IntersectionType(name, function (u) { return codecs.every(function (type) { return type.is(u); }); }, codecs.length === 0\n ? exports.success\n : function (u, c) {\n var us = [];\n var errors = [];\n for (var i = 0; i < len; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n us.push(result.right);\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(mergeAll(u, us));\n }, codecs.length === 0\n ? exports.identity\n : function (a) {\n return mergeAll(a, codecs.map(function (codec) { return codec.encode(a); }));\n }, codecs);\n}\nexports.intersection = intersection;\n/**\n * @since 1.0.0\n */\nvar TupleType = /** @class */ (function (_super) {\n __extends(TupleType, _super);\n function TupleType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'TupleType';\n return _this;\n }\n return TupleType;\n}(Type));\nexports.TupleType = TupleType;\nfunction tuple(codecs, name) {\n if (name === void 0) { name = \"[\".concat(codecs.map(function (type) { return type.name; }).join(', '), \"]\"); }\n var len = codecs.length;\n return new TupleType(name, function (u) { return exports.UnknownArray.is(u) && u.length === len && codecs.every(function (type, i) { return type.is(u[i]); }); }, function (u, c) {\n var e = exports.UnknownArray.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var us = e.right;\n var as = us.length > len ? us.slice(0, len) : us; // strip additional components\n var errors = [];\n for (var i = 0; i < len; i++) {\n var a = us[i];\n var type_3 = codecs[i];\n var result = type_3.validate(a, appendContext(c, String(i), type_3, a));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n var va = result.right;\n if (va !== a) {\n /* istanbul ignore next */\n if (as === us) {\n as = us.slice();\n }\n as[i] = va;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(as);\n }, useIdentity(codecs) ? exports.identity : function (a) { return codecs.map(function (type, i) { return type.encode(a[i]); }); }, codecs);\n}\nexports.tuple = tuple;\n/**\n * @since 1.0.0\n */\nvar ReadonlyType = /** @class */ (function (_super) {\n __extends(ReadonlyType, _super);\n function ReadonlyType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyType';\n return _this;\n }\n return ReadonlyType;\n}(Type));\nexports.ReadonlyType = ReadonlyType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction readonly(codec, name) {\n if (name === void 0) { name = \"Readonly<\".concat(codec.name, \">\"); }\n return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);\n}\nexports.readonly = readonly;\n/**\n * @since 1.0.0\n */\nvar ReadonlyArrayType = /** @class */ (function (_super) {\n __extends(ReadonlyArrayType, _super);\n function ReadonlyArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyArrayType';\n return _this;\n }\n return ReadonlyArrayType;\n}(Type));\nexports.ReadonlyArrayType = ReadonlyArrayType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction readonlyArray(item, name) {\n if (name === void 0) { name = \"ReadonlyArray<\".concat(item.name, \">\"); }\n var codec = array(item);\n return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);\n}\nexports.readonlyArray = readonlyArray;\n/**\n * Strips additional properties, equivalent to `exact(type(props))`.\n *\n * @category combinators\n * @since 1.0.0\n */\nvar strict = function (props, name) { return exact(type(props), name); };\nexports.strict = strict;\n/**\n * @since 1.1.0\n */\nvar ExactType = /** @class */ (function (_super) {\n __extends(ExactType, _super);\n function ExactType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ExactType';\n return _this;\n }\n return ExactType;\n}(Type));\nexports.ExactType = ExactType;\n/**\n * Strips additional properties.\n *\n * @category combinators\n * @since 1.1.0\n */\nfunction exact(codec, name) {\n if (name === void 0) { name = getExactTypeName(codec); }\n var props = getProps(codec);\n return new ExactType(name, codec.is, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var ce = codec.validate(u, c);\n if ((0, Either_1.isLeft)(ce)) {\n return ce;\n }\n return (0, Either_1.right)(stripKeys(ce.right, props));\n }, function (a) { return codec.encode(stripKeys(a, props)); }, codec);\n}\nexports.exact = exact;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar FunctionType = /** @class */ (function (_super) {\n __extends(FunctionType, _super);\n function FunctionType() {\n var _this = _super.call(this, 'Function', \n // tslint:disable-next-line:strict-type-predicates\n function (u) { return typeof u === 'function'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'FunctionType';\n return _this;\n }\n return FunctionType;\n}(Type));\nexports.FunctionType = FunctionType;\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.Function = new FunctionType();\n/**\n * @since 1.3.0\n * @deprecated\n */\nvar TaggedUnionType = /** @class */ (function (_super) {\n __extends(TaggedUnionType, _super);\n function TaggedUnionType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, codecs, tag) {\n var _this = _super.call(this, name, is, validate, encode, codecs) /* istanbul ignore next */ // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455\n || this;\n _this.tag = tag;\n return _this;\n }\n return TaggedUnionType;\n}(UnionType));\nexports.TaggedUnionType = TaggedUnionType;\n/**\n * Use `union` instead.\n *\n * @category combinators\n * @since 1.3.0\n * @deprecated\n */\nvar taggedUnion = function (tag, codecs, name\n// tslint:disable-next-line: deprecation\n) {\n if (name === void 0) { name = getUnionName(codecs); }\n var U = union(codecs, name);\n // tslint:disable-next-line: deprecation\n if (U instanceof TaggedUnionType) {\n return U;\n }\n else {\n console.warn(\"[io-ts] Cannot build a tagged union for \".concat(name, \", returning a de-optimized union\"));\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, U.is, U.validate, U.encode, codecs, tag);\n }\n};\nexports.taggedUnion = taggedUnion;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar getValidationError /* istanbul ignore next */ = function (value, context) { return ({\n value: value,\n context: context\n}); };\nexports.getValidationError /* istanbul ignore next */ = getValidationError;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar getDefaultContext /* istanbul ignore next */ = function (decoder) { return [\n { key: '', type: decoder }\n]; };\nexports.getDefaultContext /* istanbul ignore next */ = getDefaultContext;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar NeverType = /** @class */ (function (_super) {\n __extends(NeverType, _super);\n function NeverType() {\n var _this = _super.call(this, 'never', function (_) { return false; }, function (u, c) { return (0, exports.failure)(u, c); }, \n /* istanbul ignore next */\n function () {\n throw new Error('cannot encode never');\n }) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NeverType';\n return _this;\n }\n return NeverType;\n}(Type));\nexports.NeverType = NeverType;\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.never = new NeverType();\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar AnyType = /** @class */ (function (_super) {\n __extends(AnyType, _super);\n function AnyType() {\n var _this = _super.call(this, 'any', function (_) { return true; }, exports.success, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyType';\n return _this;\n }\n return AnyType;\n}(Type));\nexports.AnyType = AnyType;\n/**\n * Use `unknown` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.any = new AnyType();\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\nexports.Dictionary = exports.UnknownRecord;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar ObjectType = /** @class */ (function (_super) {\n __extends(ObjectType, _super);\n function ObjectType() {\n var _this = _super.call(this, 'object', function (u) { return u !== null && typeof u === 'object'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ObjectType';\n return _this;\n }\n return ObjectType;\n}(Type));\nexports.ObjectType = ObjectType;\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.object = new ObjectType();\n/**\n * Use `brand` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\nfunction refinement(codec, predicate, name) {\n if (name === void 0) { name = \"(\".concat(codec.name, \" | \").concat(getFunctionName(predicate), \")\"); }\n return new RefinementType(name, function (u) { return codec.is(u) && predicate(u); }, function (i, c) {\n var e = codec.validate(i, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var a = e.right;\n return predicate(a) ? (0, exports.success)(a) : (0, exports.failure)(a, c);\n }, codec.encode, codec, predicate);\n}\nexports.refinement = refinement;\n/**\n * Use `Int` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.Integer = refinement(exports.number, Number.isInteger, 'Integer');\n/**\n * Use `record` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\nexports.dictionary = record;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar StrictType = /** @class */ (function (_super) {\n __extends(StrictType, _super);\n function StrictType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StrictType';\n return _this;\n }\n return StrictType;\n}(Type));\nexports.StrictType = StrictType;\n/**\n * Drops the codec \"kind\".\n *\n * @category combinators\n * @since 1.1.0\n * @deprecated\n */\nfunction clean(codec) {\n return codec;\n}\nexports.clean = clean;\nfunction alias(codec) {\n return function () { return codec; };\n}\nexports.alias = alias;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.eqDate = exports.eqNumber = exports.eqString = exports.eqBoolean = exports.eq = exports.strictEqual = exports.getStructEq = exports.getTupleEq = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.eqStrict = exports.URI = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0;\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromEquals = function (equals) { return ({\n equals: function (x, y) { return x === y || equals(x, y); }\n}); };\nexports.fromEquals = fromEquals;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar struct = function (eqs) {\n return (0, exports.fromEquals)(function (first, second) {\n for (var key in eqs) {\n if (!eqs[key].equals(first[key], second[key])) {\n return false;\n }\n }\n return true;\n });\n};\nexports.struct = struct;\n/**\n * Given a tuple of `Eq`s returns a `Eq` for the tuple\n *\n * @example\n * import { tuple } from 'fp-ts/Eq'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import * as B from 'fp-ts/boolean'\n *\n * const E = tuple(S.Eq, N.Eq, B.Eq)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true)\n * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var eqs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n eqs[_i] = arguments[_i];\n }\n return (0, exports.fromEquals)(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); });\n};\nexports.tuple = tuple;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for equality (meaning we have an `Eq`)\n *\n * For example, given the following `User` type, we want to construct an `Eq` that just looks at the `key` field\n * for each user (since it's known to be unique).\n *\n * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq`) and we know how to go from `User -> UUID`,\n * using `contramap` we can do this\n *\n * @example\n * import { contramap, Eq } from 'fp-ts/Eq'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/string'\n *\n * type UUID = string\n *\n * interface User {\n * readonly key: UUID\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const eqUUID: Eq = S.Eq\n *\n * const eqUserByKey: Eq = pipe(\n * eqUUID,\n * contramap((user) => user.key)\n * )\n *\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k2', firstName: 'a1', lastName: 'b1' }\n * ),\n * false\n * )\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k1', firstName: 'a2', lastName: 'b1' }\n * ),\n * true\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromEquals)(function (x, y) { return fa.equals(f(x), f(y)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Eq';\n/**\n * @category instances\n * @since 2.5.0\n */\nexports.eqStrict = {\n equals: function (a, b) { return a === b; }\n};\nvar empty = {\n equals: function () { return true; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (x, y) { return (0, exports.fromEquals)(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @category instances\n * @since 2.6.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleEq = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructEq = exports.struct;\n/**\n * Use [`eqStrict`](#eqstrict) instead\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.strictEqual = exports.eqStrict.equals;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq`\n * (where `E` is from `import E from 'fp-ts/Eq'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eq = exports.Contravariant;\n/**\n * Use [`Eq`](./boolean.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqBoolean = exports.eqStrict;\n/**\n * Use [`Eq`](./string.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqString = exports.eqStrict;\n/**\n * Use [`Eq`](./number.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqNumber = exports.eqStrict;\n/**\n * Use [`Eq`](./Date.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqDate = {\n equals: function (first, second) { return first.valueOf() === second.valueOf(); }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ordDate = exports.ordNumber = exports.ordString = exports.ordBoolean = exports.ord = exports.getDualOrd = exports.getTupleOrd = exports.between = exports.clamp = exports.max = exports.min = exports.geq = exports.leq = exports.gt = exports.lt = exports.equals = exports.trivial = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.URI = exports.contramap = exports.reverse = exports.tuple = exports.fromCompare = exports.equalsDefault = void 0;\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// defaults\n// -------------------------------------------------------------------------------------\n/**\n * @category defaults\n * @since 2.10.0\n */\nvar equalsDefault = function (compare) {\n return function (first, second) {\n return first === second || compare(first, second) === 0;\n };\n};\nexports.equalsDefault = equalsDefault;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromCompare = function (compare) { return ({\n equals: (0, exports.equalsDefault)(compare),\n compare: function (first, second) { return (first === second ? 0 : compare(first, second)); }\n}); };\nexports.fromCompare = fromCompare;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Ord'\n * import * as B from 'fp-ts/boolean'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n *\n * const O = tuple(S.Ord, N.Ord, B.Ord)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var ords = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n return (0, exports.fromCompare)(function (first, second) {\n var i = 0;\n for (; i < ords.length - 1; i++) {\n var r = ords[i].compare(first[i], second[i]);\n if (r !== 0) {\n return r;\n }\n }\n return ords[i].compare(first[i], second[i]);\n });\n};\nexports.tuple = tuple;\n/**\n * @since 2.10.0\n */\nvar reverse = function (O) { return (0, exports.fromCompare)(function (first, second) { return O.compare(second, first); }); };\nexports.reverse = reverse;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for ordering (meaning we have an `Ord`)\n *\n * For example, given the following `User` type, there are lots of possible choices for `X`,\n * but let's say we want to sort a list of users by `lastName`.\n *\n * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord`) and we know how to go from `User -> string`,\n * using `contramap` we can do this\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import { contramap, Ord } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const ordLastName: Ord = S.Ord\n *\n * const ordByLastName: Ord = pipe(\n * ordLastName,\n * contramap((user) => user.lastName)\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordByLastName)([\n * { firstName: 'a', lastName: 'd' },\n * { firstName: 'c', lastName: 'b' }\n * ]),\n * [\n * { firstName: 'c', lastName: 'b' },\n * { firstName: 'a', lastName: 'd' }\n * ]\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromCompare)(function (first, second) { return fa.compare(f(first), f(second)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Ord';\n/**\n * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings.\n *\n * For example the following snippet builds an `Ord` for a type `User` which\n * sorts by `created` date descending, and **then** `lastName`\n *\n * @example\n * import * as D from 'fp-ts/Date'\n * import { pipe } from 'fp-ts/function'\n * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly id: string\n * readonly lastName: string\n * readonly created: Date\n * }\n *\n * const ordByLastName: Ord = pipe(\n * S.Ord,\n * contramap((user) => user.lastName)\n * )\n *\n * const ordByCreated: Ord = pipe(\n * D.Ord,\n * contramap((user) => user.created)\n * )\n *\n * const ordUserByCreatedDescThenLastName = getSemigroup().concat(\n * reverse(ordByCreated),\n * ordByLastName\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordUserByCreatedDescThenLastName)([\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }\n * ]),\n * [\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }\n * ]\n * )\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) {\n return (0, exports.fromCompare)(function (a, b) {\n var ox = first.compare(a, b);\n return ox !== 0 ? ox : second.compare(a, b);\n });\n }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` such that:\n *\n * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2`\n * - its `empty` value is an `Ord` that always considers compared elements equal\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import { contramap, reverse, getMonoid } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as B from 'fp-ts/boolean'\n * import { pipe } from 'fp-ts/function'\n * import { concatAll } from 'fp-ts/Monoid'\n * import * as N from 'fp-ts/number'\n *\n * interface User {\n * readonly id: number\n * readonly name: string\n * readonly age: number\n * readonly rememberMe: boolean\n * }\n *\n * const byName = pipe(\n * S.Ord,\n * contramap((p: User) => p.name)\n * )\n *\n * const byAge = pipe(\n * N.Ord,\n * contramap((p: User) => p.age)\n * )\n *\n * const byRememberMe = pipe(\n * B.Ord,\n * contramap((p: User) => p.rememberMe)\n * )\n *\n * const M = getMonoid()\n *\n * const users: Array = [\n * { id: 1, name: 'Guido', age: 47, rememberMe: false },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true }\n * ]\n *\n * // sort by name, then by age, then by `rememberMe`\n * const O1 = concatAll(M)([byName, byAge, byRememberMe])\n * assert.deepStrictEqual(sort(O1)(users), [\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * // now `rememberMe = true` first, then by name, then by age\n * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge])\n * assert.deepStrictEqual(sort(O2)(users), [\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * @category instances\n * @since 2.4.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: (0, exports.fromCompare)(function () { return 0; })\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexports.trivial = {\n equals: function_1.constTrue,\n compare: /*#__PURE__*/ (0, function_1.constant)(0)\n};\n/**\n * @since 2.11.0\n */\nvar equals = function (O) {\n return function (second) {\n return function (first) {\n return first === second || O.compare(first, second) === 0;\n };\n };\n};\nexports.equals = equals;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 2.0.0\n */\nvar lt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === -1;\n };\n};\nexports.lt = lt;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar gt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === 1;\n };\n};\nexports.gt = gt;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 2.0.0\n */\nvar leq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== 1;\n };\n};\nexports.leq = leq;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar geq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== -1;\n };\n};\nexports.geq = geq;\n// TODO: curry in v3\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar min = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) < 1 ? first : second;\n };\n};\nexports.min = min;\n// TODO: curry in v3\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar max = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) > -1 ? first : second;\n };\n};\nexports.max = max;\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 2.0.0\n */\nvar clamp = function (O) {\n var minO = (0, exports.min)(O);\n var maxO = (0, exports.max)(O);\n return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; };\n};\nexports.clamp = clamp;\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 2.0.0\n */\nvar between = function (O) {\n var ltO = (0, exports.lt)(O);\n var gtO = (0, exports.gt)(O);\n return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; };\n};\nexports.between = between;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleOrd = exports.tuple;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualOrd = exports.reverse;\n/**\n * Use [`Contravariant`](#contravariant) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ord = exports.Contravariant;\n// default compare for primitive types\nfunction compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n}\nvar strictOrd = {\n equals: Eq_1.eqStrict.equals,\n compare: compare\n};\n/**\n * Use [`Ord`](./boolean.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordBoolean = strictOrd;\n/**\n * Use [`Ord`](./string.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordString = strictOrd;\n/**\n * Use [`Ord`](./number.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordNumber = strictOrd;\n/**\n * Use [`Ord`](./Date.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordDate = (0, function_1.pipe)(exports.ordNumber, \n/*#__PURE__*/\n(0, exports.contramap)(function (date) { return date.valueOf(); }));\n", "\"use strict\";\n/**\n * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A`\n *\n * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances.\n *\n * @since 2.0.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatAll = exports.endo = exports.filterSecond = exports.filterFirst = exports.reverse = void 0;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Magma`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse, concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(reverse(N.MagmaSub))(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), 2)\n *\n * @since 2.11.0\n */\nvar reverse = function (M) { return ({\n concat: function (first, second) { return M.concat(second, first); }\n}); };\nexports.reverse = reverse;\n/**\n * @since 2.11.0\n */\nvar filterFirst = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(first) ? M.concat(first, second) : second); }\n }); };\n};\nexports.filterFirst = filterFirst;\n/**\n * @since 2.11.0\n */\nvar filterSecond = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(second) ? M.concat(first, second) : first); }\n }); };\n};\nexports.filterSecond = filterSecond;\n/**\n * @since 2.11.0\n */\nvar endo = function (f) {\n return function (M) { return ({\n concat: function (first, second) { return M.concat(f(first), f(second)); }\n }); };\n};\nexports.endo = endo;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(N.MagmaSub)(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), -6)\n *\n * @since 2.11.0\n */\nvar concatAll = function (M) {\n return function (startWith) {\n return function (as) {\n return as.reduce(function (a, acc) { return M.concat(a, acc); }, startWith);\n };\n };\n};\nexports.concatAll = concatAll;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semigroupProduct = exports.semigroupSum = exports.semigroupString = exports.getFunctionSemigroup = exports.semigroupAny = exports.semigroupAll = exports.fold = exports.getIntercalateSemigroup = exports.getMeetSemigroup = exports.getJoinSemigroup = exports.getDualSemigroup = exports.getStructSemigroup = exports.getTupleSemigroup = exports.getFirstSemigroup = exports.getLastSemigroup = exports.getObjectSemigroup = exports.semigroupVoid = exports.concatAll = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0;\n/**\n * If a type `A` can form a `Semigroup` it has an **associative** binary operation.\n *\n * ```ts\n * interface Semigroup {\n * readonly concat: (x: A, y: A) => A\n * }\n * ```\n *\n * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`.\n *\n * ```ts\n * concat(x, concat(y, z)) = concat(concat(x, y), z)\n * ```\n *\n * A common example of a semigroup is the type `string` with the operation `+`.\n *\n * ```ts\n * import { Semigroup } from 'fp-ts/Semigroup'\n *\n * const semigroupString: Semigroup = {\n * concat: (x, y) => x + y\n * }\n *\n * const x = 'x'\n * const y = 'y'\n * const z = 'z'\n *\n * semigroupString.concat(x, y) // 'xy'\n *\n * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz'\n *\n * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz'\n * ```\n *\n * *Adapted from https://typelevel.org/cats*\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nvar M = __importStar(require(\"./Magma\"));\nvar Or = __importStar(require(\"./Ord\"));\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Get a semigroup where `concat` will return the minimum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.min(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 1)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar min = function (O) { return ({\n concat: Or.min(O)\n}); };\nexports.min = min;\n/**\n * Get a semigroup where `concat` will return the maximum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.max(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 2)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar max = function (O) { return ({\n concat: Or.max(O)\n}); };\nexports.max = max;\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar constant = function (a) { return ({\n concat: function () { return a; }\n}); };\nexports.constant = constant;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba')\n *\n * @since 2.10.0\n */\nexports.reverse = M.reverse;\n/**\n * Given a struct of semigroups returns a semigroup for the struct.\n *\n * @example\n * import { struct } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * interface Point {\n * readonly x: number\n * readonly y: number\n * }\n *\n * const S = struct({\n * x: N.SemigroupSum,\n * y: N.SemigroupSum\n * })\n *\n * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 })\n *\n * @since 2.10.0\n */\nvar struct = function (semigroups) { return ({\n concat: function (first, second) {\n var r = {};\n for (var k in semigroups) {\n if (_.has.call(semigroups, k)) {\n r[k] = semigroups[k].concat(first[k], second[k]);\n }\n }\n return r;\n }\n}); };\nexports.struct = struct;\n/**\n * Given a tuple of semigroups returns a semigroup for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Semigroup'\n * import * as B from 'fp-ts/boolean'\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/string'\n *\n * const S1 = tuple(S.Semigroup, N.SemigroupSum)\n * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll)\n * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var semigroups = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n semigroups[_i] = arguments[_i];\n }\n return ({\n concat: function (first, second) { return semigroups.map(function (s, i) { return s.concat(first[i], second[i]); }); }\n });\n};\nexports.tuple = tuple;\n/**\n * Between each pair of elements insert `middle`.\n *\n * @example\n * import { intercalate } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * const S1 = pipe(S.Semigroup, intercalate(' + '))\n *\n * assert.strictEqual(S1.concat('a', 'b'), 'a + b')\n *\n * @since 2.10.0\n */\nvar intercalate = function (middle) {\n return function (S) { return ({\n concat: function (x, y) { return S.concat(x, S.concat(middle, y)); }\n }); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * Always return the first argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.first().concat(1, 2), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nvar first = function () { return ({ concat: function_1.identity }); };\nexports.first = first;\n/**\n * Always return the last argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.last().concat(1, 2), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nvar last = function () { return ({ concat: function (_, y) { return y; } }); };\nexports.last = last;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * const sum = concatAll(N.SemigroupSum)(0)\n *\n * assert.deepStrictEqual(sum([1, 2, 3]), 6)\n * assert.deepStrictEqual(sum([]), 0)\n *\n * @since 2.10.0\n */\nexports.concatAll = M.concatAll;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `void` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupVoid = (0, exports.constant)(undefined);\n/**\n * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getObjectSemigroup = function () { return ({\n concat: function (first, second) { return Object.assign({}, first, second); }\n}); };\nexports.getObjectSemigroup = getObjectSemigroup;\n/**\n * Use [`last`](#last) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getLastSemigroup = exports.last;\n/**\n * Use [`first`](#first) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFirstSemigroup = exports.first;\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleSemigroup = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructSemigroup = exports.struct;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualSemigroup = exports.reverse;\n/**\n * Use [`max`](#max) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getJoinSemigroup = exports.max;\n/**\n * Use [`min`](#min) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getMeetSemigroup = exports.min;\n/**\n * Use [`intercalate`](#intercalate) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.getIntercalateSemigroup = exports.intercalate;\nfunction fold(S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (startWith, as) { return (as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as)); };\n}\nexports.fold = fold;\n/**\n * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAll = {\n concat: function (x, y) { return x && y; }\n};\n/**\n * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAny = {\n concat: function (x, y) { return x || y; }\n};\n/**\n * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFunctionSemigroup = function_1.getSemigroup;\n/**\n * Use [`Semigroup`](./string.ts.html#Semigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupString = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupSum = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupProduct = {\n concat: function (x, y) { return x * y; }\n};\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reduceRight = exports.foldMap = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.chain = exports.ap = exports.alt = exports.altW = exports.of = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.modifyAt = exports.updateAt = exports.sort = exports.groupBy = exports.group = exports.reverse = exports.concat = exports.concatW = exports.fromArray = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromReadonlyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = exports.empty = void 0;\nexports.filter = exports.groupSort = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = void 0;\nexports.readonlyNonEmptyArray = exports.fold = exports.prependToAll = exports.insertAt = exports.snoc = exports.cons = exports.unsnoc = exports.uncons = exports.filterWithIndex = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar Se = __importStar(require(\"./Semigroup\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nexports.empty = _.emptyReadonlyArray;\n/**\n * @internal\n */\nexports.isNonEmpty = _.isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n if (as[i] === a) {\n return as;\n }\n else {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs[i] = a;\n return xs;\n }\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return as;\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = RNEA.sortBy([byName, byAge])\n *\n * const persons: RNEA.ReadonlyNonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return function_1.identity;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `ReadonlyNonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return as;\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty.\n *\n * @category conversions\n * @since 2.5.0\n */\nvar fromReadonlyArray = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(as) : _.none;\n};\nexports.fromReadonlyArray = fromReadonlyArray;\n/**\n * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return (0, exports.fromReadonlyArray)(as.slice()); };\nexports.fromArray = fromArray;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nexports.concatW = concatW;\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\nexports.concat = concat;\n/**\n * @since 2.5.0\n */\nvar reverse = function (as) {\n return as.length === 1 ? as : __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true);\n};\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return exports.empty;\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\nexports.group = group;\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.5.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length === 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : as;\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = _.fromReadonlyNonEmptyArray(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for \"chopping\" up the input\n * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a\n * value and the tail of the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [as, exports.empty] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = _.singleton;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray,\n * RNEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (as) { return (0, exports.chain)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); }); };\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.chain((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nvar chain = function (f) { return (0, exports.chainWithIndex)(function (_, a) { return f(a); }); };\nexports.chain = chain;\n/**\n * @since 2.5.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = \n/*#__PURE__*/ (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = \n/*#__PURE__*/ (0, exports.chain)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) {\n return (0, exports.mapWithIndex)(function (_, a) { return f(a); });\n};\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a) { return S.concat(s, f(a)); }, f(as[0]));\n };\n };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) {\n return function (as) {\n return as.reduce(function (b, a, i) { return f(i, b, a); }, b);\n };\n};\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a, i) { return S.concat(s, f(i + 1, a)); }, f(0, as[0]));\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) {\n return function (as) {\n return as.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n };\n};\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function_1.SK); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category Comonad\n * @since 2.6.3\n */\nexports.extract = _.head;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyNonEmptyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray`\n *\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.5.0\n */\nexports.head = exports.extract;\n/**\n * @since 2.5.0\n */\nexports.tail = _.tail;\n/**\n * @since 2.5.0\n */\nvar last = function (as) { return as[as.length - 1]; };\nexports.last = last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.5.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.5.0\n */\nvar min = function (O) {\n var S = Se.min(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.min = min;\n/**\n * @since 2.5.0\n */\nvar max = function (O) {\n var S = Se.max(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.max = max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (middle) { return (0, function_1.flow)((0, exports.intersperse)(middle), concatAllS); };\n};\nexports.intercalate = intercalate;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : exports.empty); };\n}\nexports.groupSort = groupSort;\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\nexports.filter = filter;\n/**\n * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromReadonlyArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\nexports.cons = cons;\n/**\n * Use [`append`](./ReadonlyArray.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, concat([end])); };\nexports.snoc = snoc;\n/**\n * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = exports.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray`\n * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyNonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: _chain,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.chain = exports.ap = exports.alt = exports.altW = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.foldMap = exports.foldMapWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.of = exports.copy = exports.modifyAt = exports.updateAt = exports.insertAt = exports.sort = exports.groupBy = exports.group = exports.reverse = exports.concat = exports.concatW = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromArray = exports.fromReadonlyNonEmptyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = void 0;\nexports.groupSort = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = void 0;\nexports.nonEmptyArray = exports.fold = exports.prependToAll = exports.snoc = exports.cons = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.filter = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nvar isNonEmpty = function (as) { return as.length > 0; };\nexports.isNonEmpty = isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = (0, exports.fromReadonlyNonEmptyArray)(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n var xs = (0, exports.fromReadonlyNonEmptyArray)(as);\n xs[i] = a;\n return xs;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return (0, exports.copy)(as);\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = NEA.sortBy([byName, byAge])\n *\n * const persons: NEA.NonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return exports.copy;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `NonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return (0, exports.copy)(as);\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.fromReadonlyNonEmptyArray = _.fromReadonlyNonEmptyArray;\n/**\n * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromArray = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(as) : _.none); };\nexports.fromArray = fromArray;\n/**\n * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `NonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `NonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nexports.concatW = concatW;\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\nexports.concat = concat;\n/**\n * @since 2.0.0\n */\nvar reverse = function (as) { return __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true); };\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return [];\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\nexports.group = group;\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.0.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.0.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.0.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * @since 2.0.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.0.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.0.0\n */\nexports.copy = exports.fromReadonlyNonEmptyArray;\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar of = function (a) { return [a]; };\nexports.of = of;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : (0, exports.copy)(as);\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.foldMapWithIndex = RNEA.foldMapWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.foldMap = RNEA.foldMap;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = (0, exports.fromReadonlyNonEmptyArray)(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [(0, exports.copy)(as), []] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\n/* istanbul ignore next */\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as NEA.NonEmptyArray,\n * NEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `NonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * NEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @since 2.0.0\n */\nvar ap = function (as) {\n return (0, exports.chain)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * NEA.chain((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.0.0\n */\nvar chain = function (f) {\n return (0, exports.chainWithIndex)(function (_, a) { return f(a); });\n};\nexports.chain = chain;\n/**\n * @since 2.0.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.chain)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return (0, exports.mapWithIndex)(function (_, a) { return f(a); }); };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduce = RNEA.reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceWithIndex = RNEA.reduceWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRight = RNEA.reduceRight;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRightWithIndex = RNEA.reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function (_, a) { return a; }); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @since 2.7.0\n */\nexports.extract = RNEA.head;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'NonEmptyArray';\n/**\n * @category instances\n * @since 2.0.0\n */\nexports.getShow = RNEA.getShow;\n/**\n * Builds a `Semigroup` instance for `NonEmptyArray`\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RNEA.getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.0.0\n */\nexports.head = RNEA.head;\n/**\n * @since 2.0.0\n */\nvar tail = function (as) { return as.slice(1); };\nexports.tail = tail;\n/**\n * @since 2.0.0\n */\nexports.last = RNEA.last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.2.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.0.0\n */\nexports.min = RNEA.min;\n/**\n * @since 2.0.0\n */\nexports.max = RNEA.max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break an `Array` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break an `Array` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexports.intercalate = RNEA.intercalate;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : []); };\n}\nexports.groupSort = groupSort;\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\nexports.filter = filter;\n/**\n * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\nexports.cons = cons;\n/**\n * Use [`append`](./Array.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, (0, exports.append)(end)); };\nexports.snoc = snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = RNEA.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray`\n * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.nonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: _chain,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Field = exports.MonoidProduct = exports.MonoidSum = exports.SemigroupProduct = exports.SemigroupSum = exports.MagmaSub = exports.Show = exports.Bounded = exports.Ord = exports.Eq = exports.isNumber = void 0;\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @category refinements\n * @since 2.11.0\n */\nvar isNumber = function (u) { return typeof u === 'number'; };\nexports.isNumber = isNumber;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Ord = {\n equals: exports.Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bounded = {\n equals: exports.Eq.equals,\n compare: exports.Ord.compare,\n top: Infinity,\n bottom: -Infinity\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Show = {\n show: function (n) { return JSON.stringify(n); }\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.MagmaSub = {\n concat: function (first, second) { return first - second; }\n};\n/**\n * `number` semigroup under addition.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupSum = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * `number` semigroup under multiplication.\n *\n * @example\n * import { SemigroupProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupProduct = {\n concat: function (first, second) { return first * second; }\n};\n/**\n * `number` monoid under addition.\n *\n * The `empty` value is `0`.\n *\n * @example\n * import { MonoidSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidSum = {\n concat: exports.SemigroupSum.concat,\n empty: 0\n};\n/**\n * `number` monoid under multiplication.\n *\n * The `empty` value is `1`.\n *\n * @example\n * import { MonoidProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidProduct = {\n concat: exports.SemigroupProduct.concat,\n empty: 1\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Field = {\n add: exports.SemigroupSum.concat,\n zero: 0,\n mul: exports.SemigroupProduct.concat,\n one: 1,\n sub: exports.MagmaSub.concat,\n degree: function (_) { return 1; },\n div: function (first, second) { return first / second; },\n mod: function (first, second) { return first % second; }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.guard = void 0;\nfunction guard(F, P) {\n return function (b) { return (b ? P.of(undefined) : F.zero()); };\n}\nexports.guard = guard;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sort = exports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.foldMap = exports.reduce = exports.foldMapWithIndex = exports.duplicate = exports.extend = exports.filterWithIndex = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.filter = exports.separate = exports.mapWithIndex = exports.map = exports.flatten = exports.chain = exports.ap = exports.alt = exports.altW = exports.zero = exports.of = exports._chainRecBreadthFirst = exports._chainRecDepthFirst = exports.difference = exports.intersection = exports.union = exports.concat = exports.concatW = exports.comprehension = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = void 0;\nexports.toArray = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.Witherable = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = void 0;\nexports.readonlyArray = exports.prependToAll = exports.snoc = exports.cons = exports.range = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = exports.some = exports.every = exports.empty = exports.fromArray = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar N = __importStar(require(\"./number\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `ReadonlyArray` is empty.\n *\n * @example\n * import { isEmpty } from 'fp-ts/ReadonlyArray'\n *\n * assert.strictEqual(isEmpty([]), true)\n *\n * @category refinements\n * @since 2.5.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether a `ReadonlyArray` is non empty.\n *\n * @category refinements\n * @since 2.5.0\n */\nexports.isNonEmpty = RNEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = RNEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @since 2.11.0\n */\nexports.prependW = RNEA.prependW;\n/**\n * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = RNEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @since 2.11.0\n */\nexports.appendW = RNEA.appendW;\n/**\n * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyArray'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? exports.empty : RNEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : exports.empty); };\n}\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? exports.empty : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Transforms an `Either` to a `ReadonlyArray`.\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? exports.empty : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/ReadonlyArray'\n *\n * const len: (as: ReadonlyArray) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n if ((0, exports.isEmpty)(as)) {\n return exports.empty;\n }\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps.\n *\n * @example\n * import { scanLeft } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.5.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.5.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `ReadonlyArray`.\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @since 2.5.0\n */\nexports.isOutOfBound = RNEA.isOutOfBound;\nfunction lookup(i, as) {\n return as === undefined ? function (as) { return lookup(i, as); } : (0, exports.isOutOfBound)(i, as) ? _.none : _.some(as[i]);\n}\nexports.lookup = lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.5.0\n */\nvar head = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.head(as)) : _.none); };\nexports.head = head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.5.0\n */\nvar last = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.last(as)) : _.none); };\nexports.last = last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.5.0\n */\nvar tail = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.tail(as)) : _.none;\n};\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.5.0\n */\nvar init = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.init(as)) : _.none;\n};\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeLeft(4)), input)\n * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeRight(4)), input)\n * assert.strictEqual(pipe(input, RA.takeRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n var len = out.length;\n return len === as.length ? as : len === 0 ? exports.empty : out;\n };\n}\nexports.takeLeftWhile = takeLeftWhile;\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\nexports.spanLeft = spanLeft;\n/**\n * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3])\n * assert.strictEqual(pipe(input, RA.dropLeft(0)), input)\n * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1])\n * assert.strictEqual(pipe(input, RA.dropRight(0)), input)\n * assert.strictEqual(pipe(input, RA.dropRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) {\n var i = spanLeftIndex(as, predicate);\n return i === 0 ? as : i === as.length ? exports.empty : as.slice(i);\n };\n}\nexports.dropLeftWhile = dropLeftWhile;\n/**\n * Find the first index for which a predicate holds\n *\n * @example\n * import { findIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.5.0\n */\nvar findIndex = function (predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findIndex = findIndex;\nfunction findFirst(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\nexports.findFirst = findFirst;\n/**\n * Find the first element returned by an option based selector function\n *\n * @example\n * import { findFirstMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the first person that has an age\n * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary'))\n *\n * @since 2.5.0\n */\nvar findFirstMap = function (f) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findFirstMap = findFirstMap;\nfunction findLast(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\nexports.findLast = findLast;\n/**\n * Find the last element returned by an option based selector function\n *\n * @example\n * import { findLastMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the last person that has an age\n * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey'))\n *\n * @since 2.5.0\n */\nvar findLastMap = function (f) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findLastMap = findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate\n *\n * @example\n * import { findLastIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: ReadonlyArray = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n *\n * @since 2.5.0\n */\nvar findLastIndex = function (predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findLastIndex = findLastIndex;\n/**\n * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { insertAt } from 'fp-ts/ReadonlyArray'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.5.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { deleteAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.5.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.5.0\n */\nvar reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order\n *\n * @example\n * import { rights } from 'fp-ts/ReadonlyArray'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.5.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order\n *\n * @example\n * import { lefts } from 'fp-ts/ReadonlyArray'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.5.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n// TODO: curry and make data-last in v3\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.5.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.5.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = RNEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = RNEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.intersperse = intersperse;\n/**\n * Rotate a `ReadonlyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.5.0\n */\nvar rotate = function (n) {\n var f = RNEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.rotate = rotate;\nfunction elem(E) {\n return function (a, as) {\n if (as === undefined) {\n var elemE_1 = elem(E);\n return function (as) { return elemE_1(a, as); };\n }\n var predicate = function (element) { return E.equals(element, a); };\n var i = 0;\n for (; i < as.length; i++) {\n if (predicate(as[i])) {\n return true;\n }\n }\n return false;\n };\n}\nexports.elem = elem;\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.5.0\n */\nvar uniq = function (E) {\n var f = RNEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/ReadonlyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.5.0\n */\nvar sortBy = function (ords) {\n var f = RNEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for \"chopping\" up the input\n * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a\n * value and the tail of the `ReadonlyArray`.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: ReadonlyArray) => ReadonlyArray>) => {\n * return RA.chop(as => {\n * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.5.0\n */\nvar chop = function (f) {\n var g = RNEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : exports.empty); };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.5.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? RNEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [as, exports.empty] : [exports.empty, as];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that:\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `as`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.5.0\n */\nvar chunksOf = function (n) {\n var f = RNEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : exports.empty); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, function_1.pipe)(RNEA.head(input), (0, exports.chain)(function (x) { return go((0, function_1.pipe)(scope, (0, exports.append)(x)), RNEA.tail(input)); }))\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : exports.empty;\n };\n return go(exports.empty, input);\n}\nexports.comprehension = comprehension;\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = RNEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second) ? unionE(second)(first) : (0, exports.isNonEmpty)(first) ? first : second;\n };\n}\nexports.union = union;\nfunction intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexports.intersection = intersection;\nfunction difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nexports.difference = difference;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\nvar _filter = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.filter)(predicate));\n};\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/** @internal */\nvar _chainRecDepthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecDepthFirst)(f)); };\nexports._chainRecDepthFirst = _chainRecDepthFirst;\n/** @internal */\nvar _chainRecBreadthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecBreadthFirst)(f)); };\nexports._chainRecBreadthFirst = _chainRecBreadthFirst;\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = RNEA.of;\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.empty; };\nexports.zero = zero;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.5.0\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (fa) {\n return (0, exports.chain)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chain((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chain(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nvar chain = function (f) { return function (ma) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (_, a) { return f(a); }));\n}; };\nexports.chain = chain;\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.chain)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) { return function (fa) {\n return fa.map(function (a) { return f(a); });\n}; };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (predicateWithIndex(i, a)) {\n right.push(a);\n }\n else {\n left.push(a);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMap = function (f) {\n return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.partitionMap = partitionMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (a, i) { return predicateWithIndex(i, a); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * @since 2.5.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (M) {\n return function (f) {\n return function (fa) {\n return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty);\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) { return function (fa) {\n var len = fa.length;\n var out = b;\n for (var i = 0; i < len; i++) {\n out = f(i, out, fa[i]);\n }\n return out;\n}; };\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, a, b) { return f(a, b); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) { return function (fa) {\n return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n}; };\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return ((0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second)); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `ReadonlyArray`.\n *\n * @example\n * import { getMonoid } from 'fp-ts/ReadonlyArray'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.5.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: exports.empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/ReadonlyArray'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n *\n * @category instances\n * @since 2.5.0\n */\nvar getOrd = function (O) {\n return (0, Ord_1.fromCompare)(function (a, b) {\n var aLen = a.length;\n var bLen = b.length;\n var len = Math.min(aLen, bLen);\n for (var i = 0; i < len; i++) {\n var ordering = O.compare(a[i], b[i]);\n if (ordering !== 0) {\n return ordering;\n }\n }\n return N.Ord.compare(aLen, bLen);\n });\n};\nexports.getOrd = getOrd;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: exports.empty\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecDepthFirst = function (f) {\n return function (a) {\n var todo = __spreadArray([], f(a), true);\n var out = [];\n while (todo.length > 0) {\n var e = todo.shift();\n if (_.isLeft(e)) {\n todo.unshift.apply(todo, f(e.left));\n }\n else {\n out.push(e.right);\n }\n }\n return out;\n };\n};\nexports.chainRecDepthFirst = chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: exports._chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecBreadthFirst = function (f) {\n return function (a) {\n var initial = f(a);\n var todo = [];\n var out = [];\n function go(e) {\n if (_.isLeft(e)) {\n f(e.left).forEach(function (v) { return todo.push(v); });\n }\n else {\n out.push(e.right);\n }\n }\n for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) {\n var e = initial_1[_i];\n go(e);\n }\n while (todo.length > 0) {\n go(todo.shift());\n }\n return out;\n };\n};\nexports.chainRecBreadthFirst = chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: exports._chainRecBreadthFirst\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Filter values inside a context.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as T from 'fp-ts/Task'\n *\n * const filterE = RA.filterE(T.ApplicativePar)\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * [-1, 2, 3],\n * filterE((n) => T.of(n > 0))\n * )(),\n * [2, 3]\n * )\n * }\n * test()\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexports.unsafeInsertAt = RNEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? RNEA.unsafeUpdateAt(i, a, as) : as;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar toArray = function (as) { return as.slice(); };\nexports.toArray = toArray;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return ((0, exports.isEmpty)(as) ? exports.empty : as.slice()); };\nexports.fromArray = fromArray;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * An empty array\n *\n * @since 2.5.0\n */\nexports.empty = RNEA.empty;\nfunction every(predicate) {\n return function (as) { return as.every(predicate); };\n}\nexports.every = every;\n/**\n * Check if a predicate holds true for any array member.\n *\n * @example\n * import { some } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true)\n * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false)\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (M) {\n var intercalateM = RNEA.intercalate(M);\n return function (middle) { return (0, exports.match)(function () { return M.empty; }, intercalateM(middle)); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `ReadonlyNonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.range = RNEA.range;\n/**\n * Use [`prepend`](#prepend) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.cons = RNEA.cons;\n/**\n * Use [`append`](#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.snoc = RNEA.snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray`\n * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyArray = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.copy = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.foldMapWithIndex = exports.foldMap = exports.duplicate = exports.extend = exports.filterWithIndex = exports.alt = exports.altW = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.filter = exports.separate = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.mapWithIndex = exports.flatten = exports.chain = exports.ap = exports.map = exports.zero = exports.of = exports.difference = exports.intersection = exports.union = exports.concat = exports.concatW = exports.comprehension = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.sort = void 0;\nexports.some = exports.every = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = void 0;\nexports.array = exports.prependToAll = exports.snoc = exports.cons = exports.empty = exports.range = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar NEA = __importStar(require(\"./NonEmptyArray\"));\nvar RA = __importStar(require(\"./ReadonlyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether an array is empty\n *\n * @example\n * import { isEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isEmpty([]), true)\n * assert.strictEqual(isEmpty(['a']), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether an array is non empty narrowing down the type to `NonEmptyArray`\n *\n * @example\n * import { isNonEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isNonEmpty([]), false)\n * assert.strictEqual(isNonEmpty(['a']), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isNonEmpty = NEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = NEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @example\n * import { prependW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prependW(\"a\")), [\"a\", 2, 3, 4]);\n *\n * @since 2.11.0\n */\nexports.prependW = NEA.prependW;\n/**\n * Append an element to the end of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = NEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @example\n * import { appendW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], appendW(\"d\")), [1, 2, 3, \"d\"]);\n *\n * @since 2.11.0\n */\nexports.appendW = NEA.appendW;\n/**\n * Return a `Array` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/Array'\n *\n * const double = (i: number): number => i * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n * assert.deepStrictEqual(makeBy(-3, double), [])\n * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])\n *\n * @category constructors\n * @since 2.0.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `Array` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n * assert.deepStrictEqual(replicate(-3, 'a'), [])\n * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])\n *\n * @category constructors\n * @since 2.0.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : []); };\n}\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * Create an array from an `Option`. The resulting array will contain the content of the\n * `Option` if it is `Some` and it will be empty if the `Option` is `None`.\n *\n * @example\n * import { fromOption } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(option.some(\"a\"), fromOption),[\"a\"])\n * assert.deepStrictEqual(pipe(option.none, fromOption),[])\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Create an array from an `Either`. The resulting array will contain the content of the\n * `Either` if it is `Right` and it will be empty if the `Either` is `Left`.\n *\n * @example\n * import { fromEither } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(either.right(\"r\"), fromEither), [\"r\"]);\n * assert.deepStrictEqual(pipe(either.left(\"l\"), fromEither), []);\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @example\n * import { matchW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcherW = matchW(\n * () => \"No elements\",\n * (as) => as.length\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);\n * assert.deepStrictEqual(pipe([], matcherW), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` and returns the result.\n *\n * @example\n * import { match } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcher = match(\n * () => \"No elements\",\n * (as) => `Found ${as.length} element(s)`\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), \"Found 4 element(s)\");\n * assert.deepStrictEqual(pipe([], matcher), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchLeftW } from 'fp-ts/Array'\n *\n * const f = matchLeftW(\n * () => 0,\n * (head: string, tail: string[]) => `Found \"${head}\" followed by ${tail.length} elements`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found \"a\" followed by 2 elements');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/Array'\n *\n * const len: (as: Array) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchRightW } from 'fp-ts/Array'\n *\n * const f = matchRightW(\n * () => 0,\n * (head: string[], tail: string) => `Found ${head.length} elements folllowed by \"${tail}\"`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found 2 elements folllowed by \"c\"');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its initial elements and the last element.\n *\n * @example\n * import { matchRight } from 'fp-ts/Array'\n *\n * const len: (as: Array) => number = matchRight(\n * () => 0,\n * (head, _) => 1 + len(head)\n * );\n * assert.strictEqual(len([1, 2, 3]), 3);\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Same as [`chain`](#chain), but passing also the index to the iterating function.\n *\n * @example\n * import { chainWithIndex, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (index: number, x: string) => replicate(2, `${x}${index}`);\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], chainWithIndex(f)), [\"a0\", \"a0\", \"b1\", \"b1\", \"c2\", \"c2\"]);\n *\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps\n *\n * @example\n * import { scanLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.0.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.0.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `Array`.\n *\n * @example\n * import { size } from 'fp-ts/Array'\n *\n * assert.strictEqual(size([\"a\",\"b\",\"c\"]),3)\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @example\n * import { isOutOfBound } from 'fp-ts/Array'\n *\n * assert.strictEqual(isOutOfBound(1,[\"a\",\"b\",\"c\"]),false)\n * assert.strictEqual(isOutOfBound(-1,[\"a\",\"b\",\"c\"]),true)\n * assert.strictEqual(isOutOfBound(3,[\"a\",\"b\",\"c\"]),true)\n *\n * @since 2.0.0\n */\nexports.isOutOfBound = NEA.isOutOfBound;\n// TODO: remove non-curried overloading in v3\n/**\n * This function provides a safe way to read a value at a particular index from an array.\n * It returns a `none` if the index is out of bounds, and a `some` of the element if the\n * index is valid.\n *\n * @example\n * import { lookup } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)\n *\n * @since 2.0.0\n */\nexports.lookup = RA.lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.0.0\n */\nexports.head = RA.head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.0.0\n */\nexports.last = RA.last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.0.0\n */\nvar tail = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.tail(as)) : _.none); };\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.0.0\n */\nvar init = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.init(as)) : _.none); };\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);\n * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);\n * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : n === 0 ? [] : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n return out;\n };\n}\nexports.takeLeftWhile = takeLeftWhile;\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\nexports.spanLeft = spanLeft;\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);\n * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);\n * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) { return as.slice(spanLeftIndex(as, predicate)); };\n}\nexports.dropLeftWhile = dropLeftWhile;\n/**\n * `findIndex` returns an `Option` containing the first index for which a predicate holds.\n * It returns `None` if no element satisfies the predicate.\n * Similar to [`findFirst`](#findFirst) but returning the index instead of the element.\n *\n * @example\n * import { findIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.0.0\n */\nexports.findIndex = RA.findIndex;\nfunction findFirst(predicate) {\n return RA.findFirst(predicate);\n}\nexports.findFirst = findFirst;\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array and\n * returns the first `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findFirstMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some(\"Mary\"));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexports.findFirstMap = RA.findFirstMap;\nfunction findLast(predicate) {\n return RA.findLast(predicate);\n}\nexports.findLast = findLast;\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array starting from the\n * end and returns the last `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findLastMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some(\"Joey\"));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexports.findLastMap = RA.findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate.\n * It returns an `Option` containing the index or `None` if not found.\n *\n * @example\n * import { findLastIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: Array = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n * @since 2.0.0\n */\nexports.findLastIndex = RA.findLastIndex;\n/**\n * This function takes an array and makes a new array containing the same elements.\n *\n * @since 2.0.0\n */\nvar copy = function (as) { return as.slice(); };\nexports.copy = copy;\n/**\n * Insert an element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { insertAt } from 'fp-ts/Array'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.0.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { updateAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.0.0\n */\nvar updateAt = function (i, a) { return (0, exports.modifyAt)(i, function () { return a; }); };\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.\n *\n * @example\n * import { deleteAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.0.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds.\n *\n * @example\n * import { modifyAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.0.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.0.0\n */\nvar reverse = function (as) { return ((0, exports.isEmpty)(as) ? [] : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Right` elements in the same order.\n *\n * @example\n * import { rights } from 'fp-ts/Array'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.0.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Left` elements in the same order.\n *\n * @example\n * import { lefts } from 'fp-ts/Array'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.0.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.0.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? (0, exports.copy)(as) : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.0.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.0.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Creates a new `Array`, prepending an element to every member of the input `Array`.\n *\n * @example\n * import { prependAll } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = NEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); };\n};\nexports.prependAll = prependAll;\n/**\n * Creates a new `Array` placing an element in between members of the input `Array`.\n *\n * @example\n * import { intersperse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = NEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.intersperse = intersperse;\n/**\n * Creates a new `Array` rotating the input `Array` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.0.0\n */\nvar rotate = function (n) {\n var f = NEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.rotate = rotate;\n// TODO: remove non-curried overloading in v3\n/**\n * Test if a value is a member of an `Array`. Takes a `Eq` as a single\n * argument which returns the function to use to search for a value of type `A` in\n * an `Array`.\n *\n * @example\n * import { elem } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)\n *\n * @since 2.0.0\n */\nexports.elem = RA.elem;\n/**\n * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,\n * based on a `Eq`.\n *\n * @example\n * import { uniq } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.0.0\n */\nvar uniq = function (E) {\n var f = NEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/Array'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.0.0\n */\nvar sortBy = function (ords) {\n var f = NEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing an array to produce a new array, often used for \"chopping\" up the input\n * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a\n * value and the rest of the array.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as A from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: Array) => Array>) => {\n * return A.chop(as => {\n * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.0.0\n */\nvar chop = function (f) {\n var g = NEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : []); };\n};\nexports.chop = chop;\n/**\n * Splits an `Array` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.0.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? NEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [(0, exports.copy)(as), []] : [[], (0, exports.copy)(as)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `xs`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.0.0\n */\nvar chunksOf = function (n) {\n var f = NEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, function_1.pipe)(NEA.head(input), (0, exports.chain)(function (x) { return go((0, function_1.pipe)(scope, (0, exports.append)(x)), NEA.tail(input)); }))\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : [];\n };\n return go([], input);\n}\nexports.comprehension = comprehension;\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? (0, exports.copy)(second) : (0, exports.isEmpty)(second) ? (0, exports.copy)(first) : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = NEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second)\n ? unionE(second)(first)\n : (0, exports.isNonEmpty)(first)\n ? (0, exports.copy)(first)\n : (0, exports.copy)(second);\n };\n}\nexports.union = union;\nfunction intersection(E) {\n var elemE = (0, exports.elem)(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexports.intersection = intersection;\nfunction difference(E) {\n var elemE = (0, exports.elem)(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nexports.difference = difference;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/* istanbul ignore next */\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\nvar _chainRecDepthFirst = RA._chainRecDepthFirst;\nvar _chainRecBreadthFirst = RA._chainRecBreadthFirst;\n/**\n * Given an element of the base type, `of` builds an `Array` containing just that\n * element of the base type (this is useful for building a `Monad`).\n *\n * @example\n * import { of } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(of(\"a\"), [\"a\"]);\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.of = NEA.of;\n/**\n * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)\n *\n * @since 2.7.0\n */\nvar zero = function () { return []; };\nexports.zero = zero;\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array) => Array`.\n * In practice it applies the base function to each element of the array and collects the\n * results in a new array.\n *\n * @example\n * import { map } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => n * 2;\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; };\nexports.map = map;\n/**\n * @example\n * import { ap, map, of } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * // a curried function with 3 input parameteres\n * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;\n *\n * // let's use `ap` to iterate `f` over an array for each input parameter\n * assert.deepStrictEqual(pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"\uD83D\uDE00\", \"\uD83D\uDE2B\", \"\uD83D\uDE0E\"])), [\n * \"a1\uD83D\uDE00\", \"a1\uD83D\uDE2B\", \"a1\uD83D\uDE0E\",\n * \"a2\uD83D\uDE00\", \"a2\uD83D\uDE2B\", \"a2\uD83D\uDE0E\",\n * \"b1\uD83D\uDE00\", \"b1\uD83D\uDE2B\", \"b1\uD83D\uDE0E\",\n * \"b2\uD83D\uDE00\", \"b2\uD83D\uDE2B\", \"b2\uD83D\uDE0E\",\n * ]);\n *\n * // given Array implements the Applicative interface with the `of` method,\n * // we can write exactly the same thing in a more symmetric way\n * // using `of` on `f` and `ap` on each array in input\n * assert.deepStrictEqual(\n * pipe(of(f), ap([\"a\", \"b\"]), ap([1, 2]), ap([\"\uD83D\uDE00\", \"\uD83D\uDE2B\", \"\uD83D\uDE0E\"])),\n * pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"\uD83D\uDE00\", \"\uD83D\uDE2B\", \"\uD83D\uDE0E\"]))\n * );\n *\n * @since 2.0.0\n */\nvar ap = function (fa) { return (0, exports.chain)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); };\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to\n * determine the next computation.\n *\n * In other words it takes a function `f` that produces an array from a single element of\n * the base type `A` and returns a new function which applies `f` to each element of the\n * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the\n * results into a single array (like [`flatten`](#flatten)).\n *\n * This is the `chain` component of the array `Monad`.\n *\n * @example\n * import { chain, map, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => replicate(n, `${n}`);\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [[\"1\"], [\"2\", \"2\"], [\"3\", \"3\", \"3\"]]);\n * assert.deepStrictEqual(pipe([1, 2, 3], chain(f)), [\"1\", \"2\", \"2\", \"3\", \"3\", \"3\"]);\n *\n * @category sequencing\n * @since 2.0.0\n */\nvar chain = function (f) { return function (ma) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (_, a) { return f(a); }));\n}; };\nexports.chain = chain;\n/**\n * Takes an array of arrays of `A` and flattens them into an array of `A`\n * by concatenating the elements of each array in order.\n *\n * @example\n * import { flatten } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(flatten([[\"a\"], [\"b\", \"c\"], [\"d\", \"e\", \"f\"]]), [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]);\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.chain)(function_1.identity);\n/**\n * Same as [`map`](#map), but the iterating function takes both the index and the value\n * of the element.\n *\n * @example\n * import { mapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (i: number, s: string) => `${s} - ${i}`;\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], mapWithIndex(f)), [\"a - 0\", \"b - 1\", \"c - 2\"]);\n *\n * @category mapping\n * @since 2.0.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * Maps an array with an iterating function that takes the index and the value of\n * each element and returns an `Option`. It keeps only the `Some` values discarding\n * the `None`s.\n *\n * Same as [`filterMap`](#filterMap), but with an iterating function which takes also\n * the index as input.\n *\n * @example\n * import { filterMapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMapWithIndex(f)), [\"NO\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * Maps an array with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMap(f)), [\"A\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * Compact an array of `Option`s discarding the `None` values and\n * keeping the `Some` values. It returns a new array containing the values of\n * the `Some` options.\n *\n * @example\n * import { compact } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n *\n * assert.deepStrictEqual(compact([option.some(\"a\"), option.none, option.some(\"b\")]), [\"a\", \"b\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:\n * one containing all the left values and one containing all the right values.\n *\n * @example\n * import { separate } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n *\n * assert.deepStrictEqual(separate([either.right(\"r1\"), either.left(\"l1\"), either.right(\"r2\")]), {\n * left: [\"l1\"],\n * right: [\"r1\", \"r2\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `filter` creates a new `Array` containing the elements of the original\n * `Array` for which the iterating function is `true`.\n *\n * @example\n * import { filter } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(filter(isString)([\"a\", 1, {}, \"b\", 5]), [\"a\", \"b\"]);\n * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `partition` creates two new `Array`s: `right` containing the elements of the original\n * `Array` for which the iterating function is `true`, `left` containing the elements\n * for which it is false.\n *\n * @example\n * import { partition } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(partition(isString)([\"a\", 1, {}, \"b\", 5]), { left: [1, {}, 5], right: [\"a\", \"b\"] });\n * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * Same as [`partition`](#partition), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionWithIndex } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {\n * left: [-2, 7],\n * right: [5, 6],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var b = as[i];\n if (predicateWithIndex(i, b)) {\n right.push(b);\n }\n else {\n left.push(b);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * Given an iterating function that returns an `Either`,\n * `partitionMap` applies the iterating function to each element and it creates two `Array`s:\n * `right` containing the values of `Right` results, `left` containing the values of `Left` results.\n *\n * @example\n * import { partitionMap } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfString = (x: B): Either =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMap(upperIfString)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7],\n * right: [ 'HELLO', 'WORLD' ],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); }); };\nexports.partitionMap = partitionMap;\n/**\n * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionMapWithIndex } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfStringBefore3 = (index: number, x: B): Either =>\n * index < 3 && typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7, \"world\"],\n * right: [\"HELLO\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Array` concatenates the inputs into a single array.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * Same as [`filter`](#filter), but passing also the index to the iterating function.\n *\n * @example\n * import { filterWithIndex } from 'fp-ts/Array';\n *\n * const f = (index: number, x: number) => x > 0 && index <= 2;\n * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (b, i) { return predicateWithIndex(i, b); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Given an iterating function that takes `Array` as input, `extend` returns\n * an array containing the results of the iterating function applied to the whole input\n * `Array`, then to the input `Array` without the first element, then to the input\n * `Array` without the first two elements, etc.\n *\n * @example\n * import { extend } from 'fp-ts/Array'\n *\n * const f = (a: string[]) => a.join(\",\");\n * assert.deepStrictEqual(extend(f)([\"a\", \"b\", \"c\"]), [\"a,b,c\", \"b,c\", \"c\"]);\n *\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * `duplicate` returns an array containing the whole input `Array`,\n * then to the input `Array` dropping the first element, then to the input\n * `Array` dropping the first two elements, etc.\n *\n * @example\n * import { duplicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(duplicate([\"a\", \"b\", \"c\"]), [[\"a\", \"b\", \"c\"], [\"b\", \"c\"], [\"c\"]]);\n *\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * Map and fold an `Array`.\n * Map the `Array` passing each value to the iterating function.\n * Then fold the results using the provided `Monoid`.\n *\n * @example\n * import { foldMap } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (s: string) => s.toUpperCase()\n * assert.deepStrictEqual(foldMap(monoid)(f)([\"a\", \"b\", \"c\"]), \"ABC\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.foldMap = RA.foldMap;\n/**\n * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.\n *\n * @example\n * import { foldMapWithIndex } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`\n * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)([\"a\", \"b\", \"c\"]), \"A(0)B(1)C(2)\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.foldMapWithIndex = RA.foldMapWithIndex;\n/**\n * Reduces an `Array`.\n *\n * `reduce` executes the supplied iterating function on each element of the array,\n * in order, passing in the element and the return value from the calculation on the preceding element.\n *\n * The first time that the iterating function is called there is no \"return value of the\n * previous calculation\", the initial value is used in its place.\n *\n * @example\n * import { reduce } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduce = RA.reduce;\n/**\n * Same as [`reduce`](#reduce) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, acc: string, cur: unknown) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"A1B2\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceWithIndex = RA.reduceWithIndex;\n/**\n * Same as [`reduce`](#reduce) but applied from the end to the start.\n *\n * *Note*: the iterating function in this case takes the accumulator as the last argument.\n *\n * @example\n * import { reduceRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduceRight(\"\", (cur: string, acc: string) => acc + cur)([\"a\", \"b\", \"c\"]), \"cba\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRight = RA.reduceRight;\n/**\n * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceRightWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, cur: unknown, acc: string) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceRightWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"B2A1\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRightWithIndex = RA.reduceRightWithIndex;\n/**\n * Given an iterating function that returns a `HKT` (higher kinded type), `traverse`\n * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s\n * the results using the provided `Applicative`.\n *\n * E.g. suppose you have an `Array` and you want to format each element with a function\n * that returns a result or an error as `f = (a: A) => Either`, using `traverse`\n * you can apply `f` to all elements and directly obtain as a result an `Either>`\n * i.e. an `Array` if all the results are `B`, or an `Error` if some of the results\n * are `Error`s.\n *\n * @example\n * import { traverse } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (x: unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", \"b\"]), right([\"A\", \"B\"]));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * `sequence` takes an `Array` where elements are `HKT` (higher kinded type) and,\n * using an applicative of that `HKT`, returns an `HKT` of `Array`.\n * E.g. it can turn an `Array>` into an `Either>`.\n *\n * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an\n * `Array>` into an `Either>`, it needs an\n * `Applicative` for `Either`, to to turn an `Array>` into an `Option>`,\n * it needs an `Applicative` for `Option`.\n *\n * @example\n * import { sequence } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * assert.deepStrictEqual(sequence(Applicative)([right(\"a\"), right(\"b\")]), right([\"a\", \"b\"]));\n * assert.deepStrictEqual(\n * sequence(Applicative)([right(\"a\"), left(new Error(\"not a string\"))]),\n * left(new Error(\"not a string\"))\n * );\n *\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * Same as [`traverse`](#traverse) but passing also the index to the iterating function.\n *\n * @example\n * import { traverseWithIndex } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (index:number, x:unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase() + index) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", \"b\"]), right([\"A0\", \"B1\"]));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome\n * value and an input for the following iteration.\n * `unfold` applies `f` to the initial value `b` and then recursively to the second\n * element of the tuple contained in the returned `option` of the previous\n * calculation until `f` returns `Option.none`.\n *\n * @example\n * import { unfold } from 'fp-ts/Array'\n * import { option } from 'fp-ts'\n *\n * const f = (n: number) => {\n * if (n <= 0) return option.none;\n * const returnValue = n * 2;\n * const inputForNextRound = n - 1;\n * return option.some([returnValue, inputForNextRound] as const);\n * };\n * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);\n *\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Array';\n/**\n * `getShow` makes a `Show` for an `Array` from a `Show` for\n * an `A`.\n *\n * @example\n * import { getShow } from 'fp-ts/Array'\n *\n * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };\n * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), \"[(2), (1), 0, 1]\");\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getShow = RA.getShow;\n/**\n * Get a `Semigroup` based on the concatenation of `Array`s.\n * See also [`getMonoid`](#getMonoid).\n *\n * @example\n * import { getSemigroup } from 'fp-ts/Array'\n *\n * const S = getSemigroup();\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return first.concat(second); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `Array` based on the concatenation of `Array`s.\n *\n * @example\n * import { getMonoid } from 'fp-ts/Array'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: []\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/Array'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RA.getEq;\n/**\n * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/Array'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getOrd = RA.getOrd;\n/**\n * Get a `Semigroup` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n * See also [`getUnionMonoid`](#getUnionMonoid).\n *\n * @example\n * import { getUnionSemigroup } from 'fp-ts/Array';\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getUnionSemigroup(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Get a `Monoid` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n *\n * @example\n * import { getUnionMonoid } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const M = getUnionMonoid(Eq);\n * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(M.empty,[]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: []\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Get a `Semigroup` based on the intersection of the elements of `Array`s.\n * Only elements present in the two arrays which are equal according to the\n * provided `Eq` are included in the result.\n *\n * @example\n * import { getIntersectionSemigroup } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getIntersectionSemigroup(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Get a `Magma` for `Array` where the `concat` function is the differnce between\n * the first and the second array, i.e. the result contains all the elements of the\n * first array for which their is no equal element in the second array according\n * to the `Eq` provided.\n *\n *\n * @example\n * import { getDifferenceMagma } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getDifferenceMagma(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Given an input an `Array` of functions, `flap` returns an `Array` containing\n * the results of applying each function to the given input.\n *\n * @example\n * import { flap } from 'fp-ts/Array'\n *\n * const funs = [\n * (n: number) => `Double: ${n * 2}`,\n * (n: number) => `Triple: ${n * 3}`,\n * (n: number) => `Square: ${n * n}`,\n * ];\n * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainRecDepthFirst = RA.chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainRecBreadthFirst = RA.chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecBreadthFirst\n};\n/**\n * Filter values inside a context.\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.0.0\n */\nexports.unsafeInsertAt = NEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? NEA.unsafeUpdateAt(i, a, as) : [];\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * `every` tells if the provided predicate holds true for every element in the `Array`.\n *\n * @example\n * import { every } from 'fp-ts/Array'\n *\n * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nexports.every = RA.every;\n/**\n * `some` tells if the provided predicate holds true at least for one element in the `Array`.\n *\n * @example\n * import { some } from 'fp-ts/Array'\n *\n * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexports.intercalate = RA.intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `NonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.range = NEA.range;\n/**\n * Use a new `[]` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.empty = [];\n/**\n * Use `prepend` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.cons = NEA.cons;\n/**\n * Use `append` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.snoc = NEA.snoc;\n/**\n * Use `prependAll` instead\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array`\n * (where `A` is from `import A from 'fp-ts/Array'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.array = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.and = exports.or = exports.not = exports.Contravariant = exports.getMonoidAll = exports.getSemigroupAll = exports.getMonoidAny = exports.getSemigroupAny = exports.URI = exports.contramap = void 0;\nvar function_1 = require(\"./function\");\nvar contramap_ = function (predicate, f) { return (0, function_1.pipe)(predicate, (0, exports.contramap)(f)); };\n/**\n * @since 2.11.0\n */\nvar contramap = function (f) {\n return function (predicate) {\n return (0, function_1.flow)(f, predicate);\n };\n};\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.11.0\n */\nexports.URI = 'Predicate';\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAny = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.or)(second)); }\n}); };\nexports.getSemigroupAny = getSemigroupAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAny = function () { return ({\n concat: (0, exports.getSemigroupAny)().concat,\n empty: function_1.constFalse\n}); };\nexports.getMonoidAny = getMonoidAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAll = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.and)(second)); }\n}); };\nexports.getSemigroupAll = getSemigroupAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAll = function () { return ({\n concat: (0, exports.getSemigroupAll)().concat,\n empty: function_1.constTrue\n}); };\nexports.getMonoidAll = getMonoidAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar not = function (predicate) {\n return function (a) {\n return !predicate(a);\n };\n};\nexports.not = not;\n/**\n * @since 2.11.0\n */\nvar or = function (second) {\n return function (first) {\n return function (a) {\n return first(a) || second(a);\n };\n };\n};\nexports.or = or;\n/**\n * @since 2.11.0\n */\nvar and = function (second) {\n return function (first) {\n return function (a) {\n return first(a) && second(a);\n };\n };\n};\nexports.and = and;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEither = exports.MonadThrow = exports.throwError = exports.Witherable = exports.wilt = exports.wither = exports.Traversable = exports.sequence = exports.traverse = exports.Filterable = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.Compactable = exports.separate = exports.compact = exports.Extend = exports.extend = exports.Alternative = exports.guard = exports.Zero = exports.zero = exports.Alt = exports.alt = exports.altW = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.chain = exports.Applicative = exports.Apply = exports.ap = exports.Pointed = exports.of = exports.Functor = exports.map = exports.getMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.URI = exports.getRight = exports.getLeft = exports.fromPredicate = exports.some = exports.none = void 0;\nexports.getLastMonoid = exports.getFirstMonoid = exports.getApplyMonoid = exports.getApplySemigroup = exports.option = exports.mapNullable = exports.getRefinement = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toUndefined = exports.toNullable = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.duplicate = exports.chainFirst = exports.flatten = exports.apSecond = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isNone = exports.isSome = exports.FromEither = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Predicate_1 = require(\"./Predicate\");\nvar Semigroup_1 = require(\"./Semigroup\");\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.some = _.some;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? (0, exports.some)(a) : exports.none); };\n}\nexports.fromPredicate = fromPredicate;\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getLeft = function (ma) { return (ma._tag === 'Right' ? exports.none : (0, exports.some)(ma.left)); };\nexports.getLeft = getLeft;\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getRight = function (ma) { return (ma._tag === 'Left' ? exports.none : (0, exports.some)(ma.right)); };\nexports.getRight = getRight;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (S) { return ({\n show: function (ma) { return ((0, exports.isNone)(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (E) { return ({\n equals: function (x, y) { return x === y || ((0, exports.isNone)(x) ? (0, exports.isNone)(y) : (0, exports.isNone)(y) ? false : E.equals(x.value, y.value)); }\n}); };\nexports.getEq = getEq;\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getOrd = function (O) { return ({\n equals: (0, exports.getEq)(O).equals,\n compare: function (x, y) { return (x === y ? 0 : (0, exports.isSome)(x) ? ((0, exports.isSome)(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\nexports.getOrd = getOrd;\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isNone)(x) ? y : (0, exports.isNone)(y) ? x : (0, exports.some)(S.concat(x.value, y.value))); },\n empty: exports.none\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(f(fa.value));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @since 2.0.0\n */\nvar ap = function (fa) { return function (fab) {\n return (0, exports.isNone)(fab) ? exports.none : (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(fab.value(fa.value));\n}; };\nexports.ap = ap;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category sequencing\n * @since 2.0.0\n */\nvar chain = function (f) { return function (ma) {\n return (0, exports.isNone)(ma) ? exports.none : f(ma.value);\n}; };\nexports.chain = chain;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(b, fa.value);\n}; };\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? M.empty : f(fa.value);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(fa.value, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) { return function (fa) {\n return (0, exports.isNone)(fa) ? that() : fa;\n}; };\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Option` returns the left-most non-`None` value.\n *\n * | x | y | pipe(x, alt(() => y) |\n * | ------- | ------- | -------------------- |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import * as O from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * O.alt(() => O.none)\n * ),\n * O.none\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.some('a'),\n * O.alt(() => O.none)\n * ),\n * O.some('a')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * O.alt(() => O.some('b'))\n * ),\n * O.some('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.some('a'),\n * O.alt(() => O.some('b'))\n * ),\n * O.some('a')\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.none; };\nexports.zero = zero;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isNone)(wa) ? exports.none : (0, exports.some)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.chain)(function_1.identity);\nvar defaultSeparated = /*#__PURE__*/ (0, Separated_1.separated)(exports.none, exports.none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (ma) {\n return (0, exports.isNone)(ma) ? defaultSeparated : (0, Separated_1.separated)((0, exports.getLeft)(ma.value), (0, exports.getRight)(ma.value));\n};\nexports.separate = separate;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : predicate(fa.value) ? fa : exports.none;\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : f(fa.value);\n}; };\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return function (fa) {\n return (0, Separated_1.separated)(_filter(fa, (0, Predicate_1.not)(predicate)), _filter(fa, predicate));\n };\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, function_1.flow)((0, exports.map)(f), exports.separate); };\nexports.partitionMap = partitionMap;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(f(ta.value), exports.some);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(ta.value, exports.some);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nvar throwError = function () { return exports.none; };\nexports.throwError = throwError;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n throwError: exports.throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromEither = exports.getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onNone, onSome) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : onSome(ma.value);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onNone) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : ma.value;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainEitherK = \n/*#__PURE__*/ (0, FromEither_1.chainEitherK)(exports.FromEither, exports.Chain);\n/**\n * @category sequencing\n * @since 2.12.0\n */\nexports.chainFirstEitherK = \n/*#__PURE__*/ (0, FromEither_1.chainFirstEitherK)(exports.FromEither, exports.Chain);\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (a) { return (a == null ? exports.none : (0, exports.some)(a)); };\nexports.fromNullable = fromNullable;\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f) {\n try {\n return (0, exports.some)(f());\n }\n catch (e) {\n return exports.none;\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); });\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nvar fromNullableK = function (f) { return (0, function_1.flow)(f, exports.fromNullable); };\nexports.fromNullableK = fromNullableK;\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nvar chainNullableK = function (f) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? exports.none : (0, exports.fromNullable)(f(ma.value));\n };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toNullable = (0, exports.match)(function_1.constNull, function_1.identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toUndefined = (0, exports.match)(function_1.constUndefined, function_1.identity);\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isNone)(ma) ? false : E.equals(a, ma.value);\n };\n}\nexports.elem = elem;\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? false : predicate(ma.value);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if ((0, exports.isNone)(o)) {\n return exports.none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if ((0, exports.isNone)(o_1)) {\n return exports.none;\n }\n out.push(o_1.value);\n }\n return (0, exports.some)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) {\n return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); });\n};\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getRefinement(getOption) {\n return function (a) { return (0, exports.isSome)(getOption(a)); };\n}\nexports.getRefinement = getRefinement;\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.mapNullable = exports.chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.option = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n zero: exports.zero,\n alt: _alt,\n extend: _extend,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getFirstMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.first)()); };\nexports.getFirstMonoid = getFirstMonoid;\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getLastMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.last)()); };\nexports.getLastMonoid = getLastMonoid;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endsWith = exports.startsWith = exports.includes = exports.split = exports.size = exports.isEmpty = exports.slice = exports.trimRight = exports.trimLeft = exports.trim = exports.replace = exports.toLowerCase = exports.toUpperCase = exports.isString = exports.Show = exports.Ord = exports.Monoid = exports.empty = exports.Semigroup = exports.Eq = void 0;\nvar ReadonlyNonEmptyArray_1 = require(\"./ReadonlyNonEmptyArray\");\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true)\n * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * `string` semigroup under concatenation.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab')\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Semigroup = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * An empty `string`.\n *\n * @since 2.10.0\n */\nexports.empty = '';\n/**\n * `string` monoid under concatenation.\n *\n * The `empty` value is `''`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab')\n * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a')\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Monoid = {\n concat: exports.Semigroup.concat,\n empty: exports.empty\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0)\n * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1)\n * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Ord = {\n equals: exports.Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Show.show('a'), '\"a\"')\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Show = {\n show: function (s) { return JSON.stringify(s); }\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.isString('a'), true)\n * assert.deepStrictEqual(S.isString(1), false)\n *\n * @category refinements\n * @since 2.11.0\n */\nvar isString = function (u) { return typeof u === 'string'; };\nexports.isString = isString;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A')\n *\n * @since 2.11.0\n */\nvar toUpperCase = function (s) { return s.toUpperCase(); };\nexports.toUpperCase = toUpperCase;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a')\n *\n * @since 2.11.0\n */\nvar toLowerCase = function (s) { return s.toLowerCase(); };\nexports.toLowerCase = toLowerCase;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc')\n *\n * @since 2.11.0\n */\nvar replace = function (searchValue, replaceValue) {\n return function (s) {\n return s.replace(searchValue, replaceValue);\n };\n};\nexports.replace = replace;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trim), 'a')\n *\n * @since 2.11.0\n */\nvar trim = function (s) { return s.trim(); };\nexports.trim = trim;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ')\n *\n * @since 2.11.0\n */\nvar trimLeft = function (s) { return s.trimLeft(); };\nexports.trimLeft = trimLeft;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a')\n *\n * @since 2.11.0\n */\nvar trimRight = function (s) { return s.trimRight(); };\nexports.trimRight = trimRight;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc')\n *\n * @since 2.11.0\n */\nvar slice = function (start, end) {\n return function (s) {\n return s.slice(start, end);\n };\n};\nexports.slice = slice;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `string` is empty.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('', S.isEmpty), true)\n * assert.deepStrictEqual(pipe('a', S.isEmpty), false)\n *\n * @since 2.10.0\n */\nvar isEmpty = function (s) { return s.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Calculate the number of characters in a `string`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.size), 3)\n *\n * @since 2.10.0\n */\nvar size = function (s) { return s.length; };\nexports.size = size;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c'])\n * assert.deepStrictEqual(pipe('', S.split('')), [''])\n *\n * @since 2.11.0\n */\nvar split = function (separator) {\n return function (s) {\n var out = s.split(separator);\n return (0, ReadonlyNonEmptyArray_1.isNonEmpty)(out) ? out : [s];\n };\n};\nexports.split = split;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.includes('b')), true)\n * assert.deepStrictEqual(pipe('abc', S.includes('d')), false)\n *\n * @since 2.11.0\n */\nvar includes = function (searchString, position) {\n return function (s) {\n return s.includes(searchString, position);\n };\n};\nexports.includes = includes;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true)\n * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false)\n *\n * @since 2.11.0\n */\nvar startsWith = function (searchString, position) {\n return function (s) {\n return s.startsWith(searchString, position);\n };\n};\nexports.startsWith = startsWith;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true)\n * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false)\n *\n * @since 2.11.0\n */\nvar endsWith = function (searchString, position) {\n return function (s) {\n return s.endsWith(searchString, position);\n };\n};\nexports.endsWith = endsWith;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._partition = exports._filterMap = exports._filter = exports._reduceRight = exports._foldMap = exports._reduce = exports._mapWithIndex = exports._map = exports.difference = exports.intersection = exports.union = exports.elem = exports.some = exports.every = exports.fromEntries = exports.toEntries = exports.fromFoldableMap = exports.fromFoldable = exports.filterWithIndex = exports.filterMapWithIndex = exports.partitionWithIndex = exports.partitionMapWithIndex = exports.wilt = exports.wither = exports.sequence = exports.traverse = exports.traverseWithIndex = exports.singleton = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.map = exports.mapWithIndex = exports.empty = exports.lookup = exports.isSubrecord = exports.pop = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.has = exports.upsertAt = exports.toUnfoldable = exports.toReadonlyArray = exports.collect = exports.keys = exports.isEmpty = exports.size = exports.toRecord = exports.fromRecord = void 0;\nexports.readonlyRecord = exports.hasOwnProperty = exports.insertAt = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getWitherable = exports.getTraversableWithIndex = exports.getTraversable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.getFoldableWithIndex = exports.getFoldable = exports.FunctorWithIndex = exports.flap = exports.Functor = exports.getMonoid = exports.getEq = exports.getShow = exports.URI = exports.separate = exports.compact = exports.reduceRight = exports.foldMap = exports.reduce = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports._sequence = exports._traverse = exports._filterWithIndex = exports._filterMapWithIndex = exports._partitionWithIndex = exports._partitionMapWithIndex = exports._reduceRightWithIndex = exports._foldMapWithIndex = exports._reduceWithIndex = exports._partitionMap = void 0;\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Separated_1 = require(\"./Separated\");\nvar S = __importStar(require(\"./string\"));\nvar Witherable_1 = require(\"./Witherable\");\n/**\n * Builds a `ReadonlyRecord` by copying a `Record`.\n *\n * @example\n * import { ReadonlyRecord, fromRecord } from \"fp-ts/ReadonlyRecord\"\n *\n * const x: Record = { a: 1, b: 2 };\n * const y: ReadonlyRecord = fromRecord(x);\n * assert.deepStrictEqual(x,y);\n * // `y.a = 5` gives compiler error\n *\n * @category conversions\n * @since 2.5.0\n */\nvar fromRecord = function (r) { return Object.assign({}, r); };\nexports.fromRecord = fromRecord;\n/**\n * Builds a mutable `Record` from a `ReadonlyRecord`.\n *\n * @example\n * import { ReadonlyRecord, toRecord } from \"fp-ts/ReadonlyRecord\"\n *\n * const x: ReadonlyRecord = { a: 1, b: 2 };\n * const y: Record = toRecord(x);\n * assert.deepStrictEqual(x,y);\n * y.a = 5; // it's ok, y is mutable\n *\n * @category conversions\n * @since 2.5.0\n */\nvar toRecord = function (r) { return Object.assign({}, r); };\nexports.toRecord = toRecord;\n/**\n * Calculate the number of key/value pairs in a `ReadonlyRecord`,\n *\n * @example\n * import { size } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(size({ a: true, b: 2, c: \"three\" }), 3);\n *\n * @since 2.5.0\n */\nvar size = function (r) { return Object.keys(r).length; };\nexports.size = size;\n/**\n * Test whether a `ReadonlyRecord` is empty.\n *\n * @example\n * import { isEmpty } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(isEmpty({}), true);\n * assert.deepStrictEqual(isEmpty({ a: 3 }), false);\n * @since 2.5.0\n */\nvar isEmpty = function (r) {\n for (var k in r) {\n if (_.has.call(r, k)) {\n return false;\n }\n }\n return true;\n};\nexports.isEmpty = isEmpty;\nvar keys_ = function (O) {\n return function (r) {\n return Object.keys(r).sort(O.compare);\n };\n};\n/**\n * @since 2.5.0\n */\nexports.keys = keys_(S.Ord);\nfunction collect(O) {\n if (typeof O === 'function') {\n return collect(S.Ord)(O);\n }\n var keysO = keys_(O);\n return function (f) {\n return function (r) {\n var out = [];\n for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) {\n var key = _a[_i];\n out.push(f(key, r[key]));\n }\n return out;\n };\n };\n}\nexports.collect = collect;\n/**\n * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`.\n *\n * @example\n * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord'\n *\n * const x = { c: 3, a: \"foo\", b: false };\n * assert.deepStrictEqual(toReadonlyArray(x), [\n * [\"a\", \"foo\"],\n * [\"b\", false],\n * [\"c\", 3],\n * ]);\n *\n * @category conversions\n * @since 2.5.0\n */\nexports.toReadonlyArray = \n/*#__PURE__*/ collect(S.Ord)(function (k, a) { return [k, a]; });\nfunction toUnfoldable(U) {\n return function (r) {\n var sas = (0, exports.toReadonlyArray)(r);\n var len = sas.length;\n return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); });\n };\n}\nexports.toUnfoldable = toUnfoldable;\n/**\n * Insert or replace a key/value pair in a `ReadonlyRecord`.\n *\n * @example\n * import { upsertAt } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(upsertAt(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(upsertAt(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n *\n * @since 2.10.0\n */\nvar upsertAt = function (k, a) {\n return function (r) {\n if (_.has.call(r, k) && r[k] === a) {\n return r;\n }\n var out = Object.assign({}, r);\n out[k] = a;\n return out;\n };\n};\nexports.upsertAt = upsertAt;\n/**\n * Test whether or not a key exists in a `ReadonlyRecord`.\n *\n * Note. This function is not pipeable because is a `Refinement`.\n *\n * @example\n * import { has } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(has(\"a\", { a: 1, b: 2 }), true);\n * assert.deepStrictEqual(has(\"c\", { a: 1, b: 2 }), false);\n *\n * @since 2.10.0\n */\nvar has = function (k, r) { return _.has.call(r, k); };\nexports.has = has;\nfunction deleteAt(k) {\n return function (r) {\n if (!_.has.call(r, k)) {\n return r;\n }\n var out = Object.assign({}, r);\n delete out[k];\n return out;\n };\n}\nexports.deleteAt = deleteAt;\n/**\n * Replace a key/value pair in a `ReadonlyRecord`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(updateAt(\"a\", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(updateAt(\"c\", 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.5.0\n */\nvar updateAt = function (k, a) {\n return function (r) {\n if (!(0, exports.has)(k, r)) {\n return _.none;\n }\n if (r[k] === a) {\n return _.some(r);\n }\n var out = Object.assign({}, r);\n out[k] = a;\n return _.some(out);\n };\n};\nexports.updateAt = updateAt;\n/**\n * Applies a mapping function to one specific key/value pair in a `ReadonlyRecord`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(modifyAt(\"a\", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(modifyAt(\"c\", (x: number) => x * 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.5.0\n */\nvar modifyAt = function (k, f) {\n return function (r) {\n if (!(0, exports.has)(k, r)) {\n return _.none;\n }\n var next = f(r[k]);\n if (next === r[k]) {\n return _.some(r);\n }\n var out = Object.assign({}, r);\n out[k] = next;\n return _.some(out);\n };\n};\nexports.modifyAt = modifyAt;\nfunction pop(k) {\n var deleteAtk = deleteAt(k);\n return function (r) {\n var oa = lookup(k, r);\n return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]);\n };\n}\nexports.pop = pop;\nfunction isSubrecord(E) {\n return function (me, that) {\n if (that === undefined) {\n var isSubrecordE_1 = isSubrecord(E);\n return function (that) { return isSubrecordE_1(that, me); };\n }\n for (var k in me) {\n if (!_.has.call(that, k) || !E.equals(me[k], that[k])) {\n return false;\n }\n }\n return true;\n };\n}\nexports.isSubrecord = isSubrecord;\nfunction lookup(k, r) {\n if (r === undefined) {\n return function (r) { return lookup(k, r); };\n }\n return _.has.call(r, k) ? _.some(r[k]) : _.none;\n}\nexports.lookup = lookup;\n/**\n * @since 2.5.0\n */\nexports.empty = {};\nfunction mapWithIndex(f) {\n return function (r) {\n var out = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n out[k] = f(k, r[k]);\n }\n }\n return out;\n };\n}\nexports.mapWithIndex = mapWithIndex;\nfunction map(f) {\n return mapWithIndex(function (_, a) { return f(a); });\n}\nexports.map = map;\nfunction reduceWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 2) {\n return reduceWithIndex(S.Ord).apply(void 0, args);\n }\n var keysO = keys_(args[0]);\n return function (b, f) { return function (fa) {\n var out = b;\n var ks = keysO(fa);\n var len = ks.length;\n for (var i = 0; i < len; i++) {\n var k = ks[i];\n out = f(k, out, fa[k]);\n }\n return out;\n }; };\n}\nexports.reduceWithIndex = reduceWithIndex;\nfunction foldMapWithIndex(O) {\n if ('compare' in O) {\n var keysO_1 = keys_(O);\n return function (M) {\n return function (f) {\n return function (fa) {\n var out = M.empty;\n var ks = keysO_1(fa);\n var len = ks.length;\n for (var i = 0; i < len; i++) {\n var k = ks[i];\n out = M.concat(out, f(k, fa[k]));\n }\n return out;\n };\n };\n };\n }\n return foldMapWithIndex(S.Ord)(O);\n}\nexports.foldMapWithIndex = foldMapWithIndex;\nfunction reduceRightWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 2) {\n return reduceRightWithIndex(S.Ord).apply(void 0, args);\n }\n var keysO = keys_(args[0]);\n return function (b, f) { return function (fa) {\n var out = b;\n var ks = keysO(fa);\n var len = ks.length;\n for (var i = len - 1; i >= 0; i--) {\n var k = ks[i];\n out = f(k, fa[k], out);\n }\n return out;\n }; };\n}\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * Create a `ReadonlyRecord` with one key/value pair.\n *\n * @example\n * import { singleton } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(singleton(\"a\", 1), { a: 1 });\n *\n * @category constructors\n * @since 2.5.0\n */\nvar singleton = function (k, a) {\n var _a;\n return (_a = {}, _a[k] = a, _a);\n};\nexports.singleton = singleton;\nfunction traverseWithIndex(F) {\n var traverseWithIndexOF = _traverseWithIndex(S.Ord)(F);\n return function (f) { return function (ta) { return traverseWithIndexOF(ta, f); }; };\n}\nexports.traverseWithIndex = traverseWithIndex;\nfunction traverse(F) {\n var traverseOF = (0, exports._traverse)(S.Ord)(F);\n return function (f) { return function (ta) { return traverseOF(ta, f); }; };\n}\nexports.traverse = traverse;\nfunction sequence(F) {\n return (0, exports._sequence)(S.Ord)(F);\n}\nexports.sequence = sequence;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.compact); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.separate); }; };\n};\nexports.wilt = wilt;\nfunction partitionMapWithIndex(f) {\n return function (r) {\n var left = {};\n var right = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var e = f(k, r[k]);\n switch (e._tag) {\n case 'Left':\n left[k] = e.left;\n break;\n case 'Right':\n right[k] = e.right;\n break;\n }\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n}\nexports.partitionMapWithIndex = partitionMapWithIndex;\nfunction partitionWithIndex(predicateWithIndex) {\n return function (r) {\n var left = {};\n var right = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var a = r[k];\n if (predicateWithIndex(k, a)) {\n right[k] = a;\n }\n else {\n left[k] = a;\n }\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n}\nexports.partitionWithIndex = partitionWithIndex;\nfunction filterMapWithIndex(f) {\n return function (r) {\n var out = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var ob = f(k, r[k]);\n if (_.isSome(ob)) {\n out[k] = ob.value;\n }\n }\n }\n return out;\n };\n}\nexports.filterMapWithIndex = filterMapWithIndex;\nfunction filterWithIndex(predicateWithIndex) {\n return function (fa) {\n var out = {};\n var changed = false;\n for (var key in fa) {\n if (_.has.call(fa, key)) {\n var a = fa[key];\n if (predicateWithIndex(key, a)) {\n out[key] = a;\n }\n else {\n changed = true;\n }\n }\n }\n return changed ? out : fa;\n };\n}\nexports.filterWithIndex = filterWithIndex;\nfunction fromFoldable(M, F) {\n var fromFoldableMapM = fromFoldableMap(M, F);\n return function (fka) { return fromFoldableMapM(fka, function_1.identity); };\n}\nexports.fromFoldable = fromFoldable;\nfunction fromFoldableMap(M, F) {\n return function (ta, f) {\n return F.reduce(ta, {}, function (r, a) {\n var _a = f(a), k = _a[0], b = _a[1];\n r[k] = _.has.call(r, k) ? M.concat(r[k], b) : b;\n return r;\n });\n };\n}\nexports.fromFoldableMap = fromFoldableMap;\n/**\n * Alias of [`toReadonlyArray`](#toreadonlyarray).\n *\n * @example\n * import { toEntries } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]])\n *\n * @category conversions\n * @since 2.12.0\n */\nexports.toEntries = exports.toReadonlyArray;\n/**\n * Converts a `ReadonlyArray` of `[key, value]` tuples into a `ReadonlyRecord`.\n *\n * @example\n * import { fromEntries } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 })\n *\n * @since 2.12.0\n * @category conversions\n */\nvar fromEntries = function (fa) {\n var out = {};\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var a = fa_1[_i];\n out[a[0]] = a[1];\n }\n return out;\n};\nexports.fromEntries = fromEntries;\nfunction every(predicate) {\n return function (r) {\n for (var k in r) {\n if (!predicate(r[k])) {\n return false;\n }\n }\n return true;\n };\n}\nexports.every = every;\n/**\n * Test if at least one value in a `ReadonlyRecord` satisfies the predicate.\n *\n * @example\n * import { some } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true);\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false);\n *\n * @since 2.5.0\n */\nfunction some(predicate) {\n return function (r) {\n for (var k in r) {\n if (predicate(r[k])) {\n return true;\n }\n }\n return false;\n };\n}\nexports.some = some;\nfunction elem(E) {\n return function (a, fa) {\n if (fa === undefined) {\n var elemE_1 = elem(E);\n return function (fa) { return elemE_1(a, fa); };\n }\n for (var k in fa) {\n if (E.equals(fa[k], a)) {\n return true;\n }\n }\n return false;\n };\n}\nexports.elem = elem;\n/**\n * Union of two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the\n * entries of the two inputs.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements with the same key.\n *\n * @example\n * import { union } from \"fp-ts/ReadonlyRecord\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 });\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar union = function (M) {\n return function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return second;\n }\n if ((0, exports.isEmpty)(second)) {\n return first;\n }\n var out = {};\n for (var k in first) {\n if ((0, exports.has)(k, second)) {\n out[k] = M.concat(first[k], second[k]);\n }\n else {\n out[k] = first[k];\n }\n }\n for (var k in second) {\n if (!(0, exports.has)(k, out)) {\n out[k] = second[k];\n }\n }\n return out;\n };\n };\n};\nexports.union = union;\n/**\n * Intersection of two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the\n * entries of the two inputswith the same key.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements.\n *\n * @example\n * import { intersection } from \"fp-ts/ReadonlyRecord\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4});\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1});\n *\n * @since 2.11.0\n */\nvar intersection = function (M) {\n return function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) {\n return exports.empty;\n }\n var out = {};\n for (var k in first) {\n if ((0, exports.has)(k, second)) {\n out[k] = M.concat(first[k], second[k]);\n }\n }\n return out;\n };\n };\n};\nexports.intersection = intersection;\n/**\n * Difference between two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the\n * entries of the two inputs, removing the entries with the same\n * key in both inputs.\n *\n * @example\n * import { difference } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar difference = function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return second;\n }\n if ((0, exports.isEmpty)(second)) {\n return first;\n }\n var out = {};\n for (var k in first) {\n if (!(0, exports.has)(k, second)) {\n out[k] = first[k];\n }\n }\n for (var k in second) {\n if (!(0, exports.has)(k, first)) {\n out[k] = second[k];\n }\n }\n return out;\n };\n};\nexports.difference = difference;\n/** @internal */\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, map(f)); };\nexports._map = _map;\n/** @internal */\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, mapWithIndex(f)); };\nexports._mapWithIndex = _mapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _reduce = function (O) {\n var reduceO = reduce(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceO(b, f)); };\n};\nexports._reduce = _reduce;\n/** @internal */\nvar _foldMap = function (O) { return function (M) {\n var foldMapM = foldMap(O)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n}; };\nexports._foldMap = _foldMap;\n/** @internal */\n/* istanbul ignore next */\nvar _reduceRight = function (O) {\n var reduceRightO = reduceRight(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightO(b, f)); };\n};\nexports._reduceRight = _reduceRight;\n/** @internal */\n/* istanbul ignore next */\nvar _filter = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.filter)(predicate));\n};\nexports._filter = _filter;\n/** @internal */\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\nexports._filterMap = _filterMap;\n/** @internal */\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); };\nexports._partition = _partition;\n/** @internal */\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\nexports._partitionMap = _partitionMap;\n/** @internal */\n/* istanbul ignore next */\nvar _reduceWithIndex = function (O) {\n var reduceWithIndexO = reduceWithIndex(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceWithIndexO(b, f)); };\n};\nexports._reduceWithIndex = _reduceWithIndex;\n/** @internal */\nvar _foldMapWithIndex = function (O) {\n var foldMapWithIndexO = foldMapWithIndex(O);\n return function (M) {\n var foldMapWithIndexM = foldMapWithIndexO(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n };\n};\nexports._foldMapWithIndex = _foldMapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (O) {\n var reduceRightWithIndexO = reduceRightWithIndex(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightWithIndexO(b, f)); };\n};\nexports._reduceRightWithIndex = _reduceRightWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, partitionMapWithIndex(f)); };\nexports._partitionMapWithIndex = _partitionMapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _partitionWithIndex = function (fa, predicateWithIndex) {\n return (0, function_1.pipe)(fa, partitionWithIndex(predicateWithIndex));\n};\nexports._partitionWithIndex = _partitionWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, filterMapWithIndex(f)); };\nexports._filterMapWithIndex = _filterMapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, filterWithIndex(predicateWithIndex)); };\nexports._filterWithIndex = _filterWithIndex;\n/** @internal */\nvar _traverse = function (O) {\n var traverseWithIndexO = _traverseWithIndex(O);\n return function (F) {\n var traverseWithIndexOF = traverseWithIndexO(F);\n return function (ta, f) { return traverseWithIndexOF(ta, (0, function_1.flow)(function_1.SK, f)); };\n };\n};\nexports._traverse = _traverse;\n/** @internal */\nvar _sequence = function (O) {\n var traverseO = (0, exports._traverse)(O);\n return function (F) {\n var traverseOF = traverseO(F);\n return function (ta) { return traverseOF(ta, function_1.identity); };\n };\n};\nexports._sequence = _sequence;\nvar _traverseWithIndex = function (O) {\n return function (F) {\n var keysO = keys_(O);\n return function (ta, f) {\n var ks = keysO(ta);\n if (ks.length === 0) {\n return F.of(exports.empty);\n }\n var fr = F.of({});\n var _loop_1 = function (key) {\n fr = F.ap(F.map(fr, function (r) { return function (b) {\n var _a;\n return Object.assign({}, r, (_a = {}, _a[key] = b, _a));\n }; }), f(key, ta[key]));\n };\n for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {\n var key = ks_1[_i];\n _loop_1(key);\n }\n return fr;\n };\n };\n};\n/**\n * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a\n * value that satisfies the provided predicate.\n *\n * @example\n * import { filter } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo\",\n * b: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar filter = function (predicate) {\n return filterWithIndex(function (_, a) { return predicate(a); });\n};\nexports.filter = filter;\n/**\n * Maps a `ReadonlyRecord` with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from \"fp-ts/ReadonlyRecord\"\n * import { option } from \"fp-ts\"\n *\n * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none\n * assert.deepStrictEqual(filterMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar filterMap = function (f) { return filterMapWithIndex(function (_, a) { return f(a); }); };\nexports.filterMap = filterMap;\n/**\n * Partition a `ReadonlyRecord` into two parts according to a `Predicate`.\n *\n * @example\n * import { partition } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left:{\n * c: \"verylong\"\n * },\n * right: {\n * a: \"foo\",\n * b: \"bar\",\n * },\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar partition = function (predicate) {\n return partitionWithIndex(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * Maps a `ReadonlyRecord` with a function returning an `Either` and\n * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMap } from \"fp-ts/ReadonlyRecord\"\n * import { either } from \"fp-ts\"\n *\n * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`));\n * assert.deepStrictEqual(partitionMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left: {\n * c: \"verylong is not short\",\n * },\n * right: {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * },\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMap = function (f) {\n return partitionMapWithIndex(function (_, a) { return f(a); });\n};\nexports.partitionMap = partitionMap;\nfunction reduce() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 1) {\n var reduceWithIndexO_1 = reduceWithIndex(args[0]);\n return function (b, f) { return reduceWithIndexO_1(b, function (_, b, a) { return f(b, a); }); };\n }\n return reduce(S.Ord).apply(void 0, args);\n}\nexports.reduce = reduce;\nfunction foldMap(O) {\n if ('compare' in O) {\n var foldMapWithIndexO_1 = foldMapWithIndex(O);\n return function (M) {\n var foldMapWithIndexM = foldMapWithIndexO_1(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n };\n }\n return foldMap(S.Ord)(O);\n}\nexports.foldMap = foldMap;\nfunction reduceRight() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 1) {\n var reduceRightWithIndexO_1 = reduceRightWithIndex(args[0]);\n return function (b, f) { return reduceRightWithIndexO_1(b, function (_, b, a) { return f(b, a); }); };\n }\n return reduceRight(S.Ord).apply(void 0, args);\n}\nexports.reduceRight = reduceRight;\n/**\n * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and\n * keeping the `Some` values.\n *\n * @example\n * import { compact } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(compact({ a: option.some(\"foo\"), b: option.none, c: option.some(\"bar\") }), {\n * a: \"foo\",\n * c: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar compact = function (r) {\n var out = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var oa = r[k];\n if (_.isSome(oa)) {\n out[k] = oa.value;\n }\n }\n }\n return out;\n};\nexports.compact = compact;\n/**\n * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s.\n *\n * @example\n * import { separate } from 'fp-ts/ReadonlyRecord'\n * import { either } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * separate({ a: either.right(\"foo\"), b: either.left(\"bar\"), c: either.right(\"baz\") }),\n * {\n * right: {\n * a: \"foo\",\n * c: \"baz\",\n * },\n * left: {\n * b: \"bar\",\n * },\n * }\n * );\n *\n * @category filtering\n * @since 2.5.0\n */\nvar separate = function (r) {\n var left = {};\n var right = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var e = r[k];\n if (_.isLeft(e)) {\n left[k] = e.left;\n }\n else {\n right[k] = e.right;\n }\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyRecord';\nfunction getShow(O) {\n if ('compare' in O) {\n return function (S) { return ({\n show: function (r) {\n var elements = collect(O)(function (k, a) { return \"\".concat(JSON.stringify(k), \": \").concat(S.show(a)); })(r).join(', ');\n return elements === '' ? '{}' : \"{ \".concat(elements, \" }\");\n }\n }); };\n }\n return getShow(S.Ord)(O);\n}\nexports.getShow = getShow;\nfunction getEq(E) {\n var isSubrecordE = isSubrecord(E);\n return (0, Eq_1.fromEquals)(function (x, y) { return isSubrecordE(x)(y) && isSubrecordE(y)(x); });\n}\nexports.getEq = getEq;\nfunction getMonoid(S) {\n return {\n concat: function (first, second) {\n if ((0, exports.isEmpty)(first)) {\n return second;\n }\n if ((0, exports.isEmpty)(second)) {\n return first;\n }\n var r = Object.assign({}, first);\n for (var k in second) {\n if (_.has.call(second, k)) {\n r[k] = _.has.call(first, k) ? S.concat(first[k], second[k]) : second[k];\n }\n }\n return r;\n },\n empty: exports.empty\n };\n}\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: exports._map\n};\n/**\n * Takes a value and a `ReadonlyRecord` of functions and returns a\n * `ReadonlyRecord` by applying each function to the input value.\n *\n * @example\n * import { flap } from \"fp-ts/ReadonlyRecord\"\n *\n * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` };\n * assert.deepStrictEqual(flap(3)(fab), {\n * x: \"3 times 2\",\n * y: \"6\",\n * });\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex\n};\n/**\n * Produces a `Foldable` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldable = function (O) { return ({\n URI: exports.URI,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O)\n}); };\nexports.getFoldable = getFoldable;\n/**\n * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldableWithIndex = function (O) { return ({\n URI: exports.URI,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n reduceWithIndex: (0, exports._reduceWithIndex)(O),\n foldMapWithIndex: (0, exports._foldMapWithIndex)(O),\n reduceRightWithIndex: (0, exports._reduceRightWithIndex)(O)\n}); };\nexports.getFoldableWithIndex = getFoldableWithIndex;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: exports._map,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n filterMapWithIndex: exports._filterMapWithIndex,\n filterWithIndex: exports._filterWithIndex,\n partitionMapWithIndex: exports._partitionMapWithIndex,\n partitionWithIndex: exports._partitionWithIndex\n};\n/**\n * Produces a `Traversable` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversable = function (O) { return ({\n URI: exports.URI,\n map: exports._map,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n traverse: (0, exports._traverse)(O),\n sequence: (0, exports._sequence)(O)\n}); };\nexports.getTraversable = getTraversable;\n/**\n * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversableWithIndex = function (O) { return ({\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n reduceWithIndex: (0, exports._reduceWithIndex)(O),\n foldMapWithIndex: (0, exports._foldMapWithIndex)(O),\n reduceRightWithIndex: (0, exports._reduceRightWithIndex)(O),\n traverse: (0, exports._traverse)(O),\n sequence: (0, exports._sequence)(O),\n traverseWithIndex: _traverseWithIndex(O)\n}); };\nexports.getTraversableWithIndex = getTraversableWithIndex;\n/**\n * @category filtering\n * @since 2.11.0\n */\nvar getWitherable = function (O) {\n var T = (0, exports.getTraversable)(O);\n return {\n URI: exports.URI,\n map: exports._map,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n traverse: T.traverse,\n sequence: T.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n wither: (0, Witherable_1.witherDefault)(T, exports.Compactable),\n wilt: (0, Witherable_1.wiltDefault)(T, exports.Compactable)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `ReadonlyRecord` of the base type.\n * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by\n * `union`.\n *\n * @example\n * import { getUnionSemigroup, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sReadonlyRecord: Semigroup> = getUnionSemigroup(sNumber);\n * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (S) {\n var unionS = (0, exports.union)(S);\n return {\n concat: function (first, second) { return unionS(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Same as `getMonoid`.\n * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `ReadonlyRecord`s combining the\n * entries that have the same key with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord'\n *\n * const M = getUnionMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (S) { return ({\n concat: (0, exports.getUnionSemigroup)(S).concat,\n empty: exports.empty\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `ReadonlyRecord` of the base type.\n * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by\n * `intersection`.\n *\n * @example\n * import { getIntersectionSemigroup, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sReadonlyRecord: Semigroup> = getIntersectionSemigroup(sNumber);\n * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (S) {\n var intersectionS = (0, exports.intersection)(S);\n return {\n concat: function (first, second) { return intersectionS(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Produces a `Magma` with a `concat` function that combines\n * two `ReadonlyRecord`s by making the `difference`.\n *\n * @example\n * import { getDifferenceMagma, difference, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Magma } from \"fp-ts/Magma\"\n *\n * const r1 = { a: 3, c: 3 };\n * const r2 = { a: 1, b: 2 };\n * const m: Magma> = getDifferenceMagma();\n * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1));\n * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function () { return ({\n concat: function (first, second) { return (0, exports.difference)(second)(first); }\n}); };\nexports.getDifferenceMagma = getDifferenceMagma;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `getFoldable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord)\n};\n/**\n * Use `getFoldableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord)\n};\n/**\n * Use `getTraversable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Traversable = {\n URI: exports.URI,\n map: exports._map,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence\n};\n/**\n * Use `getTraversableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord)\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * Use `getWitherable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Witherable = {\n URI: exports.URI,\n map: exports._map,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Use [`upsertAt`](#upsertat) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.insertAt = exports.upsertAt;\nfunction hasOwnProperty(k, r) {\n return _.has.call(r === undefined ? this : r, k);\n}\nexports.hasOwnProperty = hasOwnProperty;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RR.Functor` instead of `RR.readonlyRecord`\n * (where `RR` is from `import RR from 'fp-ts/ReadonlyRecord'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyRecord = {\n URI: exports.URI,\n map: exports._map,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n mapWithIndex: exports._mapWithIndex,\n reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord),\n filterMapWithIndex: exports._filterMapWithIndex,\n filterWithIndex: exports._filterWithIndex,\n partitionMapWithIndex: exports._partitionMapWithIndex,\n partitionWithIndex: exports._partitionWithIndex,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord),\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getShow = exports.URI = exports.separate = exports.compact = exports.reduceRight = exports.foldMap = exports.reduce = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.difference = exports.intersection = exports.union = exports.elem = exports.some = exports.every = exports.fromFoldableMap = exports.fromEntries = exports.toEntries = exports.fromFoldable = exports.filterWithIndex = exports.filterMapWithIndex = exports.partitionWithIndex = exports.partitionMapWithIndex = exports.wilt = exports.wither = exports.sequence = exports.traverse = exports.traverseWithIndex = exports.singleton = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.map = exports.mapWithIndex = exports.lookup = exports.isSubrecord = exports.pop = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.has = exports.upsertAt = exports.toUnfoldable = exports.toArray = exports.collect = exports.keys = exports.isEmpty = exports.size = void 0;\nexports.record = exports.hasOwnProperty = exports.insertAt = exports.empty = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getWitherable = exports.getTraversableWithIndex = exports.getTraversable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.getFoldableWithIndex = exports.getFoldable = exports.FunctorWithIndex = exports.flap = exports.Functor = exports.getMonoid = exports.getEq = void 0;\nvar A = __importStar(require(\"./Array\"));\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar RR = __importStar(require(\"./ReadonlyRecord\"));\nvar Se = __importStar(require(\"./Semigroup\"));\nvar S = __importStar(require(\"./string\"));\nvar Witherable_1 = require(\"./Witherable\");\n// -------------------------------------------------------------------------------------\n// model\n// -------------------------------------------------------------------------------------\n/**\n * Calculate the number of key/value pairs in a `Record`.\n *\n * @example\n * import { size } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(size({ a: true, b: 2, c: \"three\" }), 3);\n *\n * @since 2.0.0\n */\nexports.size = RR.size;\n/**\n * Test whether a `Record` is empty.\n *\n * @example\n * import { isEmpty } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(isEmpty({}), true);\n * assert.deepStrictEqual(isEmpty({ a: 3 }), false);\n *\n * @since 2.0.0\n */\nexports.isEmpty = RR.isEmpty;\nvar keys_ = function (O) {\n return function (r) {\n return Object.keys(r).sort(O.compare);\n };\n};\n/**\n * The keys of a `Record`, sorted alphabetically.\n *\n * @example\n * import { keys } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), [\"a\", \"b\", \"c\"]);\n *\n * @since 2.0.0\n */\nexports.keys = keys_(S.Ord);\nfunction collect(O) {\n if (typeof O === 'function') {\n return collect(S.Ord)(O);\n }\n var keysO = keys_(O);\n return function (f) {\n return function (r) {\n var out = [];\n for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) {\n var key = _a[_i];\n out.push(f(key, r[key]));\n }\n return out;\n };\n };\n}\nexports.collect = collect;\n/**\n * Get a sorted `Array` of the key/value pairs contained in a `Record`.\n * Sorted alphabetically by key.\n *\n * @example\n * import { toArray } from 'fp-ts/Record'\n *\n * const x = { c: 3, a: \"foo\", b: false };\n * assert.deepStrictEqual(toArray(x), [\n * [\"a\", \"foo\"],\n * [\"b\", false],\n * [\"c\", 3],\n * ]);\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toArray = collect(S.Ord)(function (k, a) { return [\n k,\n a\n]; });\nfunction toUnfoldable(U) {\n return function (r) {\n var sas = (0, exports.toArray)(r);\n var len = sas.length;\n return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); });\n };\n}\nexports.toUnfoldable = toUnfoldable;\n/**\n * Insert or replace a key/value pair in a `Record`.\n *\n * @example\n * import { upsertAt } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(upsertAt(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(upsertAt(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n *\n * @since 2.10.0\n */\nexports.upsertAt = RR.upsertAt;\n/**\n * Test whether or not a key exists in a `Record`.\n *\n * Note. This function is not pipeable because is a `Refinement`.\n *\n * @example\n * import { has } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(has(\"a\", { a: 1, b: 2 }), true);\n * assert.deepStrictEqual(has(\"c\", { a: 1, b: 2 }), false);\n *\n * @since 2.10.0\n */\nexports.has = RR.has;\nfunction deleteAt(k) {\n return function (r) {\n if (!_.has.call(r, k)) {\n return r;\n }\n var out = Object.assign({}, r);\n delete out[k];\n return out;\n };\n}\nexports.deleteAt = deleteAt;\n/**\n * Replace a key/value pair in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { updateAt } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(updateAt(\"a\", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(updateAt(\"c\", 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.0.0\n */\nvar updateAt = function (k, a) {\n return (0, exports.modifyAt)(k, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * Applies a mapping function to one spcific key/value pair in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { modifyAt } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(modifyAt(\"a\", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(modifyAt(\"c\", (x: number) => x * 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.0.0\n */\nvar modifyAt = function (k, f) {\n return function (r) {\n if (!(0, exports.has)(k, r)) {\n return _.none;\n }\n var out = Object.assign({}, r);\n out[k] = f(r[k]);\n return _.some(out);\n };\n};\nexports.modifyAt = modifyAt;\nfunction pop(k) {\n var deleteAtk = deleteAt(k);\n return function (r) {\n var oa = (0, exports.lookup)(k, r);\n return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]);\n };\n}\nexports.pop = pop;\n// TODO: remove non-curried overloading in v3\n/**\n * Test whether one `Record` contains all of the keys and values\n * contained in another `Record`.\n *\n * @example\n * import { isSubrecord } from 'fp-ts/Record'\n * import { string } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", b: \"bar\", c: \"baz\" }),\n * true\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", c: \"baz\" }),\n * true\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", b: \"not-bar\", c: \"baz\" }),\n * false\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\" })({ a: \"foo\", b: \"bar\", c: \"baz\" }),\n * false\n * );\n *\n * @since 2.0.0\n */\nexports.isSubrecord = RR.isSubrecord;\n// TODO: remove non-curried overloading in v3\n/**\n * Lookup the value for a key in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing the value,\n * otherwise it returns `None`\n *\n * @example\n * import { lookup } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(lookup(\"b\")({ a: \"foo\", b: \"bar\" }), option.some(\"bar\"));\n * assert.deepStrictEqual(lookup(\"c\")({ a: \"foo\", b: \"bar\" }), option.none);\n *\n * @since 2.0.0\n */\nexports.lookup = RR.lookup;\n/**\n * Map a `Record` passing the key/value pairs to the iterating function.\n *\n * @example\n * import { mapWithIndex } from \"fp-ts/Record\";\n *\n * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`;\n * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: \"A-3\", b: \"B-5\" });\n *\n * @since 2.0.0\n */\nexports.mapWithIndex = RR.mapWithIndex;\n/**\n * Map a `Record` passing the values to the iterating function.\n *\n * @example\n * import { map } from \"fp-ts/Record\";\n *\n * const f = (n: number) => `-${n}-`;\n * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: \"-3-\", b: \"-5-\" });\n *\n * @category mapping\n * @since 2.0.0\n */\nexports.map = RR.map;\nfunction reduceWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduceWithIndex(args[0]) : RR.reduceWithIndex(S.Ord).apply(void 0, args);\n}\nexports.reduceWithIndex = reduceWithIndex;\nfunction foldMapWithIndex(O) {\n return 'compare' in O ? RR.foldMapWithIndex(O) : RR.foldMapWithIndex(S.Ord)(O);\n}\nexports.foldMapWithIndex = foldMapWithIndex;\nfunction reduceRightWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduceRightWithIndex(args[0]) : RR.reduceRightWithIndex(S.Ord).apply(void 0, args);\n}\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * Create a `Record` with one key/value pair.\n *\n * @example\n * import { singleton } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(singleton(\"a\", 1), { a: 1 });\n *\n * @since 2.0.0\n */\nexports.singleton = RR.singleton;\nfunction traverseWithIndex(F) {\n return RR.traverseWithIndex(F);\n}\nexports.traverseWithIndex = traverseWithIndex;\nfunction traverse(F) {\n return RR.traverse(F);\n}\nexports.traverse = traverse;\nfunction sequence(F) {\n return RR.sequence(F);\n}\nexports.sequence = sequence;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.compact); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.separate); }; };\n};\nexports.wilt = wilt;\n/**\n * Maps a `Record` with a function returning an `Either` and\n * partitions the resulting `Record` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMapWithIndex } from \"fp-ts/Record\"\n * import { either } from \"fp-ts\"\n *\n * const f = (key: string, a: number) =>\n * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`);\n * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), {\n * left: {\n * a: \"a is < 0 (-1)\",\n * },\n * right: {\n * b: \"b is >= 0 (2)\",\n * c: \"c is >= 0 (123)\",\n * },\n * });\n *\n * @since 2.0.0\n */\nexports.partitionMapWithIndex = RR.partitionMapWithIndex;\nfunction partitionWithIndex(predicateWithIndex) {\n return RR.partitionWithIndex(predicateWithIndex);\n}\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * Maps a `Record` with an iterating function that takes key and value and\n * returns an `Option`, keeping only the `Some` values and discarding `None`s.\n *\n * @example\n * import { filterMapWithIndex } from \"fp-ts/Record\"\n * import { option } from \"fp-ts\"\n *\n * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none);\n * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), {\n * b: \"b2\",\n * c: \"c3\",\n * });\n *\n * @since 2.0.0\n */\nexports.filterMapWithIndex = RR.filterMapWithIndex;\nfunction filterWithIndex(predicateWithIndex) {\n return RR.filterWithIndex(predicateWithIndex);\n}\nexports.filterWithIndex = filterWithIndex;\nfunction fromFoldable(M, F) {\n return RR.fromFoldable(M, F);\n}\nexports.fromFoldable = fromFoldable;\n/**\n * Alias of [`toArray`](#toArray).\n *\n * @example\n * import { toEntries } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]])\n *\n * @since 2.12.0\n * @category conversions\n */\nexports.toEntries = exports.toArray;\n/**\n * Converts an `Array` of `[key, value]` tuples into a `Record`.\n *\n * @example\n * import { fromEntries } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 })\n *\n * @since 2.12.0\n * @category conversions\n */\nvar fromEntries = function (fa) { return fromFoldable(Se.last(), A.Foldable)(fa); };\nexports.fromEntries = fromEntries;\nfunction fromFoldableMap(M, F) {\n return RR.fromFoldableMap(M, F);\n}\nexports.fromFoldableMap = fromFoldableMap;\n/**\n * Test if every value in a `Record` satisfies the predicate.\n *\n * @example\n * import { every } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true);\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false);\n *\n * @since 2.0.0\n */\nexports.every = RR.every;\n/**\n * Test if at least one value in a `Record` satisfies the predicate.\n *\n * @example\n * import { some } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true);\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false);\n *\n * @since 2.0.0\n */\nexports.some = RR.some;\n// TODO: remove non-curried overloading in v3\n/**\n * Given an `Eq` checks if a `Record` contains an entry with\n * value equal to a provided value.\n *\n * @example\n * import { elem } from \"fp-ts/Record\"\n * import { number } from \"fp-ts\"\n *\n * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true);\n * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false);\n *\n * @since 2.0.0\n */\nexports.elem = RR.elem;\n/**\n * Union of two `Record`s.\n * Takes two `Record`s and produces a `Record` combining all the\n * entries of the two inputs.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements with the same key.\n *\n * @example\n * import { union } from \"fp-ts/Record\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 });\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar union = function (M) {\n var unionM = RR.union(M);\n return function (second) { return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return __assign({}, second);\n }\n if ((0, exports.isEmpty)(second)) {\n return __assign({}, first);\n }\n return unionM(second)(first);\n }; };\n};\nexports.union = union;\n/**\n * Intersection of two `Record`s.\n * Takes two `Record`s and produces a `Record` combining only the\n * entries of the two inputswith the same key.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements.\n *\n * @example\n * import { intersection } from \"fp-ts/Record\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4});\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1});\n *\n * @since 2.11.0\n */\nvar intersection = function (M) {\n return function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) {\n return {};\n }\n return RR.intersection(M)(second)(first);\n };\n };\n};\nexports.intersection = intersection;\n/**\n * Difference between two `Record`s.\n * Takes two `Record`s and produces a `Record` composed by the\n * entries of the two inputs, removing the entries with the same\n * key in both inputs.\n *\n * @example\n * import { difference } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar difference = function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return __assign({}, second);\n }\n if ((0, exports.isEmpty)(second)) {\n return __assign({}, first);\n }\n return RR.difference(second)(first);\n };\n};\nexports.difference = difference;\nvar _map = RR._map;\nvar _mapWithIndex = RR._mapWithIndex;\nvar _reduce = RR._reduce;\nvar _foldMap = RR._foldMap;\nvar _reduceRight = RR._reduceRight;\nvar _filter = RR._filter;\nvar _filterMap = RR._filterMap;\nvar _partition = RR._partition;\nvar _partitionMap = RR._partitionMap;\nvar _reduceWithIndex = RR._reduceWithIndex;\nvar _foldMapWithIndex = RR._foldMapWithIndex;\nvar _reduceRightWithIndex = RR._reduceRightWithIndex;\nvar _partitionMapWithIndex = RR._partitionMapWithIndex;\nvar _partitionWithIndex = RR._partitionWithIndex;\nvar _filterMapWithIndex = RR._filterMapWithIndex;\nvar _filterWithIndex = RR._filterWithIndex;\nvar _traverse = RR._traverse;\nvar _sequence = RR._sequence;\nvar _traverseWithIndex = function (O) {\n return function (F) {\n var keysO = keys_(O);\n return function (ta, f) {\n var ks = keysO(ta);\n if (ks.length === 0) {\n return F.of({});\n }\n var fr = F.of({});\n var _loop_1 = function (key) {\n fr = F.ap(F.map(fr, function (r) { return function (b) {\n r[key] = b;\n return r;\n }; }), f(key, ta[key]));\n };\n for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {\n var key = ks_1[_i];\n _loop_1(key);\n }\n return fr;\n };\n };\n};\n/**\n * Given a `Predicate`, it produces a new `Record` keeping only the entries with a\n * value that satisfies the provided predicate.\n *\n * @example\n * import { filter } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo\",\n * b: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filter = RR.filter;\n/**\n * Maps a `Record` with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from \"fp-ts/Record\"\n * import { option } from \"fp-ts\"\n *\n * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none\n * assert.deepStrictEqual(filterMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filterMap = RR.filterMap;\n/**\n * Partition a `Record` into two parts according to a `Predicate`.\n *\n * @example\n * import { partition } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left:{\n * c: \"verylong\"\n * },\n * right: {\n * a: \"foo\",\n * b: \"bar\",\n * },\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.partition = RR.partition;\n/**\n * Maps a `Record` with a function returning an `Either` and\n * partitions the resulting `Record` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMap } from \"fp-ts/Record\"\n * import { either } from \"fp-ts\"\n *\n * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`));\n * assert.deepStrictEqual(partitionMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left: {\n * c: \"verylong is not short\",\n * },\n * right: {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * },\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.partitionMap = RR.partitionMap;\nfunction reduce() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduce(args[0]) : RR.reduce(S.Ord).apply(void 0, args);\n}\nexports.reduce = reduce;\nfunction foldMap(O) {\n return 'compare' in O ? RR.foldMap(O) : RR.foldMap(S.Ord)(O);\n}\nexports.foldMap = foldMap;\nfunction reduceRight() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduceRight(args[0]) : RR.reduceRight(S.Ord).apply(void 0, args);\n}\nexports.reduceRight = reduceRight;\n/**\n * Compact a `Record` of `Option`s discarding the `None` values and\n * keeping the `Some` values.\n *\n * @example\n * import { compact } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(compact({ a: option.some(\"foo\"), b: option.none, c: option.some(\"bar\") }), {\n * a: \"foo\",\n * c: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = RR.compact;\n/**\n * Separate a `Record` of `Either`s into `Left`s and `Right`s.\n *\n * @example\n * import { separate } from 'fp-ts/Record'\n * import { either } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * separate({ a: either.right(\"foo\"), b: either.left(\"bar\"), c: either.right(\"baz\") }),\n * {\n * right: {\n * a: \"foo\",\n * c: \"baz\",\n * },\n * left: {\n * b: \"bar\",\n * },\n * }\n * );\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.separate = RR.separate;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Record';\nfunction getShow(O) {\n return 'compare' in O ? RR.getShow(O) : RR.getShow(S.Ord)(O);\n}\nexports.getShow = getShow;\n/**\n * Given an `Eq` for the base type, it produces an `Eq`\n * for a `Record` of that base type.\n *\n * @example\n * import { getEq } from \"fp-ts/Record\";\n * import { string } from \"fp-ts\";\n * import { Eq } from \"fp-ts/Eq\";\n *\n * const eq: Eq> = getEq(string.Eq);\n * assert.deepStrictEqual(eq.equals({ a: \"foo\" }, { b: \"bar\" }), false);\n * assert.deepStrictEqual(eq.equals({ a: \"foo\" }, { a: \"foo\" }), true);\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RR.getEq;\n/**\n * Returns a `Monoid` instance for `Record`s, given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `Record`s comining the\n * overlapping entries with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getMonoid } from 'fp-ts/Record'\n *\n * const M = getMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getMonoid = RR.getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Takes a value and a `Record` of functions and returns a\n * `Record` by applying each function to the input value.\n *\n * @example\n * import { flap } from \"fp-ts/Record\"\n *\n * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` };\n * assert.deepStrictEqual(flap(3)(fab), {\n * x: \"3 times 2\",\n * y: \"6\",\n * });\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * Produces a `Foldable` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldable = function (O) { return ({\n URI: exports.URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O)\n}); };\nexports.getFoldable = getFoldable;\n/**\n * Produces a `FoldableWithIndex1` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldableWithIndex = function (O) { return ({\n URI: exports.URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O)\n}); };\nexports.getFoldableWithIndex = getFoldableWithIndex;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex\n};\n/**\n * Produces a `Traversable` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversable = function (O) { return ({\n URI: exports.URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: _traverse(O),\n sequence: _sequence(O)\n}); };\nexports.getTraversable = getTraversable;\n/**\n * Produces a `TraversableWithIndex` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversableWithIndex = function (O) { return ({\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O),\n traverse: _traverse(O),\n sequence: _sequence(O),\n traverseWithIndex: _traverseWithIndex(O)\n}); };\nexports.getTraversableWithIndex = getTraversableWithIndex;\n/**\n * @category filtering\n * @since 2.11.0\n */\nvar getWitherable = function (O) {\n var T = (0, exports.getTraversable)(O);\n return {\n URI: exports.URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: T.traverse,\n sequence: T.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: (0, Witherable_1.witherDefault)(T, exports.Compactable),\n wilt: (0, Witherable_1.wiltDefault)(T, exports.Compactable)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `Record` of the base type.\n * The resulting `Semigroup` concatenates two `Record`s by\n * `union`.\n *\n * @example\n * import { getUnionSemigroup } from \"fp-ts/Record\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sRecord: Semigroup> = getUnionSemigroup(sNumber);\n * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (S) {\n var unionS = (0, exports.union)(S);\n return {\n concat: function (first, second) { return unionS(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Same as `getMonoid`.\n * Returns a `Monoid` instance for `Record`s given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `Record`s combining the\n * entries that have the same key with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getUnionMonoid } from 'fp-ts/Record'\n *\n * const M = getUnionMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (S) { return ({\n concat: (0, exports.getUnionSemigroup)(S).concat,\n empty: {}\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `Record` of the base type.\n * The resulting `Semigroup` concatenates two `Record`s by\n * `intersection`.\n *\n * @example\n * import { getIntersectionSemigroup } from \"fp-ts/Record\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sRecord: Semigroup> = getIntersectionSemigroup(sNumber);\n * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (S) {\n var intersectionS = (0, exports.intersection)(S);\n return {\n concat: function (first, second) { return intersectionS(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Produces a `Magma` with a `concat` function that combines\n * two `Record`s by making the `difference`.\n *\n * @example\n * import { getDifferenceMagma, difference } from \"fp-ts/Record\"\n * import { Magma } from \"fp-ts/Magma\"\n *\n * const r1 = { a: 3, c: 3 };\n * const r2 = { a: 1, b: 2 };\n * const m: Magma> = getDifferenceMagma();\n * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1));\n * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function () { return ({\n concat: function (first, second) { return (0, exports.difference)(second)(first); }\n}); };\nexports.getDifferenceMagma = getDifferenceMagma;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `getFoldable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord)\n};\n/**\n * Use `getFoldableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord)\n};\n/**\n * Use `getTraversable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence\n};\n/**\n * Use the `getTraversableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord)\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * Use `getWitherable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Use a new `{}` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.empty = {};\n/**\n * Use [`upsertAt`](#upsertat) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.insertAt = exports.upsertAt;\n/**\n * Use [`has`](#has) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.hasOwnProperty = RR.hasOwnProperty;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.record`\n * (where `R` is from `import R from 'fp-ts/Record'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.record = {\n URI: exports.URI,\n map: _map,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord),\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord),\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pipe = exports.pipeable = exports.compose = exports.promap = exports.partitionMapWithIndex = exports.partitionWithIndex = exports.filterMapWithIndex = exports.filterWithIndex = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.alt = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.reduceRight = exports.foldMap = exports.reduce = exports.extend = exports.mapLeft = exports.bimap = exports.chain = exports.ap = exports.mapWithIndex = exports.contramap = exports.map = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nfunction map(F) {\n return function (f) { return function (fa) { return F.map(fa, f); }; };\n}\nexports.map = map;\nfunction contramap(F) {\n return function (f) { return function (fa) { return F.contramap(fa, f); }; };\n}\nexports.contramap = contramap;\nfunction mapWithIndex(F) {\n return function (f) { return function (fa) { return F.mapWithIndex(fa, f); }; };\n}\nexports.mapWithIndex = mapWithIndex;\nfunction ap(F) {\n return function (fa) { return function (fab) { return F.ap(fab, fa); }; };\n}\nexports.ap = ap;\nfunction chain(F) {\n return function (f) { return function (fa) { return F.chain(fa, f); }; };\n}\nexports.chain = chain;\nfunction bimap(F) {\n return function (f, g) { return function (fea) { return F.bimap(fea, f, g); }; };\n}\nexports.bimap = bimap;\nfunction mapLeft(F) {\n return function (f) { return function (fea) { return F.mapLeft(fea, f); }; };\n}\nexports.mapLeft = mapLeft;\nfunction extend(F) {\n return function (f) { return function (wa) { return F.extend(wa, f); }; };\n}\nexports.extend = extend;\nfunction reduce(F) {\n return function (b, f) { return function (fa) { return F.reduce(fa, b, f); }; };\n}\nexports.reduce = reduce;\nfunction foldMap(F) {\n return function (M) {\n var foldMapM = F.foldMap(M);\n return function (f) { return function (fa) { return foldMapM(fa, f); }; };\n };\n}\nexports.foldMap = foldMap;\nfunction reduceRight(F) {\n return function (b, f) { return function (fa) { return F.reduceRight(fa, b, f); }; };\n}\nexports.reduceRight = reduceRight;\nfunction reduceWithIndex(F) {\n return function (b, f) { return function (fa) { return F.reduceWithIndex(fa, b, f); }; };\n}\nexports.reduceWithIndex = reduceWithIndex;\nfunction foldMapWithIndex(F) {\n return function (M) {\n var foldMapWithIndexM = F.foldMapWithIndex(M);\n return function (f) { return function (fa) { return foldMapWithIndexM(fa, f); }; };\n };\n}\nexports.foldMapWithIndex = foldMapWithIndex;\nfunction reduceRightWithIndex(F) {\n return function (b, f) { return function (fa) { return F.reduceRightWithIndex(fa, b, f); }; };\n}\nexports.reduceRightWithIndex = reduceRightWithIndex;\nfunction alt(F) {\n return function (that) { return function (fa) { return F.alt(fa, that); }; };\n}\nexports.alt = alt;\nfunction filter(F) {\n return function (predicate) { return function (fa) { return F.filter(fa, predicate); }; };\n}\nexports.filter = filter;\nfunction filterMap(F) {\n return function (f) { return function (fa) { return F.filterMap(fa, f); }; };\n}\nexports.filterMap = filterMap;\nfunction partition(F) {\n return function (f) { return function (fa) { return F.partition(fa, f); }; };\n}\nexports.partition = partition;\nfunction partitionMap(F) {\n return function (f) { return function (fa) { return F.partitionMap(fa, f); }; };\n}\nexports.partitionMap = partitionMap;\nfunction filterWithIndex(F) {\n return function (predicate) { return function (fa) { return F.filterWithIndex(fa, predicate); }; };\n}\nexports.filterWithIndex = filterWithIndex;\nfunction filterMapWithIndex(F) {\n return function (f) { return function (fa) { return F.filterMapWithIndex(fa, f); }; };\n}\nexports.filterMapWithIndex = filterMapWithIndex;\nfunction partitionWithIndex(F) {\n return function (f) { return function (fa) { return F.partitionWithIndex(fa, f); }; };\n}\nexports.partitionWithIndex = partitionWithIndex;\nfunction partitionMapWithIndex(F) {\n return function (f) { return function (fa) { return F.partitionMapWithIndex(fa, f); }; };\n}\nexports.partitionMapWithIndex = partitionMapWithIndex;\nfunction promap(F) {\n return function (f, g) { return function (fbc) { return F.promap(fbc, f, g); }; };\n}\nexports.promap = promap;\nfunction compose(F) {\n return function (ea) { return function (ab) { return F.compose(ab, ea); }; };\n}\nexports.compose = compose;\nvar isFunctor = function (I) { return typeof I.map === 'function'; };\nvar isContravariant = function (I) { return typeof I.contramap === 'function'; };\nvar isFunctorWithIndex = function (I) { return typeof I.mapWithIndex === 'function'; };\nvar isApply = function (I) { return typeof I.ap === 'function'; };\nvar isChain = function (I) { return typeof I.chain === 'function'; };\nvar isBifunctor = function (I) { return typeof I.bimap === 'function'; };\nvar isExtend = function (I) { return typeof I.extend === 'function'; };\nvar isFoldable = function (I) { return typeof I.reduce === 'function'; };\nvar isFoldableWithIndex = function (I) { return typeof I.reduceWithIndex === 'function'; };\nvar isAlt = function (I) { return typeof I.alt === 'function'; };\nvar isCompactable = function (I) { return typeof I.compact === 'function'; };\nvar isFilterable = function (I) { return typeof I.filter === 'function'; };\nvar isFilterableWithIndex = function (I) {\n return typeof I.filterWithIndex === 'function';\n};\nvar isProfunctor = function (I) { return typeof I.promap === 'function'; };\nvar isSemigroupoid = function (I) { return typeof I.compose === 'function'; };\nvar isMonadThrow = function (I) { return typeof I.throwError === 'function'; };\n/** @deprecated */\nfunction pipeable(I) {\n var r = {};\n if (isFunctor(I)) {\n r.map = map(I);\n }\n if (isContravariant(I)) {\n r.contramap = contramap(I);\n }\n if (isFunctorWithIndex(I)) {\n r.mapWithIndex = mapWithIndex(I);\n }\n if (isApply(I)) {\n r.ap = ap(I);\n r.apFirst = (0, Apply_1.apFirst)(I);\n r.apSecond = (0, Apply_1.apSecond)(I);\n }\n if (isChain(I)) {\n r.chain = chain(I);\n r.chainFirst = (0, Chain_1.chainFirst)(I);\n r.flatten = r.chain(function_1.identity);\n }\n if (isBifunctor(I)) {\n r.bimap = bimap(I);\n r.mapLeft = mapLeft(I);\n }\n if (isExtend(I)) {\n r.extend = extend(I);\n r.duplicate = r.extend(function_1.identity);\n }\n if (isFoldable(I)) {\n r.reduce = reduce(I);\n r.foldMap = foldMap(I);\n r.reduceRight = reduceRight(I);\n }\n if (isFoldableWithIndex(I)) {\n r.reduceWithIndex = reduceWithIndex(I);\n r.foldMapWithIndex = foldMapWithIndex(I);\n r.reduceRightWithIndex = reduceRightWithIndex(I);\n }\n if (isAlt(I)) {\n r.alt = alt(I);\n }\n if (isCompactable(I)) {\n r.compact = I.compact;\n r.separate = I.separate;\n }\n if (isFilterable(I)) {\n r.filter = filter(I);\n r.filterMap = filterMap(I);\n r.partition = partition(I);\n r.partitionMap = partitionMap(I);\n }\n if (isFilterableWithIndex(I)) {\n r.filterWithIndex = filterWithIndex(I);\n r.filterMapWithIndex = filterMapWithIndex(I);\n r.partitionWithIndex = partitionWithIndex(I);\n r.partitionMapWithIndex = partitionMapWithIndex(I);\n }\n if (isProfunctor(I)) {\n r.promap = promap(I);\n }\n if (isSemigroupoid(I)) {\n r.compose = compose(I);\n }\n if (isMonadThrow(I)) {\n var fromOption = function (onNone) { return function (ma) {\n return ma._tag === 'None' ? I.throwError(onNone()) : I.of(ma.value);\n }; };\n var fromEither = function (ma) {\n return ma._tag === 'Left' ? I.throwError(ma.left) : I.of(ma.right);\n };\n var fromPredicate = function (predicate, onFalse) {\n return function (a) {\n return predicate(a) ? I.of(a) : I.throwError(onFalse(a));\n };\n };\n var filterOrElse = function (predicate, onFalse) {\n return function (ma) {\n return I.chain(ma, function (a) { return (predicate(a) ? I.of(a) : I.throwError(onFalse(a))); });\n };\n };\n r.fromOption = fromOption;\n r.fromEither = fromEither;\n r.fromPredicate = fromPredicate;\n r.filterOrElse = filterOrElse;\n }\n return r;\n}\nexports.pipeable = pipeable;\n/**\n * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#pipe) from `function` module instead.\n *\n * @since 2.0.0\n * @deprecated\n */\nexports.pipe = function_1.pipe;\n", "/**\n * @since 1.1.0\n */\nimport {Predicate} from 'fp-ts/function'\n\n/**\n * @since 1.1.0\n */\n/* eslint-disable @typescript-eslint/array-type */\nexport const takeUntil =\n (predicate: Predicate) =>\n (as: ReadonlyArray): ReadonlyArray => {\n const init = []\n\n // eslint-disable-next-line unicorn/no-for-loop\n for (let i = 0; i < as.length; i++) {\n init[i] = as[i]\n if (predicate(as[i])) {\n return init\n }\n }\n\n return init\n }\n/* eslint-enable @typescript-eslint/array-type */\n", "/**\n * An [io-ts Reporter](https://gcanti.github.io/io-ts/modules/Reporter.ts.html#reporter-interface).\n *\n * @example\n *\n * import * as t from 'io-ts';\n * import Reporter from 'io-ts-reporters';\n *\n * const User = t.interface({ name: t.string });\n *\n * assert.deepEqual(\n * Reporter.report(User.decode({ nam: 'Jane' })),\n * ['Expecting string at name but instead got: undefined'],\n * )\n * assert.deepEqual( Reporter.report(User.decode({ name: 'Jane' })), [])\n *\n * @since 1.2.0\n */\nimport * as A from 'fp-ts/Array'\nimport * as E from 'fp-ts/Either'\nimport * as NEA from 'fp-ts/NonEmptyArray'\nimport * as O from 'fp-ts/Option'\nimport * as R from 'fp-ts/Record'\nimport {pipe} from 'fp-ts/pipeable'\nimport * as t from 'io-ts'\nimport {Reporter} from 'io-ts/lib/Reporter'\n\nimport {takeUntil} from './utils'\n\nconst isUnionType = ({type}: t.ContextEntry) => type instanceof t.UnionType\n\nconst jsToString = (value: t.mixed) =>\n value === undefined ? 'undefined' : JSON.stringify(value)\n\nconst keyPath = (ctx: t.Context) =>\n // The context entry with an empty key is the original\n // type (\"default context\"), not a type error.\n ctx\n .map((c) => c.key)\n .filter(Boolean)\n .join('.')\n\n// The actual error is last in context\nconst getErrorFromCtx = (validation: t.ValidationError) =>\n // https://github.com/gcanti/fp-ts/pull/544/files\n A.last(validation.context as t.ContextEntry[])\n\nconst getValidationContext = (validation: t.ValidationError) =>\n // https://github.com/gcanti/fp-ts/pull/544/files\n validation.context as t.ContextEntry[]\n\n/**\n * @category internals\n * @since 1.2.1\n */\nexport const TYPE_MAX_LEN = 160 // Two lines of 80-col text\nconst truncateType = (type: string, options: ReporterOptions = {}): string => {\n const {truncateLongTypes = true} = options\n\n if (truncateLongTypes && type.length > TYPE_MAX_LEN) {\n return `${type.slice(0, TYPE_MAX_LEN - 3)}...`\n }\n\n return type\n}\n\nconst errorMessageSimple = (\n expectedType: string,\n path: string,\n error: t.ValidationError,\n options?: ReporterOptions,\n) =>\n // https://github.com/elm-lang/core/blob/18c9e84e975ed22649888bfad15d1efdb0128ab2/src/Native/Json.js#L199\n [\n `Expecting ${truncateType(expectedType, options)}`,\n path === '' ? '' : `at ${path}`,\n `but instead got: ${jsToString(error.value)}`,\n error.message ? `(${error.message})` : '',\n ]\n .filter(Boolean)\n .join(' ')\n\nconst errorMessageUnion = (\n expectedTypes: string[],\n path: string,\n value: unknown,\n options?: ReporterOptions,\n) =>\n // https://github.com/elm-lang/core/blob/18c9e84e975ed22649888bfad15d1efdb0128ab2/src/Native/Json.js#L199\n [\n 'Expecting one of:\\n',\n expectedTypes\n .map((type) => ` ${truncateType(type, options)}`)\n .join('\\n'),\n path === '' ? '\\n' : `\\nat ${path} `,\n `but instead got: ${jsToString(value)}`,\n ]\n .filter(Boolean)\n .join('')\n\n// Find the union type in the list of ContextEntry\n// The next ContextEntry should be the type of this branch of the union\nconst findExpectedType = (ctx: t.ContextEntry[]) =>\n pipe(\n ctx,\n A.findIndex(isUnionType),\n O.chain((n) => A.lookup(n + 1, ctx)),\n )\n\nconst formatValidationErrorOfUnion = (\n path: string,\n errors: NEA.NonEmptyArray,\n options?: ReporterOptions,\n) => {\n const expectedTypes = pipe(\n errors,\n A.map(getValidationContext),\n A.map(findExpectedType),\n A.compact,\n )\n\n const value = pipe(\n expectedTypes,\n A.head,\n O.map((v) => v.actual),\n O.getOrElse((): unknown => undefined),\n )\n\n const expected = expectedTypes.map(({type}) => type.name)\n\n return expected.length > 0\n ? O.some(errorMessageUnion(expected, path, value, options))\n : O.none\n}\n\nconst formatValidationCommonError = (\n path: string,\n error: t.ValidationError,\n options?: ReporterOptions,\n) =>\n pipe(\n error,\n getErrorFromCtx,\n O.map((errorContext) =>\n errorMessageSimple(errorContext.type.name, path, error, options),\n ),\n )\n\nconst groupByKey = NEA.groupBy((error: t.ValidationError) =>\n pipe(error.context, takeUntil(isUnionType), keyPath),\n)\n\nconst format = (\n path: string,\n errors: NEA.NonEmptyArray,\n options?: ReporterOptions,\n) =>\n NEA.tail(errors).length > 0\n ? formatValidationErrorOfUnion(path, errors, options)\n : formatValidationCommonError(path, NEA.head(errors), options)\n\n/**\n * Format a single validation error.\n *\n * @category formatters\n * @since 1.0.0\n */\nexport const formatValidationError = (\n error: t.ValidationError,\n options?: ReporterOptions,\n) => formatValidationCommonError(keyPath(error.context), error, options)\n\n/**\n * Format validation errors (`t.Errors`).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import * as t from 'io-ts'\n * import { formatValidationErrors } from 'io-ts-reporters'\n *\n * const result = t.string.decode(123)\n *\n * assert.deepEqual(\n * E.mapLeft(formatValidationErrors)(result),\n * E.left(['Expecting string but instead got: 123'])\n * )\n *\n * @category formatters\n * @since 1.2.0\n */\nexport const formatValidationErrors = (\n errors: t.Errors,\n options?: ReporterOptions,\n) =>\n pipe(\n errors,\n groupByKey,\n R.mapWithIndex((path, errors) => format(path, errors, options)),\n R.compact,\n R.toArray,\n A.map(([_key, error]) => error),\n )\n\n/**\n * @category formatters\n * @since 1.2.2\n */\nexport interface ReporterOptions {\n truncateLongTypes?: boolean\n}\n\n/**\n * Deprecated, use the default export instead.\n *\n * @category deprecated\n * @deprecated\n * @since 1.0.0\n */\nexport const reporter = (\n validation: t.Validation,\n options?: ReporterOptions,\n) =>\n pipe(\n validation,\n E.mapLeft((errors) => formatValidationErrors(errors, options)),\n E.fold(\n (errors) => errors,\n () => [],\n ),\n )\n\ninterface PrettyReporter extends Reporter {\n report: (\n validation: t.Validation,\n options?: ReporterOptions,\n ) => string[]\n}\n\nconst prettyReporter: PrettyReporter = {report: reporter}\nexport default prettyReporter\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryCache = void 0;\nclass InMemoryCache {\n constructor() {\n this.cache = new Map();\n this.set = async (namespace, key, value) => {\n if (value !== null) {\n this.cache.set(namespace + '$$' + key, value);\n }\n else {\n this.cache.delete(namespace + '$$' + key);\n }\n };\n this.get = async (namespace, key) => {\n let res = this.cache.get(namespace + '$$' + key);\n if (res !== undefined) {\n return res;\n }\n else {\n return null;\n }\n };\n }\n}\nexports.InMemoryCache = InMemoryCache;\n", "\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array and returns Promise>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n\n var cacheKey = this._cacheKeyFn(key); // If caching and there is a cache-hit, return cached Promise.\n\n\n if (cacheMap) {\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n };\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize && (!existingBatch.cacheHits || existingBatch.cacheHits.length < loader._maxBatchSize)) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise = loader._batchLoadFn(batch.keys); // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array and returns Promise>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array and returns Promise>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array and returns Promise>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var value = values[i];\n\n if (value instanceof Error) {\n batch.callbacks[i].reject(value);\n } else {\n batch.callbacks[i].resolve(value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;", "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n", "module.exports = {\n \"version\": \"0.25.0\"\n};", "'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", "{\n \"name\": \"ton\",\n \"version\": \"13.4.1\",\n \"repository\": \"https://github.com/ton-core/ton.git\",\n \"author\": \"Whales Corp. \",\n \"license\": \"MIT\",\n \"main\": \"dist/index.js\",\n \"files\": [\n \"dist\"\n ],\n \"scripts\": {\n \"docs\": \"rm -fr docs && typedoc src/index.ts\",\n \"build\": \"rm -fr dist && tsc --declaration\",\n \"test\": \"jest --verbose --runInBand\",\n \"release\": \"yarn build && yarn release-it --npm.yarn1\"\n },\n \"devDependencies\": {\n \"@release-it/keep-a-changelog\": \"^3.1.0\",\n \"@types/jest\": \"^27.0.1\",\n \"@types/node\": \"^16.7.10\",\n \"buffer\": \"^6.0.3\",\n \"expect\": \"^27.1.0\",\n \"jest\": \"^27.1.0\",\n \"jest-mock\": \"^27.1.0\",\n \"karma\": \"^6.3.4\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-jasmine\": \"^4.0.1\",\n \"karma-typescript\": \"^5.5.2\",\n \"karma-webpack\": \"^5.0.0\",\n \"prando\": \"^6.0.1\",\n \"release-it\": \"^15.5.1\",\n \"ton-core\": \"^0.48.0\",\n \"ton-crypto\": \"3.2.0\",\n \"ton-emulator\": \"^2.1.1\",\n \"ts-jest\": \"^27.0.5\",\n \"ts-loader\": \"^9.2.5\",\n \"ts-node\": \"^10.7.0\",\n \"typedoc\": \"^0.23.24\",\n \"typescript\": \"^4.4.2\",\n \"webpack\": \"^5.51.2\"\n },\n \"dependencies\": {\n \"axios\": \"^0.25.0\",\n \"dataloader\": \"^2.0.0\",\n \"fp-ts\": \"^2.11.1\",\n \"io-ts\": \"^2.2.16\",\n \"io-ts-reporters\": \"^2.0.0\",\n \"symbol.inspect\": \"1.0.1\",\n \"teslabot\": \"^1.3.0\"\n },\n \"peerDependencies\": {\n \"ton-core\": \">=0.48.0\",\n \"ton-crypto\": \">=3.2.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n },\n \"release-it\": {\n \"github\": {\n \"release\": true\n },\n \"plugins\": {\n \"@release-it/keep-a-changelog\": {\n \"filename\": \"CHANGELOG.md\"\n }\n }\n },\n \"packageManager\": \"yarn@3.4.1\"\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpApi = void 0;\nconst t = __importStar(require(\"io-ts\"));\nconst Either_1 = require(\"fp-ts/lib/Either\");\nconst io_ts_reporters_1 = __importDefault(require(\"io-ts-reporters\"));\nconst TonCache_1 = require(\"./TonCache\");\nconst dataloader_1 = __importDefault(require(\"dataloader\"));\nconst axios_1 = __importDefault(require(\"axios\"));\nconst version = require('../../../package.json').version;\nconst blockIdExt = t.type({\n '@type': t.literal('ton.blockIdExt'),\n workchain: t.number,\n shard: t.string,\n seqno: t.number,\n root_hash: t.string,\n file_hash: t.string\n});\nconst addressInformation = t.type({\n balance: t.union([t.number, t.string]),\n state: t.union([t.literal('active'), t.literal('uninitialized'), t.literal('frozen')]),\n data: t.string,\n code: t.string,\n last_transaction_id: t.type({\n '@type': t.literal('internal.transactionId'),\n lt: t.string,\n hash: t.string\n }),\n block_id: blockIdExt,\n sync_utime: t.number\n});\nconst bocResponse = t.type({\n '@type': t.literal('ok')\n});\nconst feeResponse = t.type({\n '@type': t.literal('query.fees'),\n source_fees: t.type({\n '@type': t.literal('fees'),\n in_fwd_fee: t.number,\n storage_fee: t.number,\n gas_fee: t.number,\n fwd_fee: t.number\n })\n});\nconst callGetMethod = t.type({\n gas_used: t.number,\n exit_code: t.number,\n stack: t.array(t.unknown)\n});\nconst messageData = t.union([\n t.type({\n '@type': t.literal('msg.dataRaw'),\n 'body': t.string\n }),\n t.type({\n '@type': t.literal('msg.dataText'),\n 'text': t.string\n }),\n t.type({\n '@type': t.literal('msg.dataDecryptedText'),\n 'text': t.string\n }),\n t.type({\n '@type': t.literal('msg.dataEncryptedText'),\n 'text': t.string\n })\n]);\nconst message = t.type({\n source: t.string,\n destination: t.string,\n value: t.string,\n fwd_fee: t.string,\n ihr_fee: t.string,\n created_lt: t.string,\n body_hash: t.string,\n msg_data: messageData\n});\nconst transaction = t.type({\n data: t.string,\n utime: t.number,\n transaction_id: t.type({\n lt: t.string,\n hash: t.string\n }),\n fee: t.string,\n storage_fee: t.string,\n other_fee: t.string,\n in_msg: t.union([t.undefined, message]),\n out_msgs: t.array(message)\n});\nconst getTransactions = t.array(transaction);\nconst getMasterchain = t.type({\n state_root_hash: t.string,\n last: blockIdExt,\n init: blockIdExt\n});\nconst getShards = t.type({\n shards: t.array(blockIdExt)\n});\nconst blockShortTxt = t.type({\n '@type': t.literal('blocks.shortTxId'),\n mode: t.number,\n account: t.string,\n lt: t.string,\n hash: t.string\n});\nconst getBlockTransactions = t.type({\n id: blockIdExt,\n req_count: t.number,\n incomplete: t.boolean,\n transactions: t.array(blockShortTxt)\n});\nclass TypedCache {\n constructor(namespace, cache, codec, keyEncoder) {\n this.namespace = namespace;\n this.cache = cache;\n this.codec = codec;\n this.keyEncoder = keyEncoder;\n }\n async get(key) {\n let ex = await this.cache.get(this.namespace, this.keyEncoder(key));\n if (ex) {\n let decoded = this.codec.decode(JSON.parse(ex));\n if ((0, Either_1.isRight)(decoded)) {\n return decoded.right;\n }\n }\n return null;\n }\n async set(key, value) {\n if (value !== null) {\n await this.cache.set(this.namespace, this.keyEncoder(key), JSON.stringify(value));\n }\n else {\n await this.cache.set(this.namespace, this.keyEncoder(key), null);\n }\n }\n}\nclass HttpApi {\n constructor(endpoint, parameters) {\n this.endpoint = endpoint;\n this.cache = new TonCache_1.InMemoryCache();\n this.parameters = {\n timeout: parameters?.timeout || 30000,\n apiKey: parameters?.apiKey\n };\n // Shard\n this.shardCache = new TypedCache('ton-shard', this.cache, t.array(blockIdExt), (src) => src + '');\n this.shardLoader = new dataloader_1.default(async (src) => {\n return await Promise.all(src.map(async (v) => {\n const cached = await this.shardCache.get(v);\n if (cached) {\n return cached;\n }\n let loaded = (await this.doCall('shards', { seqno: v }, getShards)).shards;\n await this.shardCache.set(v, loaded);\n return loaded;\n }));\n });\n // Shard Transactions\n this.shardTransactionsCache = new TypedCache('ton-shard-tx', this.cache, getBlockTransactions, (src) => src.workchain + ':' + src.shard + ':' + src.seqno);\n this.shardTransactionsLoader = new dataloader_1.default(async (src) => {\n return await Promise.all(src.map(async (v) => {\n const cached = await this.shardTransactionsCache.get(v);\n if (cached) {\n return cached;\n }\n let loaded = await this.doCall('getBlockTransactions', { workchain: v.workchain, seqno: v.seqno, shard: v.shard }, getBlockTransactions);\n await this.shardTransactionsCache.set(v, loaded);\n return loaded;\n }));\n }, { cacheKeyFn: (src) => src.workchain + ':' + src.shard + ':' + src.seqno });\n }\n getAddressInformation(address) {\n return this.doCall('getAddressInformation', { address: address.toString() }, addressInformation);\n }\n async getTransactions(address, opts) {\n const inclusive = opts.inclusive;\n delete opts.inclusive;\n // Convert hash\n let hash = undefined;\n if (opts.hash) {\n hash = Buffer.from(opts.hash, 'base64').toString('hex');\n }\n // Adjust limit\n let limit = opts.limit;\n if (opts.hash && opts.lt && inclusive !== true) {\n limit++;\n }\n // Do request\n let res = await this.doCall('getTransactions', { address: address.toString(), ...opts, limit, hash }, getTransactions);\n if (res.length > limit) {\n res = res.slice(0, limit);\n }\n // Adjust result\n if (opts.hash && opts.lt && inclusive !== true) {\n res.shift();\n return res;\n }\n else {\n return res;\n }\n }\n async getMasterchainInfo() {\n return await this.doCall('getMasterchainInfo', {}, getMasterchain);\n }\n async getShards(seqno) {\n return await this.shardLoader.load(seqno);\n }\n async getBlockTransactions(workchain, seqno, shard) {\n return await this.shardTransactionsLoader.load({ workchain, seqno, shard });\n }\n async getTransaction(address, lt, hash) {\n let convHash = Buffer.from(hash, 'base64').toString('hex');\n let res = await this.doCall('getTransactions', { address: address.toString(), lt, hash: convHash, limit: 1 }, getTransactions);\n let ex = res.find((v) => v.transaction_id.lt === lt && v.transaction_id.hash === hash);\n if (ex) {\n return ex;\n }\n else {\n return null;\n }\n }\n async callGetMethod(address, method, stack) {\n return await this.doCall('runGetMethod', { address: address.toString(), method, stack: serializeStack(stack) }, callGetMethod);\n }\n async sendBoc(body) {\n await this.doCall('sendBoc', { boc: body.toString('base64') }, bocResponse);\n }\n async estimateFee(address, args) {\n return await this.doCall('estimateFee', {\n address: address.toString(),\n body: args.body.toBoc().toString('base64'),\n 'init_data': args.initData ? args.initData.toBoc().toString('base64') : '',\n 'init_code': args.initCode ? args.initCode.toBoc().toString('base64') : '',\n ignore_chksig: args.ignoreSignature\n }, feeResponse);\n }\n async doCall(method, body, codec) {\n let headers = {\n 'Content-Type': 'application/json',\n 'X-Ton-Client-Version': version,\n };\n if (this.parameters.apiKey) {\n headers['X-API-Key'] = this.parameters.apiKey;\n }\n let res = await axios_1.default.post(this.endpoint, JSON.stringify({\n id: '1',\n jsonrpc: '2.0',\n method: method,\n params: body\n }), {\n headers,\n timeout: this.parameters.timeout,\n });\n if (res.status !== 200 || !res.data.ok) {\n throw Error('Received error: ' + JSON.stringify(res.data));\n }\n let decoded = codec.decode(res.data.result);\n if ((0, Either_1.isRight)(decoded)) {\n return decoded.right;\n }\n else {\n throw Error('Malformed response: ' + io_ts_reporters_1.default.report(decoded).join(', '));\n }\n }\n}\nexports.HttpApi = HttpApi;\nfunction serializeStack(src) {\n let stack = [];\n for (let s of src) {\n if (s.type === 'int') {\n stack.push(['num', s.value.toString()]);\n }\n else if (s.type === 'cell') {\n stack.push(['tvm.Cell', s.cell.toBoc().toString('base64')]);\n }\n else if (s.type === 'slice') {\n stack.push(['tvm.Slice', s.cell.toBoc().toString('base64')]);\n }\n else if (s.type === 'builder') {\n stack.push(['tvm.Builder', s.cell.toBoc().toString('base64')]);\n }\n else {\n throw Error('Unsupported stack item type: ' + s.type);\n }\n }\n return stack;\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TonClient_api;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TonClient = void 0;\nconst HttpApi_1 = require(\"./api/HttpApi\");\nconst ton_core_1 = require(\"ton-core\");\nclass TonClient {\n constructor(parameters) {\n _TonClient_api.set(this, void 0);\n this.parameters = {\n endpoint: parameters.endpoint\n };\n __classPrivateFieldSet(this, _TonClient_api, new HttpApi_1.HttpApi(this.parameters.endpoint, {\n timeout: parameters.timeout,\n apiKey: parameters.apiKey,\n adapter: parameters.httpAdapter\n }), \"f\");\n }\n /**\n * Get Address Balance\n * @param address address for balance check\n * @returns balance\n */\n async getBalance(address) {\n return (await this.getContractState(address)).balance;\n }\n /**\n * Invoke get method\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n */\n async runMethod(address, name, stack = []) {\n let res = await __classPrivateFieldGet(this, _TonClient_api, \"f\").callGetMethod(address, name, stack);\n if (res.exit_code !== 0) {\n throw Error('Unable to execute get method. Got exit_code: ' + res.exit_code);\n }\n return { gas_used: res.gas_used, stack: parseStack(res.stack) };\n }\n /**\n * Invoke get method\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n * @deprecated use runMethod instead\n */\n async callGetMethod(address, name, stack = []) {\n return this.runMethod(address, name, stack);\n }\n /**\n * Invoke get method that returns error code instead of throwing error\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n */\n async runMethodWithError(address, name, params = []) {\n let res = await __classPrivateFieldGet(this, _TonClient_api, \"f\").callGetMethod(address, name, params);\n return { gas_used: res.gas_used, stack: parseStack(res.stack), exit_code: res.exit_code };\n }\n /**\n * Invoke get method that returns error code instead of throwing error\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n * @deprecated use runMethodWithError instead\n */\n async callGetMethodWithError(address, name, stack = []) {\n return this.runMethodWithError(address, name, stack);\n }\n /**\n * Get transactions\n * @param address address\n */\n async getTransactions(address, opts) {\n // Fetch transactions\n let tx = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getTransactions(address, opts);\n let res = [];\n for (let r of tx) {\n res.push((0, ton_core_1.loadTransaction)(ton_core_1.Cell.fromBoc(Buffer.from(r.data, 'base64'))[0].beginParse()));\n }\n return res;\n }\n /**\n * Get transaction by it's id\n * @param address address\n * @param lt logical time\n * @param hash transaction hash\n * @returns transaction or null if not exist\n */\n async getTransaction(address, lt, hash) {\n let res = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getTransaction(address, lt, hash);\n if (res) {\n return (0, ton_core_1.loadTransaction)(ton_core_1.Cell.fromBoc(Buffer.from(res.data, 'base64'))[0].beginParse());\n }\n else {\n return null;\n }\n }\n /**\n * Fetch latest masterchain info\n * @returns masterchain info\n */\n async getMasterchainInfo() {\n let r = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getMasterchainInfo();\n return {\n workchain: r.init.workchain,\n shard: r.last.shard,\n initSeqno: r.init.seqno,\n latestSeqno: r.last.seqno\n };\n }\n /**\n * Fetch latest workchain shards\n * @param seqno masterchain seqno\n */\n async getWorkchainShards(seqno) {\n let r = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getShards(seqno);\n return r.map((m) => ({\n workchain: m.workchain,\n shard: m.shard,\n seqno: m.seqno\n }));\n }\n /**\n * Fetch transactions inf shards\n * @param workchain\n * @param seqno\n * @param shard\n */\n async getShardTransactions(workchain, seqno, shard) {\n let tx = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getBlockTransactions(workchain, seqno, shard);\n if (tx.incomplete) {\n throw Error('Unsupported');\n }\n return tx.transactions.map((v) => ({\n account: ton_core_1.Address.parseRaw(v.account),\n lt: v.lt,\n hash: v.hash\n }));\n }\n /**\n * Send message to a network\n * @param src source message\n */\n async sendMessage(src) {\n const boc = (0, ton_core_1.beginCell)()\n .store((0, ton_core_1.storeMessage)(src))\n .endCell()\n .toBoc();\n await __classPrivateFieldGet(this, _TonClient_api, \"f\").sendBoc(boc);\n }\n /**\n * Send file to a network\n * @param src source file\n */\n async sendFile(src) {\n await __classPrivateFieldGet(this, _TonClient_api, \"f\").sendBoc(src);\n }\n /**\n * Estimate fees for external message\n * @param address target address\n * @returns\n */\n async estimateExternalMessageFee(address, args) {\n return await __classPrivateFieldGet(this, _TonClient_api, \"f\").estimateFee(address, { body: args.body, initCode: args.initCode, initData: args.initData, ignoreSignature: args.ignoreSignature });\n }\n /**\n * Send external message to contract\n * @param contract contract to send message\n * @param src message body\n */\n async sendExternalMessage(contract, src) {\n if (await this.isContractDeployed(contract.address) || !contract.init) {\n const message = (0, ton_core_1.external)({\n to: contract.address,\n body: src\n });\n await this.sendMessage(message);\n }\n else {\n const message = (0, ton_core_1.external)({\n to: contract.address,\n init: { code: contract.init.code, data: contract.init.data },\n body: src\n });\n await this.sendMessage(message);\n }\n }\n /**\n * Check if contract is deployed\n * @param address addres to check\n * @returns true if contract is in active state\n */\n async isContractDeployed(address) {\n return (await this.getContractState(address)).state === 'active';\n }\n /**\n * Resolves contract state\n * @param address contract address\n */\n async getContractState(address) {\n let info = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getAddressInformation(address);\n let balance = BigInt(info.balance);\n let state = info.state;\n return {\n balance,\n state,\n code: info.code !== '' ? Buffer.from(info.code, 'base64') : null,\n data: info.data !== '' ? Buffer.from(info.data, 'base64') : null,\n lastTransaction: info.last_transaction_id.lt !== '0' ? {\n lt: info.last_transaction_id.lt,\n hash: info.last_transaction_id.hash,\n } : null,\n blockId: {\n workchain: info.block_id.workchain,\n shard: info.block_id.shard,\n seqno: info.block_id.seqno\n },\n timestampt: info.sync_utime\n };\n }\n /**\n * Open contract\n * @param src source contract\n * @returns contract\n */\n open(src) {\n return (0, ton_core_1.openContract)(src, (args) => createProvider(this, args.address, args.init));\n }\n /**\n * Create a provider\n * @param address address\n * @param init optional init\n * @returns provider\n */\n provider(address, init) {\n return createProvider(this, address, init);\n }\n}\nexports.TonClient = TonClient;\n_TonClient_api = new WeakMap();\nfunction parseStack(src) {\n let stack = [];\n for (let s of src) {\n if (s[0] === 'num') {\n let val = s[1];\n if (val.startsWith('-')) {\n stack.push({ type: 'int', value: -BigInt(val.slice(1)) });\n }\n else {\n stack.push({ type: 'int', value: BigInt(val) });\n }\n }\n else if (s[0] === 'null') {\n stack.push({ type: 'null' });\n }\n else if (s[0] === 'cell') {\n stack.push({ type: 'cell', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] });\n }\n else if (s[0] === 'slice') {\n stack.push({ type: 'slice', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] });\n }\n else if (s[0] === 'builder') {\n stack.push({ type: 'builder', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] });\n }\n else {\n throw Error('Unsupported stack item type: ' + s[0]);\n }\n }\n return new ton_core_1.TupleReader(stack);\n}\nfunction createProvider(client, address, init) {\n return {\n async getState() {\n let state = await client.getContractState(address);\n let balance = state.balance;\n let last = state.lastTransaction ? { lt: BigInt(state.lastTransaction.lt), hash: Buffer.from(state.lastTransaction.hash, 'base64') } : null;\n let storage;\n if (state.state === 'active') {\n storage = {\n type: 'active',\n code: state.code ? state.code : null,\n data: state.data ? state.data : null,\n };\n }\n else if (state.state === 'uninitialized') {\n storage = {\n type: 'uninit',\n };\n }\n else if (state.state === 'frozen') {\n storage = {\n type: 'frozen',\n stateHash: Buffer.alloc(0),\n };\n }\n else {\n throw Error('Unsupported state');\n }\n return {\n balance,\n last,\n state: storage,\n };\n },\n async get(name, args) {\n let method = await client.callGetMethod(address, name, args);\n return { stack: method.stack };\n },\n async external(message) {\n //\n // Resolve init\n //\n let neededInit = null;\n if (init && !await client.isContractDeployed(address)) {\n neededInit = init;\n }\n //\n // Send package\n //\n const ext = (0, ton_core_1.external)({\n to: address,\n init: neededInit ? { code: neededInit.code, data: neededInit.data } : null,\n body: message\n });\n let boc = (0, ton_core_1.beginCell)()\n .store((0, ton_core_1.storeMessage)(ext))\n .endCell()\n .toBoc();\n await client.sendFile(boc);\n },\n async internal(via, message) {\n // Resolve init\n let neededInit = null;\n if (init && (!await client.isContractDeployed(address))) {\n neededInit = init;\n }\n // Resolve bounce\n let bounce = true;\n if (message.bounce !== null && message.bounce !== undefined) {\n bounce = message.bounce;\n }\n // Resolve value\n let value;\n if (typeof message.value === 'string') {\n value = (0, ton_core_1.toNano)(message.value);\n }\n else {\n value = message.value;\n }\n // Resolve body\n let body = null;\n if (typeof message.body === 'string') {\n body = (0, ton_core_1.comment)(message.body);\n }\n else if (message.body) {\n body = message.body;\n }\n // Send internal message\n await via.send({\n to: address,\n value,\n bounce,\n sendMode: message.sendMode,\n init: neededInit,\n body\n });\n }\n };\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUrlSafe = void 0;\nfunction toUrlSafe(src) {\n while (src.indexOf('/') >= 0) {\n src = src.replace('/', '_');\n }\n while (src.indexOf('+') >= 0) {\n src = src.replace('+', '-');\n }\n while (src.indexOf('=') >= 0) {\n src = src.replace('=', '');\n }\n return src;\n}\nexports.toUrlSafe = toUrlSafe;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _TonClient4_endpoint, _TonClient4_timeout, _TonClient4_adapter;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TonClient4 = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst t = __importStar(require(\"io-ts\"));\nconst ton_core_1 = require(\"ton-core\");\nconst toUrlSafe_1 = require(\"../utils/toUrlSafe\");\nclass TonClient4 {\n constructor(args) {\n _TonClient4_endpoint.set(this, void 0);\n _TonClient4_timeout.set(this, void 0);\n _TonClient4_adapter.set(this, void 0);\n __classPrivateFieldSet(this, _TonClient4_endpoint, args.endpoint, \"f\");\n __classPrivateFieldSet(this, _TonClient4_timeout, args.timeout || 5000, \"f\");\n __classPrivateFieldSet(this, _TonClient4_adapter, args.httpAdapter, \"f\");\n }\n /**\n * Get Last Block\n * @returns last block info\n */\n async getLastBlock() {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/latest', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!lastBlockCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Get block info\n * @param seqno block sequence number\n * @returns block info\n */\n async getBlock(seqno) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!blockCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n if (!res.data.exist) {\n throw Error('Block is out of scope');\n }\n return res.data.block;\n }\n /**\n * Get block info by unix timestamp\n * @param ts unix timestamp\n * @returns block info\n */\n async getBlockByUtime(ts) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/utime/' + ts, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!blockCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n if (!res.data.exist) {\n throw Error('Block is out of scope');\n }\n return res.data.block;\n }\n /**\n * Get block info by unix timestamp\n * @param seqno block sequence number\n * @param address account address\n * @returns account info\n */\n async getAccount(seqno, address) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!accountCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Get account lite info (without code and data)\n * @param seqno block sequence number\n * @param address account address\n * @returns account lite info\n */\n async getAccountLite(seqno, address) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/lite', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!accountLiteCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Check if contract is deployed\n * @param address addres to check\n * @returns true if contract is in active state\n */\n async isContractDeployed(seqno, address) {\n let account = await this.getAccountLite(seqno, address);\n return account.account.state.type === 'active';\n }\n /**\n * Check if account was updated since\n * @param seqno block sequence number\n * @param address account address\n * @param lt account last transaction lt\n * @returns account change info\n */\n async isAccountChanged(seqno, address, lt) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/changed/' + lt.toString(10), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!changedCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Load one unparsed account transaction\n * @param seqno block sequence number\n * @param address account address\n * @param lt account last transaction lt\n * @returns one unparsed transaction\n */\n async getTransaction(seqno, address, lt) {\n const urladdr = address.toString({ urlSafe: true });\n const urlpath = `/block/${seqno}/${urladdr}/tx/${lt.toString(10)}`;\n const res = await axios_1.default.get(new URL(urlpath, __classPrivateFieldGet(this, _TonClient4_endpoint, \"f\")).href, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!transactionCodec.is(res.data))\n throw Error('Mailformed response');\n const txcell = ton_core_1.Cell.fromBoc(Buffer.from(res.data.boc, 'base64'))[0];\n return { tx: (0, ton_core_1.loadTransaction)(txcell.beginParse()), ...res.data };\n }\n /**\n * Load unparsed account transactions\n * @param address address\n * @param lt last transaction lt\n * @param hash last transaction hash\n * @returns unparsed transactions\n */\n async getAccountTransactions(address, lt, hash) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/account/' + address.toString({ urlSafe: true }) + '/tx/' + lt.toString(10) + '/' + (0, toUrlSafe_1.toUrlSafe)(hash.toString('base64')), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!transactionsCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n let data = res.data;\n let tx = [];\n let cells = ton_core_1.Cell.fromBoc(Buffer.from(data.boc, 'base64'));\n for (let i = 0; i < data.blocks.length; i++) {\n tx.push({\n block: data.blocks[i],\n tx: (0, ton_core_1.loadTransaction)(cells[i].beginParse())\n });\n }\n return tx;\n }\n /**\n * Get network config\n * @param seqno block sequence number\n * @param ids optional config ids\n * @returns network config\n */\n async getConfig(seqno, ids) {\n let tail = '';\n if (ids && ids.length > 0) {\n tail = '/' + [...ids].sort().join(',');\n }\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/config' + tail, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!configCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Execute run method\n * @param seqno block sequence number\n * @param address account address\n * @param name method name\n * @param args method arguments\n * @returns method result\n */\n async runMethod(seqno, address, name, args) {\n let tail = args && args.length > 0 ? '/' + (0, toUrlSafe_1.toUrlSafe)((0, ton_core_1.serializeTuple)(args).toBoc({ idx: false, crc32: false }).toString('base64')) : '';\n let url = __classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/run/' + name + tail;\n let res = await axios_1.default.get(url, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!runMethodCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n let resultTuple = res.data.resultRaw ? (0, ton_core_1.parseTuple)(ton_core_1.Cell.fromBoc(Buffer.from(res.data.resultRaw, 'base64'))[0]) : [];\n return {\n exitCode: res.data.exitCode,\n result: resultTuple,\n resultRaw: res.data.resultRaw,\n block: res.data.block,\n shardBlock: res.data.shardBlock,\n reader: new ton_core_1.TupleReader(resultTuple),\n };\n }\n /**\n * Send external message\n * @param message message boc\n * @returns message status\n */\n async sendMessage(message) {\n let res = await axios_1.default.post(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/send', { boc: message.toString('base64') }, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!sendCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return { status: res.data.status };\n }\n /**\n * Open smart contract\n * @param contract contract\n * @returns opened contract\n */\n open(contract) {\n return (0, ton_core_1.openContract)(contract, (args) => createProvider(this, null, args.address, args.init));\n }\n /**\n * Open smart contract\n * @param block block number\n * @param contract contract\n * @returns opened contract\n */\n openAt(block, contract) {\n return (0, ton_core_1.openContract)(contract, (args) => createProvider(this, block, args.address, args.init));\n }\n /**\n * Create provider\n * @param address address\n * @param init optional init data\n * @returns provider\n */\n provider(address, init) {\n return createProvider(this, null, address, init ? init : null);\n }\n /**\n * Create provider at specified block number\n * @param block block number\n * @param address address\n * @param init optional init data\n * @returns provider\n */\n providerAt(block, address, init) {\n return createProvider(this, block, address, init ? init : null);\n }\n}\nexports.TonClient4 = TonClient4;\n_TonClient4_endpoint = new WeakMap(), _TonClient4_timeout = new WeakMap(), _TonClient4_adapter = new WeakMap();\nfunction createProvider(client, block, address, init) {\n return {\n async getState() {\n // Resolve block\n let sq = block;\n if (sq === null) {\n let res = await client.getLastBlock();\n sq = res.last.seqno;\n }\n // Load state\n let state = await client.getAccount(sq, address);\n // Convert state\n let last = state.account.last ? { lt: BigInt(state.account.last.lt), hash: Buffer.from(state.account.last.hash, 'base64') } : null;\n let storage;\n if (state.account.state.type === 'active') {\n storage = {\n type: 'active',\n code: state.account.state.code ? Buffer.from(state.account.state.code, 'base64') : null,\n data: state.account.state.data ? Buffer.from(state.account.state.data, 'base64') : null,\n };\n }\n else if (state.account.state.type === 'uninit') {\n storage = {\n type: 'uninit',\n };\n }\n else if (state.account.state.type === 'frozen') {\n storage = {\n type: 'frozen',\n stateHash: Buffer.from(state.account.state.stateHash, 'base64'),\n };\n }\n else {\n throw Error('Unsupported state');\n }\n return {\n balance: BigInt(state.account.balance.coins),\n last: last,\n state: storage\n };\n },\n async get(name, args) {\n let sq = block;\n if (sq === null) {\n let res = await client.getLastBlock();\n sq = res.last.seqno;\n }\n let method = await client.runMethod(sq, address, name, args);\n if (method.exitCode !== 0 && method.exitCode !== 1) {\n throw Error('Exit code: ' + method.exitCode);\n }\n return {\n stack: new ton_core_1.TupleReader(method.result),\n };\n },\n async external(message) {\n // Resolve last\n let last = await client.getLastBlock();\n // Resolve init\n let neededInit = null;\n if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') {\n neededInit = init;\n }\n // Send with state init\n const ext = (0, ton_core_1.external)({\n to: address,\n init: neededInit ? { code: neededInit.code, data: neededInit.data } : null,\n body: message\n });\n let pkg = (0, ton_core_1.beginCell)()\n .store((0, ton_core_1.storeMessage)(ext))\n .endCell()\n .toBoc();\n await client.sendMessage(pkg);\n },\n async internal(via, message) {\n // Resolve last\n let last = await client.getLastBlock();\n // Resolve init\n let neededInit = null;\n if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') {\n neededInit = init;\n }\n // Resolve bounce\n let bounce = true;\n if (message.bounce !== null && message.bounce !== undefined) {\n bounce = message.bounce;\n }\n // Resolve value\n let value;\n if (typeof message.value === 'string') {\n value = (0, ton_core_1.toNano)(message.value);\n }\n else {\n value = message.value;\n }\n // Resolve body\n let body = null;\n if (typeof message.body === 'string') {\n body = (0, ton_core_1.comment)(message.body);\n }\n else if (message.body) {\n body = message.body;\n }\n // Send internal message\n await via.send({\n to: address,\n value,\n bounce,\n sendMode: message.sendMode,\n init: neededInit,\n body\n });\n }\n };\n}\n//\n// Codecs\n//\nconst lastBlockCodec = t.type({\n last: t.type({\n seqno: t.number,\n shard: t.string,\n workchain: t.number,\n fileHash: t.string,\n rootHash: t.string\n }),\n init: t.type({\n fileHash: t.string,\n rootHash: t.string\n }),\n stateRootHash: t.string,\n now: t.number\n});\nconst blockCodec = t.union([t.type({\n exist: t.literal(false)\n }), t.type({\n exist: t.literal(true),\n block: t.type({\n shards: t.array(t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string,\n transactions: t.array(t.type({\n account: t.string,\n hash: t.string,\n lt: t.string\n }))\n }))\n })\n })]);\n// {\"lastPaid\":1653099243,\"duePayment\":null,\"used\":{\"bits\":119,\"cells\":1,\"publicCells\":0}}\nconst storageStatCodec = t.type({\n lastPaid: t.number,\n duePayment: t.union([t.null, t.string]),\n used: t.type({\n bits: t.number,\n cells: t.number,\n publicCells: t.number\n })\n});\nconst accountCodec = t.type({\n account: t.type({\n state: t.union([\n t.type({ type: t.literal('uninit') }),\n t.type({ type: t.literal('active'), code: t.union([t.string, t.null]), data: t.union([t.string, t.null]) }),\n t.type({ type: t.literal('frozen'), stateHash: t.string })\n ]),\n balance: t.type({\n coins: t.string\n }),\n last: t.union([\n t.null,\n t.type({\n lt: t.string,\n hash: t.string\n })\n ]),\n storageStat: t.union([t.null, storageStatCodec])\n }),\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })\n});\nconst accountLiteCodec = t.type({\n account: t.type({\n state: t.union([\n t.type({ type: t.literal('uninit') }),\n t.type({ type: t.literal('active'), codeHash: t.string, dataHash: t.string }),\n t.type({ type: t.literal('frozen'), stateHash: t.string })\n ]),\n balance: t.type({\n coins: t.string\n }),\n last: t.union([\n t.null,\n t.type({\n lt: t.string,\n hash: t.string\n })\n ]),\n storageStat: t.union([t.null, storageStatCodec])\n })\n});\nconst changedCodec = t.type({\n changed: t.boolean,\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })\n});\nconst runMethodCodec = t.type({\n exitCode: t.number,\n resultRaw: t.union([t.string, t.null]),\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n }),\n shardBlock: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })\n});\nconst configCodec = t.type({\n config: t.type({\n cell: t.string,\n address: t.string,\n globalBalance: t.type({\n coins: t.string\n })\n })\n});\nconst sendCodec = t.type({\n status: t.number\n});\nconst transactionsCodec = t.type({\n blocks: t.array(t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })),\n boc: t.string\n});\nconst transactionCodec = t.type({\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n }),\n boc: t.string,\n proof: t.string\n});\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createWalletTransferV4 = exports.createWalletTransferV3 = exports.createWalletTransferV2 = exports.createWalletTransferV1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst ton_crypto_1 = require(\"ton-crypto\");\nfunction createWalletTransferV1(args) {\n // Create message\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.seqno, 32);\n if (args.message) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(args.message)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV1 = createWalletTransferV1;\nfunction createWalletTransferV2(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n // Create message\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.seqno, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV2 = createWalletTransferV2;\nfunction createWalletTransferV3(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n // Create message to sign\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.walletId, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage.storeUint(args.seqno, 32);\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV3 = createWalletTransferV3;\nfunction createWalletTransferV4(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.walletId, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage.storeUint(args.seqno, 32);\n signingMessage.storeUint(0, 8); // Simple order\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV4 = createWalletTransferV4;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R1 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEARAAAhP8AIN2k8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVEH98Ik=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV1R1(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n return ton_core_1.Cell.fromBoc(state.state.data)[0].beginParse().loadUint(32);\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R1 = WalletContractV1R1;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R2 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R2 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAUwAAov8AIN0gggFMl7qXMO1E0NcLH+Ck8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVNDieG8=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV1R2(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R2 = WalletContractV1R2;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R3 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R3 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAXwAAuv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVLW4bkI=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV1R3(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(executor, message) {\n await executor.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode: sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R3 = WalletContractV1R3;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV2R1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV2R1 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAVwAAqv8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VShNwu2', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV2R1(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV2)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV2R1 = WalletContractV2R1;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV2R2 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV2R2 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAYwAAwv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VQETNeh', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV2R2(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV2)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV2R2 = WalletContractV2R2;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV3R1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV3R1 {\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAYgAAwP8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVD++buA=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV3R1(args.workchain, args.publicKey, args.walletId);\n }\n /**\n * Get wallet balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV3)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV3R1 = WalletContractV3R1;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV3R2 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV3R2 {\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAcQAA3v8AIN0gggFMl7ohggEznLqxn3Gw7UTQ0x/THzHXC//jBOCk8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVBC9ba0=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV3R2(args.workchain, args.publicKey, args.walletId);\n }\n /**\n * Get wallet balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV3)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV3R2 = WalletContractV3R2;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV4 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV4 {\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6ccgECFAEAAtQAART/APSkE/S88sgLAQIBIAIDAgFIBAUE+PKDCNcYINMf0x/THwL4I7vyZO1E0NMf0x/T//QE0VFDuvKhUVG68qIF+QFUEGT5EPKj+AAkpMjLH1JAyx9SMMv/UhD0AMntVPgPAdMHIcAAn2xRkyDXSpbTB9QC+wDoMOAhwAHjACHAAuMAAcADkTDjDQOkyMsfEssfy/8QERITAubQAdDTAyFxsJJfBOAi10nBIJJfBOAC0x8hghBwbHVnvSKCEGRzdHK9sJJfBeAD+kAwIPpEAcjKB8v/ydDtRNCBAUDXIfQEMFyBAQj0Cm+hMbOSXwfgBdM/yCWCEHBsdWe6kjgw4w0DghBkc3RyupJfBuMNBgcCASAICQB4AfoA9AQw+CdvIjBQCqEhvvLgUIIQcGx1Z4MesXCAGFAEywUmzxZY+gIZ9ADLaRfLH1Jgyz8gyYBA+wAGAIpQBIEBCPRZMO1E0IEBQNcgyAHPFvQAye1UAXKwjiOCEGRzdHKDHrFwgBhQBcsFUAPPFiP6AhPLassfyz/JgED7AJJfA+ICASAKCwBZvSQrb2omhAgKBrkPoCGEcNQICEekk30pkQzmkD6f+YN4EoAbeBAUiYcVnzGEAgFYDA0AEbjJftRNDXCx+AA9sp37UTQgQFA1yH0BDACyMoHy//J0AGBAQj0Cm+hMYAIBIA4PABmtznaiaEAga5Drhf/AABmvHfaiaEAQa5DrhY/AAG7SB/oA1NQi+QAFyMoHFcv/ydB3dIAYyMsFywIizxZQBfoCFMtrEszMyXP7AMhAFIEBCPRR8qcCAHCBAQjXGPoA0z/IVCBHgQEI9FHyp4IQbm90ZXB0gBjIywXLAlAGzxZQBPoCFMtqEssfyz/Jc/sAAgBsgQEI1xj6ANM/MFIkgQEI9Fnyp4IQZHN0cnB0gBjIywXLAlAFzxZQA/oCE8tqyx8Syz/Jc/sAAAr0AMntVA==', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(this.publicKey)\n .storeBit(0) // Empty plugins dict\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV4(args.workchain, args.publicKey, args.walletId);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV4)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV4 = WalletContractV4;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JettonMaster = void 0;\nconst ton_core_1 = require(\"ton-core\");\nclass JettonMaster {\n constructor(address) {\n this.address = address;\n }\n static create(address) {\n return new JettonMaster(address);\n }\n async getWalletAddress(provider, owner) {\n let res = await provider.get('get_wallet_address', [{ type: 'slice', cell: (0, ton_core_1.beginCell)().storeAddress(owner).endCell() }]);\n return res.stack.readAddress();\n }\n async getJettonData(provider) {\n let res = await provider.get('get_jetton_data', []);\n let totalSupply = res.stack.readBigNumber();\n let mintable = res.stack.readBoolean();\n let adminAddress = res.stack.readAddress();\n let content = res.stack.readCell();\n let walletCode = res.stack.readCell();\n return {\n totalSupply,\n mintable,\n adminAddress,\n content,\n walletCode\n };\n }\n}\nexports.JettonMaster = JettonMaster;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JettonWallet = void 0;\nclass JettonWallet {\n constructor(address) {\n this.address = address;\n }\n static create(address) {\n return new JettonWallet(address);\n }\n async getBalance(provider) {\n let state = await provider.getState();\n if (state.state.type !== 'active') {\n return 0n;\n }\n let res = await provider.get('get_wallet_data', []);\n return res.stack.readBigNumber();\n }\n}\nexports.JettonWallet = JettonWallet;\n", "\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigOrder = void 0;\nconst ton_crypto_1 = require(\"ton-crypto\");\nconst ton_core_1 = require(\"ton-core\");\nclass MultisigOrder {\n constructor(payload) {\n this.signatures = {};\n this.payload = payload;\n }\n static fromCell(cell) {\n let s = cell.beginParse();\n let signatures = s.loadMaybeRef()?.beginParse();\n const messagesCell = s.asCell();\n let order = new MultisigOrder(messagesCell);\n if (signatures) {\n while (signatures.remainingBits > 0) {\n const signature = signatures.loadBuffer(64);\n const ownerId = signatures.loadUint(8);\n order.signatures[ownerId] = signature;\n if (signatures.remainingRefs > 0) {\n signatures = signatures.loadRef().asSlice();\n }\n else {\n signatures.skip(1);\n }\n }\n signatures.endParse();\n }\n return order;\n }\n static fromPayload(payload) {\n return new MultisigOrder(payload);\n }\n addSignature(ownerId, signature, multisig) {\n const signingHash = this.payload.hash();\n if (!(0, ton_crypto_1.signVerify)(signingHash, signature, multisig.owners.get(ownerId).slice(0, -1))) {\n throw Error('invalid signature');\n }\n this.signatures[ownerId] = signature;\n }\n sign(ownerId, secretKey) {\n const signingHash = this.payload.hash();\n this.signatures[ownerId] = (0, ton_crypto_1.sign)(signingHash, secretKey);\n return signingHash;\n }\n unionSignatures(other) {\n this.signatures = Object.assign({}, this.signatures, other.signatures);\n }\n clearSignatures() {\n this.signatures = {};\n }\n toCell(ownerId) {\n let b = (0, ton_core_1.beginCell)().storeBit(0);\n for (const ownerId in this.signatures) {\n const signature = this.signatures[ownerId];\n b = (0, ton_core_1.beginCell)()\n .storeBit(1)\n .storeRef((0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeUint(parseInt(ownerId), 8)\n .storeBuilder(b)\n .endCell());\n }\n return (0, ton_core_1.beginCell)()\n .storeUint(ownerId, 8)\n .storeBuilder(b)\n .storeBuilder(this.payload.asBuilder())\n .endCell();\n }\n}\nexports.MultisigOrder = MultisigOrder;\n", "\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigOrderBuilder = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst MultisigOrder_1 = require(\"./MultisigOrder\");\nclass MultisigOrderBuilder {\n constructor(walletId, offset) {\n this.messages = (0, ton_core_1.beginCell)();\n this.queryId = 0n;\n this.walletId = walletId;\n this.queryOffset = offset || 7200;\n }\n addMessage(message, mode) {\n if (this.messages.refs >= 4) {\n throw Error('only 4 refs are allowed');\n }\n this.updateQueryId();\n this.messages.storeUint(mode, 8);\n this.messages.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(message)).endCell());\n }\n clearMessages() {\n this.messages = (0, ton_core_1.beginCell)();\n }\n build() {\n return MultisigOrder_1.MultisigOrder.fromPayload((0, ton_core_1.beginCell)()\n .storeUint(this.walletId, 32)\n .storeUint(this.queryId, 64)\n .storeBuilder(this.messages)\n .endCell());\n }\n updateQueryId() {\n const time = BigInt(Math.floor(Date.now() / 1000 + this.queryOffset));\n this.queryId = time << 32n;\n }\n}\nexports.MultisigOrderBuilder = MultisigOrderBuilder;\n", "\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigWallet = void 0;\nconst ton_crypto_1 = require(\"ton-crypto\");\nconst ton_core_1 = require(\"ton-core\");\nconst MULTISIG_CODE = ton_core_1.Cell.fromBase64('te6ccgECKwEABBgAART/APSkE/S88sgLAQIBIAIDAgFIBAUE2vIgxwCOgzDbPOCDCNcYIPkBAdMH2zwiwAAToVNxePQOb6Hyn9s8VBq6+RDyoAb0BCD5AQHTH1EYuvKq0z9wUwHwCgHCCAGDCryx8mhTFYBA9A5voSCYDqQgwgryZw7f+COqH1NAufJhVCOjU04gIyEiAgLMBgcCASAMDQIBIAgJAgFmCgsAA9GEAiPymAvHoHN9CYbZ5S7Z4BPHohwhJQAtAKkItdJEqCTItdKlwLUAdAT8ArobBKAATwhbpEx4CBukTDgAdAg10rDAJrUAvALyFjPFszJ4HHXI8gBzxb0AMmACASAODwIBIBQVARW77ZbVA0cFUg2zyCoCAUgQEQIBIBITAXOxHXQgwjXGCD5AQHTB4IB1MTtQ9hTIHj0Dm+h8p/XC/9eMfkQ8qCuAfQEIW6TW3Ey4PkBWNs8AaQBgJwA9rtqA6ADoAPoCAXoCEfyAgPyA3XlP+AXkegAA54tkwAAXrhlXP8EA1WZ2oexAAgEgFhcCASAYGQFRtyVbZ4YmRmpGEAgegc30McJNhFpAADMaYeYuAFrgJhwLb+4cC3d0bhAjAYm1WZtnhqvgb+2xxsoicAgej430pBHEoFpAADHDhBACGuQkuuBk9kUWE5kAOeLKhACQCB6IYFImHFImHFImXEA2YlzNijAjAgEgGhsAF7UGtc4QQDVZnah7EAIBIBwdAgOZOB4fARGsGm2eL4G2CUAjABWt+UEAzJV2oewYQAENqTbPBVfBYCMAFa3f3CCAarM7UPYgAiDbPALyZfgAUENxQxPbPO1UIyoACtP/0wcwBKDbPC+uUyCw8mISsQKkJbNTHLmwJYEA4aojoCi8sPJpggGGoPgBBZcCERACPj4wjo0REB/bPEDXePRDEL0F4lQWW1Rz51YQU9zbPFRxClR6vCQlKCYAIO1E0NMf0wfTB9M/9AT0BNEAXgGOGjDSAAHyo9MH0wdQA9cBIPkBBfkBFbrypFAD4GwhIddKqgIi10m68qtwVCATAAwByMv/ywcE1ts87VT4D3AlblOJvrGYEG4QLVDHXwePGzBUJANQTds8UFWgRlAQSRA6SwlTuds8UFQWf+L4AAeDJaGOLCaAQPSWb6UglDBTA7neII4WODk5CNIAAZfTBzAW8AcFkTDifwgHBZJsMeKz5jAGKicoKQBgcI4pA9CDCNcY0wf0BDBTFnj0Dm+h8qXXC/9URUT5EPKmrlIgsVIDvRShI27mbCIyAH5SML6OIF8D+ACTItdKmALTB9QC+wAC6DJwyMoAQBSAQPRDAvAHjhdxyMsAFMsHEssHWM8BWM8WQBOAQPRDAeIBII6KEEUQNEMA2zztVJJfBuIqABzIyx/LB8sHyz/0APQAyQ==');\nclass MultisigWallet {\n constructor(publicKeys, workchain, walletId, k, opts) {\n this.provider = null;\n this.owners = ton_core_1.Dictionary.empty();\n this.workchain = workchain;\n this.walletId = walletId;\n this.k = k;\n for (let i = 0; i < publicKeys.length; i += 1) {\n this.owners.set(i, Buffer.concat([publicKeys[i], Buffer.alloc(1)]));\n }\n this.init = {\n code: MULTISIG_CODE,\n data: (0, ton_core_1.beginCell)()\n .storeUint(this.walletId, 32)\n .storeUint(this.owners.size, 8)\n .storeUint(this.k, 8)\n .storeUint(0, 64)\n .storeDict(this.owners, ton_core_1.Dictionary.Keys.Uint(8), ton_core_1.Dictionary.Values.Buffer(33))\n .storeBit(0)\n .endCell(),\n };\n this.address = opts?.address || (0, ton_core_1.contractAddress)(workchain, this.init);\n if (opts?.provider) {\n this.provider = opts.provider;\n }\n else if (opts?.client) {\n this.provider = opts.client.provider(this.address, {\n code: this.init.code,\n data: this.init.data,\n });\n }\n }\n static async fromAddress(address, opts) {\n let provider;\n if (opts.provider) {\n provider = opts.provider;\n }\n else {\n if (!opts.client) {\n throw Error('Either provider or client must be specified');\n }\n provider = opts.client.provider(address, {\n code: null,\n data: null,\n });\n }\n const contractState = (await provider.getState()).state;\n if (contractState.type !== 'active') {\n throw Error('Contract must be active');\n }\n const data = ton_core_1.Cell.fromBoc(contractState.data)[0].beginParse();\n const walletId = data.loadUint(32);\n data.skip(8);\n const k = data.loadUint(8);\n data.skip(64);\n const owners = data.loadDict(ton_core_1.Dictionary.Keys.Uint(8), ton_core_1.Dictionary.Values.Buffer(33));\n let publicKeys = [];\n for (const [key, value] of owners) {\n const publicKey = value.subarray(0, 32);\n publicKeys.push(publicKey);\n }\n return new MultisigWallet(publicKeys, address.workChain, walletId, k, {\n address,\n provider,\n client: opts.client,\n });\n }\n async deployExternal(provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n await provider.external(ton_core_1.Cell.EMPTY);\n }\n async deployInternal(sender, value = 1000000000n) {\n await sender.send({\n sendMode: 3,\n to: this.address,\n value: value,\n init: this.init,\n body: ton_core_1.Cell.EMPTY,\n bounce: true,\n });\n }\n async sendOrder(order, secretKey, provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n let publicKey = (0, ton_crypto_1.keyPairFromSecretKey)(secretKey).publicKey;\n let ownerId = this.getOwnerIdByPubkey(publicKey);\n let cell = order.toCell(ownerId);\n let signature = (0, ton_crypto_1.sign)(cell.hash(), secretKey);\n cell = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeSlice(cell.asSlice())\n .endCell();\n await provider.external(cell);\n }\n getOwnerIdByPubkey(publicKey) {\n for (const [key, value] of this.owners) {\n if (value.subarray(0, 32).equals(publicKey)) {\n return key;\n }\n }\n throw Error('public key is not an owner');\n }\n}\nexports.MultisigWallet = MultisigWallet;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigWallet = exports.MultisigOrderBuilder = exports.MultisigOrder = exports.JettonWallet = exports.JettonMaster = exports.WalletContractV4 = exports.WalletContractV3R2 = exports.WalletContractV3R1 = exports.WalletContractV2R2 = exports.WalletContractV2R1 = exports.WalletContractV1R3 = exports.WalletContractV1R2 = exports.WalletContractV1R1 = exports.TonClient4 = exports.TonClient = exports.HttpApi = void 0;\n__exportStar(require(\"ton-core\"), exports);\n//\n// toncenter Client\n//\nvar HttpApi_1 = require(\"./client/api/HttpApi\");\nObject.defineProperty(exports, \"HttpApi\", { enumerable: true, get: function () { return HttpApi_1.HttpApi; } });\nvar TonClient_1 = require(\"./client/TonClient\");\nObject.defineProperty(exports, \"TonClient\", { enumerable: true, get: function () { return TonClient_1.TonClient; } });\n//\n// API V4 Client\n//\nvar TonClient4_1 = require(\"./client/TonClient4\");\nObject.defineProperty(exports, \"TonClient4\", { enumerable: true, get: function () { return TonClient4_1.TonClient4; } });\n//\n// Wallets\n//\nvar WalletContractV1R1_1 = require(\"./wallets/WalletContractV1R1\");\nObject.defineProperty(exports, \"WalletContractV1R1\", { enumerable: true, get: function () { return WalletContractV1R1_1.WalletContractV1R1; } });\nvar WalletContractV1R2_1 = require(\"./wallets/WalletContractV1R2\");\nObject.defineProperty(exports, \"WalletContractV1R2\", { enumerable: true, get: function () { return WalletContractV1R2_1.WalletContractV1R2; } });\nvar WalletContractV1R3_1 = require(\"./wallets/WalletContractV1R3\");\nObject.defineProperty(exports, \"WalletContractV1R3\", { enumerable: true, get: function () { return WalletContractV1R3_1.WalletContractV1R3; } });\nvar WalletContractV2R1_1 = require(\"./wallets/WalletContractV2R1\");\nObject.defineProperty(exports, \"WalletContractV2R1\", { enumerable: true, get: function () { return WalletContractV2R1_1.WalletContractV2R1; } });\nvar WalletContractV2R2_1 = require(\"./wallets/WalletContractV2R2\");\nObject.defineProperty(exports, \"WalletContractV2R2\", { enumerable: true, get: function () { return WalletContractV2R2_1.WalletContractV2R2; } });\nvar WalletContractV3R1_1 = require(\"./wallets/WalletContractV3R1\");\nObject.defineProperty(exports, \"WalletContractV3R1\", { enumerable: true, get: function () { return WalletContractV3R1_1.WalletContractV3R1; } });\nvar WalletContractV3R2_1 = require(\"./wallets/WalletContractV3R2\");\nObject.defineProperty(exports, \"WalletContractV3R2\", { enumerable: true, get: function () { return WalletContractV3R2_1.WalletContractV3R2; } });\nvar WalletContractV4_1 = require(\"./wallets/WalletContractV4\");\nObject.defineProperty(exports, \"WalletContractV4\", { enumerable: true, get: function () { return WalletContractV4_1.WalletContractV4; } });\n//\n// Jettons\n//\nvar JettonMaster_1 = require(\"./jetton/JettonMaster\");\nObject.defineProperty(exports, \"JettonMaster\", { enumerable: true, get: function () { return JettonMaster_1.JettonMaster; } });\nvar JettonWallet_1 = require(\"./jetton/JettonWallet\");\nObject.defineProperty(exports, \"JettonWallet\", { enumerable: true, get: function () { return JettonWallet_1.JettonWallet; } });\n//\n// Multisig\n//\nvar MultisigOrder_1 = require(\"./multisig/MultisigOrder\");\nObject.defineProperty(exports, \"MultisigOrder\", { enumerable: true, get: function () { return MultisigOrder_1.MultisigOrder; } });\nvar MultisigOrderBuilder_1 = require(\"./multisig/MultisigOrderBuilder\");\nObject.defineProperty(exports, \"MultisigOrderBuilder\", { enumerable: true, get: function () { return MultisigOrderBuilder_1.MultisigOrderBuilder; } });\nvar MultisigWallet_1 = require(\"./multisig/MultisigWallet\");\nObject.defineProperty(exports, \"MultisigWallet\", { enumerable: true, get: function () { return MultisigWallet_1.MultisigWallet; } });\n", "(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n", "// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n", null, "{\n \"name\": \"@orbs-network/ton-access\",\n \"version\": \"2.3.3\",\n \"description\": \"Unthrottled anonymous RPC access to TON blockchain via a robust decentralized network\",\n \"source\": \"lib/index.js\",\n \"main\": \"lib/index.js\",\n \"types\": \"lib/index.d.ts\",\n \"files\": [\n \"lib/**/*\"\n ],\n \"scripts\": {\n \"test\": \"env mocha -r ts-node/register test/**/*.ts\",\n \"test:v2\": \"env mocha -r ts-node/register test/ton-v2.ts\",\n \"test:v4\": \"env mocha -r ts-node/register test/ton-v4.ts\",\n \"cleanup\": \"rimraf ./lib\",\n \"build:web:reg\": \"esbuild ./lib/web.js --bundle --sourcemap --target=es2015 --outfile=./dist/index.js\",\n \"build:web:min\": \"esbuild ./lib/web.js --bundle --minify --target=es2015 --outfile=./dist/index.min.js\",\n \"build:web\": \"rimraf ./dist && npm run build:web:reg && npm run build:web:min\",\n \"build\": \"npm run lint && rimraf ./lib && tsc && npm run build:web\",\n \"format\": \"prettier --write \\\"src/**/*.ts\\\"\",\n \"lint\": \"tslint -p tsconfig.json\",\n \"prepare\": \"npm run build\",\n \"prepublishOnly\": \"npm test && npm run lint\",\n \"preversion\": \"npm run lint\",\n \"version\": \"npm run format && git add -A src\",\n \"postversion\": \"git push && git push --tags\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/orbs-network/ton-access.git\"\n },\n \"author\": \"yuval@orbs.com\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/orbs-network/ton-access/issues\"\n },\n \"homepage\": \"https://github.com/orbs-network/ton-access#readme\",\n \"dependencies\": {\n \"isomorphic-fetch\": \"^3.0.0\"\n },\n \"devDependencies\": {\n \"@types/bn.js\": \"^5.1.1\",\n \"@types/chai\": \"^4.3.4\",\n \"@types/isomorphic-fetch\": \"^0.0.36\",\n \"@types/mocha\": \"^10.0.0\",\n \"buffer\": \"^6.0.3\",\n \"chai\": \"^4.3.7\",\n \"esbuild\": \"^0.15.14\",\n \"mocha\": \"^10.1.0\",\n \"prettier\": \"^2.7.1\",\n \"rimraf\": \"^3.0.2\",\n \"ton\": \"^12.1.3\",\n \"ton-lite-client\": \"npm:@truecarry/ton-lite-client@^1.6.1\",\n \"tonweb\": \"^0.0.58\",\n \"ts-node\": \"^10.9.1\",\n \"tslib\": \"^2.4.0\",\n \"tslint\": \"^6.1.3\",\n \"tslint-config-prettier\": \"^1.18.0\"\n }\n}\n", null, "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n", "/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n", "import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nfunction fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst pureJs_1 = require(\"./pureJs\");\nconst whatwgEncodingApi_1 = require(\"./whatwgEncodingApi\");\nconst fromUtf8 = (input) => typeof TextEncoder === \"function\" ? (0, whatwgEncodingApi_1.fromUtf8)(input) : (0, pureJs_1.fromUtf8)(input);\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => typeof TextDecoder === \"function\" ? (0, whatwgEncodingApi_1.toUtf8)(input) : (0, pureJs_1.toUtf8)(input);\nexports.toUtf8 = toUtf8;\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n", "import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n", "export * from \"./jsSha256\";\n", "var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '
';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope || (node.sublanguage && node.language);\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = \"\";\n if (node.sublanguage) {\n className = `language-${node.language}`;\n } else {\n className = scopeToCSSClass(node.scope, { prefix: this.classPrefix });\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, scope)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(scope)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n addKeyword(text, scope) {\n if (text === \"\") { return; }\n\n this.openNode(scope);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.sublanguage = true;\n node.language = name;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.6.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6.exports(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n", "import { ContractVerifier as _ContractVerifier } from \"./contract-verifier\";\nimport { ContractVerifierUI as _ContractVerifierUI } from \"./contract-verifier-ui\";\n\ndeclare global {\n var ContractVerifier: typeof _ContractVerifier;\n var ContractVerifierUI: typeof _ContractVerifierUI;\n}\n\nwindow.ContractVerifier = _ContractVerifier;\nwindow.ContractVerifierUI = _ContractVerifierUI;\n\nexport { ContractVerifierUI } from \"./contract-verifier-ui\";\nexport * from \"./contract-verifier\";\n", "import { TonClient4, Address, TupleReader, TupleBuilder } from \"ton\";\nimport { getHttpV4Endpoint } from \"@orbs-network/ton-access\";\nimport { Sha256 } from \"@aws-crypto/sha256-js\";\n\ninterface GetSourcesOptions {\n verifier?: string;\n httpApiEndpointV4?: string;\n testnet?: boolean;\n}\n\nexport declare type FuncCompilerVersion = string;\nexport declare type TactVersion = string;\nexport declare type FiftVersion = FuncCompilerVersion; // Fift is tied to a FunC version\n\nexport declare type FuncCompilerSettings = {\n funcVersion: FuncCompilerVersion;\n commandLine: string;\n};\nexport type FiftCliCompileSettings = {\n fiftVersion: FiftVersion;\n commandLine: string;\n};\nexport type TactCliCompileSettings = {\n tactVersion: TactVersion;\n};\n\nexport type FuncSource = {\n name: string;\n content: string;\n isEntrypoint: boolean;\n};\nexport type TactSource = {\n name: string;\n content: string;\n};\n\nexport interface SourcesData {\n files: (TactSource | FuncSource)[];\n compiler: \"func\" | \"tact\" | \"fift\";\n compilerSettings:\n | FuncCompilerSettings\n | FiftCliCompileSettings\n | TactCliCompileSettings;\n verificationDate: Date;\n ipfsHttpLink: string;\n}\n\ntype IpfsUrlConverterFunc = (ipfsUrl: string, testnet: boolean) => string;\n\nconst SOURCES_REGISTRY = Address.parse(\n \"EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL\",\n);\nconst SOURCES_REGISTRY_TESTNET = Address.parse(\n \"EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8\",\n);\n\nfunction toSha256Buffer(s: string) {\n const sha = new Sha256();\n sha.update(s);\n return Buffer.from(sha.digestSync());\n}\n\nfunction defaultIpfsConverter(ipfs: string, testnet: boolean) {\n let endpoint: string;\n\n if (testnet) {\n endpoint = \"https://tonsource-testnet.infura-ipfs.io/ipfs/\";\n } else {\n endpoint = \"https://files.orbs.network/ipfs/\";\n }\n\n return ipfs.replace(\"ipfs://\", endpoint);\n}\n\nfunction bigIntFromBuffer(buffer: Buffer) {\n return BigInt(`0x${buffer.toString(\"hex\")}`);\n}\n\nexport const ContractVerifier = {\n async getSourcesJsonUrl(\n codeCellHash: string,\n options?: GetSourcesOptions,\n ): Promise {\n const tc = new TonClient4({\n endpoint:\n options?.httpApiEndpointV4 ??\n (await getHttpV4Endpoint({\n network: options.testnet ? \"testnet\" : \"mainnet\",\n })),\n });\n const {\n last: { seqno },\n } = await tc.getLastBlock();\n\n const args = new TupleBuilder();\n args.writeNumber(\n bigIntFromBuffer(toSha256Buffer(options?.verifier ?? \"orbs.com\")),\n );\n args.writeNumber(bigIntFromBuffer(Buffer.from(codeCellHash, \"base64\")));\n const { result: itemAddRes } = await tc.runMethod(\n seqno,\n options.testnet ? SOURCES_REGISTRY_TESTNET : SOURCES_REGISTRY,\n \"get_source_item_address\",\n args.build(),\n );\n\n let reader = new TupleReader(itemAddRes);\n const sourceItemAddr = reader.readAddress();\n const isDeployed = await tc.isContractDeployed(seqno, sourceItemAddr);\n\n if (isDeployed) {\n const { result: sourceItemDataRes } = await tc.runMethod(\n seqno,\n sourceItemAddr,\n \"get_source_item_data\",\n );\n\n reader = new TupleReader(sourceItemDataRes);\n const contentCell = reader.skip(3).readCell().beginParse();\n const version = contentCell.loadUint(8);\n if (version !== 1) throw new Error(\"Unsupported version\");\n const ipfsLink = contentCell.loadStringTail();\n\n return ipfsLink;\n }\n return null;\n },\n\n async getSourcesData(\n sourcesJsonUrl: string,\n options?: {\n ipfsConverter?: IpfsUrlConverterFunc;\n testnet?: boolean;\n },\n ): Promise {\n const ipfsConverter = options.ipfsConverter ?? defaultIpfsConverter;\n const ipfsHttpLink = ipfsConverter(sourcesJsonUrl, !!options.testnet);\n\n const verifiedContract = await (\n await fetch(ipfsConverter(sourcesJsonUrl, !!options.testnet))\n ).json();\n\n const files = (\n await Promise.all(\n verifiedContract.sources.map(\n async (source: {\n url: string;\n filename: string;\n isEntrypoint?: boolean;\n }) => {\n const url = ipfsConverter(source.url, !!options.testnet);\n const content = await fetch(url).then((u) => u.text());\n return {\n name: source.filename,\n content,\n isEntrypoint: source.isEntrypoint,\n };\n },\n ),\n )\n )\n .reverse()\n .sort((a, b) => {\n return Number(b.isEntrypoint) - Number(a.isEntrypoint);\n });\n\n return {\n files,\n verificationDate: new Date(verifiedContract.verificationDate),\n compilerSettings: verifiedContract.compilerSettings,\n compiler: verifiedContract.compiler,\n ipfsHttpLink,\n };\n },\n};\n", "import hljs from \"highlight.js/lib/core\";\nimport hljsDefine from \"highlightjs-func\";\nimport { SourcesData } from \"./contract-verifier\";\nimport { div } from \"./dom\";\nimport { TreeFile, TreeFolder } from \"./file-structure\";\nimport style from \"./style.css\";\n\nhljsDefine(hljs);\n\ntype Theme = \"light\" | \"dark\";\n\nexport const classNames = {\n CONTAINER: \"contract-verifier-container\",\n FILES: \"contract-verifier-files\",\n FILE: \"contract-verifier-file\",\n FOLDER: \"contract-verifier-folder\",\n TREE_ITEM: \"contract-verifier-tree-item\",\n FOLDER_CONTAINER: \"contract-verifier-folder-container\",\n CODE_CONTAINER: \"contract-verifier-code\",\n CODE_LINES: \"contract-verifier-code-lines\",\n CODE_CONTENT: \"contract-verifier-code-content\",\n};\n\nexport const ContractVerifierUI = {\n _stylesPopulated: {\n internal: false,\n },\n _populateStyle(theme: \"dark\" | \"light\") {\n if (!this._stylesPopulated[theme]) {\n this._stylesPopulated[theme] = true;\n const styleEl = document.createElement(\"style\");\n styleEl.innerHTML = `${\n theme === \"light\"\n ? require(\"highlight.js/styles/atom-one-light.css\").toString()\n : require(\"highlight.js/styles/atom-one-dark.css\").toString()\n }`;\n\n document.head.appendChild(styleEl);\n }\n if (!this._stylesPopulated.internal) {\n this._stylesPopulated.internal = true;\n const styleEl = document.createElement(\"style\");\n styleEl.innerHTML = style;\n document.head.appendChild(styleEl);\n }\n },\n _populateCode(contentSelector: string, theme: \"dark\" | \"light\") {\n const codeContainer = document.querySelector(contentSelector);\n codeContainer.classList.add(classNames.CODE_CONTAINER);\n codeContainer.classList.add(theme);\n codeContainer.innerHTML = `
`;\n },\n\n _setCode(\n { name, content }: { name: string; content: string },\n codeWrapperEl: HTMLElement,\n filesListEl?: HTMLElement,\n fileEl?: HTMLElement,\n ) {\n if (fileEl?.classList.contains(\"active\")) return;\n codeWrapperEl.scrollTo(0, 0);\n content = content.trim();\n const codeEl = codeWrapperEl.querySelector(\"code\");\n codeEl.innerHTML = \"\";\n codeEl.appendChild(\n div(\n { className: classNames.CODE_LINES },\n content\n .split(\"\\n\")\n .map((_, i) => i + 1)\n .join(\"\\n\"),\n ),\n );\n\n const contentEl = div({ className: classNames.CODE_CONTENT }, content);\n codeEl.appendChild(contentEl);\n\n if (name.match(/\\.fif(t)?$/)) {\n contentEl.classList.add(\"language-fift\");\n } else {\n contentEl.classList.add(\"language-func\");\n }\n\n hljs.highlightElement(contentEl);\n\n filesListEl\n ?.querySelector(`.${classNames.FILE}.active`)\n ?.classList.remove(\"active\");\n\n fileEl?.classList.add(\"active\");\n },\n\n setCode(contentSelector: string, content: string) {\n this._setCode(\n { name: \"\", content },\n document.querySelector(contentSelector),\n );\n },\n\n _populateFiles(\n fileListSelector: string,\n contentSelector: string,\n files: { name: string; content: string }[],\n theme: \"dark\" | \"light\",\n ) {\n const filePart = document.querySelector(fileListSelector);\n filePart.innerHTML = \"\";\n filePart.classList.add(theme);\n filePart.classList.add(classNames.FILES);\n\n // Prepare folder hierarchy\n const root = {\n type: \"root\",\n children: [],\n };\n\n files.forEach((file) => {\n const nameParts = Array.from(\n file.name.matchAll(/(?:\\/|^)([^\\/\\n]+)/g),\n ).map((m) => m[1]);\n\n const folders =\n nameParts.length > 1 ? nameParts.slice(0, nameParts.length - 1) : [];\n\n let levelToPushTo = root;\n\n folders.forEach((folder) => {\n let existingFolder = levelToPushTo.children.find(\n (obj) => obj.type === \"folder\" && obj.name === folder,\n );\n\n if (!existingFolder) {\n const newLevel = {\n type: \"folder\",\n name: folder,\n children: [],\n };\n levelToPushTo.children.push(newLevel);\n\n existingFolder = newLevel;\n }\n\n levelToPushTo = existingFolder;\n });\n\n levelToPushTo.children.push({\n type: \"file\",\n name: nameParts[nameParts.length - 1],\n content: file.content,\n });\n });\n\n function processLevel(level) {\n return level.children\n .filter((obj) => obj.type === \"file\")\n .map((child) => {\n const file = TreeFile({ name: child.name }, theme);\n file.onclick = () => {\n ContractVerifierUI._setCode(\n { name: child.name, content: child.content },\n document.querySelector(contentSelector),\n document.querySelector(fileListSelector),\n file,\n );\n };\n return file;\n })\n .concat(\n level.children\n .filter((obj) => obj.type === \"folder\")\n .map((child) =>\n TreeFolder(\n { name: child.name, opened: true },\n theme,\n ...processLevel(child),\n ),\n ),\n );\n }\n\n processLevel(root).forEach((el) => filePart.appendChild(el));\n },\n\n _populateContainer(selector: string, hideLineNumbers: boolean) {\n const el = document.querySelector(selector);\n el.classList.add(classNames.CONTAINER);\n\n if (!hideLineNumbers) {\n el.classList.add(\"lineNumbers\");\n }\n },\n\n loadSourcesData(\n sourcesData: SourcesData,\n opts: {\n containerSelector: string;\n fileListSelector?: string;\n contentSelector: string;\n theme: Theme;\n hideLineNumbers?: boolean;\n },\n ) {\n this._populateContainer(opts.containerSelector, !!opts.hideLineNumbers);\n\n if (opts.fileListSelector) {\n this._populateFiles(\n opts.fileListSelector,\n opts.contentSelector,\n sourcesData.files,\n opts.theme,\n );\n }\n this._populateStyle(opts.theme);\n this._populateCode(opts.contentSelector, opts.theme);\n this._setCode(\n sourcesData.files[0],\n document.querySelector(opts.contentSelector),\n document.querySelector(opts.fileListSelector),\n document.querySelector(\n `${opts.fileListSelector} .contract-verifier-file`,\n ), // Get first file\n );\n },\n};\n", "// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards\nimport HighlightJS from '../lib/core.js';\nexport { HighlightJS };\nexport default HighlightJS;\n", "import hljsDefineFunc from './languages/func.js'\nimport hljsDefineFift from './languages/fift.js'\nimport hljsDefineTLB from './languages/tlb.js'\n\nexport default function (hljs) {\n hljs.registerLanguage('fift', hljsDefineFift)\n hljs.registerLanguage('func', hljsDefineFunc)\n hljs.registerLanguage('tlb', hljsDefineTLB)\n}\n", "/*\nLanguage: FunC\nAuthor: Nikita Sobolev \nDescription: FunC is a smart-contract programming language that feels like C\nWebsite: https://ton.org/docs\nCategory: smartcontracts\n*/\n\nconst IDENTIFIER = '(?!\")(`([^`]+)`|' +\n '((?=_)_|' +\n '(?=\\\\{)\\\\{|' +\n '(?=\\\\})\\\\}|' +\n '(?![_`{}]))([^;,\\\\[\\\\]\\\\(\\\\)\\\\s~.]+))'\n\nconst STRING = /\\\"[^\\n\\\"]+\\\"[Hhcusa]?/\nlet NUMBER;\n\ntry {\n NUMBER = new RegExp(\"(-?(?!_)([\\\\d_]+|0x[\\\\d_a-fA-F]+)|0b[1_0]+)(?=/, /<=/, /=/, />/, //, />=/, /<=/, /!=/, /==/, /\\^>>/, /~>>/,\n />>/, /<>=/, /~>>=/, /\\^>>=/, /&=/, /\\^=/, /\\|=/,\n /\\^/, /=/, /~/, /\\//, /%/, /-/, /\\*/, /\\+/,/>/,\n /\nDescription: Fift is a simple stack-based programming language designed for TON\nWebsite: https://ton.org/fiftbase.pdf\nCategory: smartcontracts\n*/\n\nconst IDENTIFIER = /[0-9A-Za-z$_-]+/\nconst WORD_DEFS = /(::_|::|:_|=:|:)/\n\nexport default function(hljs) {\n return {\n 'name': 'Fift',\n 'aliases': ['fift'],\n 'case_insensitive': false,\n\n 'keywords': {\n 'keyword': [\n // It is kinda hard to tell what is a keyword and what is an operator\n // in fift. So, we do this instead:\n // - If something contains letters / numbers / `-`,\n // we treat it as a keywrod\n // - If something contains any other chars like `,`, `-`, `?`, `+`,\n // then we treat it as an operator\n '-roll', '-rot|10', '-trailing', '-trailing0',\n\n '2constant|10', '2drop|10', '2dup|10', '2over|10', '2swap|10',\n 'abort', 'abs', 'allot', 'and', 'anon', 'atom',\n\n 'bbitrefs', 'bbits', 'bl', 'box', 'brefs', 'brembitrefs', 'brembits',\n 'bremrefs', 'bye',\n\n 'cadr', 'caddr', 'car', 'cddr', 'cdr', 'char', 'chr', 'cmp',\n 'cond', 'cons', 'constant',\n 'count', 'cr', 'create',\n\n 'drop', 'depth',\n 'dictmap', 'dictmerge', 'dictnew',\n 'does', 'drop', 'dup',\n\n 'ed25519_chksign', 'ed25519_sign', 'ed25519_sign_uint',\n 'emit', 'exch', 'exch2|10', 'execute', 'explode',\n\n 'find', 'first', 'fits', 'forget',\n 'gasrunvm', 'gasrunvmcode', 'gasrunvmctx', 'gasrunvmdict',\n 'halt', 'hash', 'hashB', 'hashu', 'hold', 'hole',\n 'if', 'ifnot', 'include',\n\n 'list',\n 'minmax', 'max', 'min', 'mod',\n\n 'negate', 'newkeypair', 'nil', 'nip', 'nop', 'not', 'now', 'null',\n 'or', 'over',\n 'pair', 'pick',\n 'quit',\n\n 'remaining', 'reverse', 'roll', 'rot',\n 'runvm', 'runvmcode', 'runvmctx', 'runvmdict',\n\n 'sbitrefs', 'sbits', 'second', 'sgn', 'sign', 'shash', 'space', 'swap',\n 'single', 'skipspc', 'srefs',\n\n 'ten', 'third', 'times', 'triple', 'tuck', 'tuple', 'type',\n 'ufits', 'uncons', 'unpair', 'unsingle', 'until', 'untriple', 'untuple',\n\n 'variable',\n 'while',\n 'word', 'words',\n 'xor',\n ],\n 'literal': ['true', 'false'],\n 'type': [],\n 'built_in': [],\n },\n\n 'contains': [\n // Comments\n {\n 'scope': 'comment',\n 'variants': [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ],\n 'relevance': 0,\n },\n\n // Words, variables, and constants\n {\n 'match': [\n /\\s/,\n /2?constant/,\n /\\s+/,\n IDENTIFIER,\n ],\n 'scope': {\n 2: 'keyword',\n 4: 'variable.constant',\n },\n },\n {\n 'match': [\n /\\s/,\n /variable/,\n /\\s+/,\n IDENTIFIER,\n ],\n 'scope': {\n 2: 'keyword',\n 4: 'variable',\n },\n },\n {\n 'match': [\n /}/,\n /\\s+/,\n WORD_DEFS,\n /\\s+/,\n IDENTIFIER,\n ],\n 'scope': {\n 1: 'punctuation',\n 3: 'operator',\n 5: 'function', // this is the closest we have for \"word\" in fift\n },\n },\n\n // Operators\n {\n 'scope': 'operator',\n 'match': hljs.regex.either(\n // Full list can be found in\n // Appendix A. List of Fift words\n // Ordered the same way source code does this.\n // Except: shorter words must follow\n // longer ones with the same base part.\n // Example: `#` comes after `#s`\n /!/,\n\n /#>/, /#s/, /\\$#/, /#/,\n\n /\\$\\+/, /\\$,/, /\\$\\d/, /\\$=/, /\\$(?=\\()/,\n /\\$>smca/, /\\$>s/,\n /\\$@\\+/, /\\$@\\?\\+/, /\\$@\\?/, /\\$@/,\n /\\$cmp/, /\\$len/, /\\$pos/, /\\$reverse/,\n\n /%1<>c/, /\\*>>r/, /\\*>>/, /\\*mod/, /\\*/,\n\n /\\+!/, /\\+/, /,/, /-!/, /-/,\n /-1</, /0=/, /0>/,\n /1\\+!/, /1\\+/, /1-!/, /1-/, /1</, /=/, />>c/, />>r/, />>/, />/,\n\n /\\?dup/,\n\n /@'/, /@/,\n\n /B\\+/, /B,/, /B=/, /B>Li@\\+/, /B>Li@/, /B>Lu@\\+/, /B>Lu@/, /B>boc/,\n /B>file/, /B>i@\\+/, /B>i@/, /B>u@\\+/, /B>u@/,\n /B@\\?\\+/, /B@\\+/, /B@\\?/, /B@/,\n /Bcmp/, /BhashB/, /Bhashu/, /Bhash/, /Blen/, /Bx\\./,\n /B\\|/, /Li>B/, /Lu>B/,\n\n /\\[\\]/, /\\[compile\\]/, /\\[/, /\\]/,\n\n /atom\\?/,\n\n /b\\+/, /b\\._/, /b\\./,\n /b>idict!\\+/, /b>idict!/, /b>sdict!\\+/, /b>sdict!/,\n /b>udict!\\+/, /b>udict!/,\n /b>/, /boc+>B/, /boc>B/,\n\n /csr\\./,\n /def\\?/,\n /empty\\?/, /eq\\?/,\n /file-exists\\?/, /file>B/,\n\n /i,/, /i>B/, /i@\\+/, /i@/, /i@\\?\\+/, /i@\\?/,\n /idict!\\+/, /idict!/, /idict-/, /idict@-/, /idict@/,\n\n /null!/, /null\\?/,\n /pfxdict!\\+/, /pfxdict!/, /pfxdict@/, /priv>pub/,\n /ref@\\+/, /ref@/, /ref@\\?\\+/, /ref@\\?/,\n\n /s,/, /s>c/, /s>/,\n /sdict!\\+/, /sdict!/, /sdict-/, /sdict@-/, /sdict@/,\n /smca>\\$/, /sr,/,\n\n /tuple\\?/,\n\n /u,/, /u>B/, /u@\\+/, /u@\\?\\+/, /u@\\?/,\n /udict!\\+/, /udict!/, /udict-/, /udict@-/, /udict@/,\n /undef\\?/,\n\n /x\\._/, /x\\./,\n\n /\\|\\+/, /\\|/, /\\|_/,\n\n // Should be the last:\n new RegExp(\"(?<=\\\\s)\\\\.(?=\\\\s)\"),\n ),\n },\n\n // Primitives\n {\n 'scope': 'number',\n 'match': hljs.regex.either(\n /(0[xX][0-9a-fA-F]+)/,\n /(0[bB][01]+)/,\n /(-?[0-9]+(\\/-?[0-9]+)?)/,\n ),\n },\n { 'scope': 'string', 'match': /\"([^\"\\r\\n\\\\]|\\\\.)*\"/ },\n {\n // slice hex literal\n 'scope': 'symbol',\n 'match': /[xX]\\{[0-9a-fA-F_]*}/,\n 'relevance': 10,\n },\n {\n // byte hex literal\n 'scope': 'symbol',\n 'match': /[bB]\\{[01]*}/,\n 'relevance': 10,\n },\n {\n // atom\n 'scope': 'symbol',\n 'match': /'[^\\s]+/,\n },\n\n // Punctuation\n { 'scope': 'punctuation', 'match': /[\\[\\{\\}\\],]/ },\n ],\n }\n}\n", "/*\nLanguage: TL-B\nAuthor: Nikita Sobolev \nDescription: TL-B serves to describe the type system, constructors,\n and existing functions.\nWebsite: https://ton.org/docs/#/overviews/TL-B\nCategory: smartcontracts\n*/\n\nconst IDENTIFIER = /[a-zA-Z_][0-9a-zA-Z_]*/\n\nexport default function(hljs) {\n return {\n 'name': 'TL-B',\n 'aliases': ['Tlb', 'tlb', 'TLB', 'tl-b', 'TL-b', 'Tl-B', 'Tl-b'],\n 'case_insensitive': false,\n\n 'keywords': {\n 'keyword': [],\n 'literal': ['True', 'BoolTrue', 'False', 'BoolFalse', 'Null'],\n 'type': [\n // These are special cased, because they are used way too often:\n 'Type', 'Bool', 'Unit', 'Maybe', 'Either', 'Both', 'Cell',\n // Not mentioned, but also widely used:\n 'uint8', 'uint15', 'uint16', 'uint32', 'uint63', 'uint64',\n 'int8', 'int16', 'int32', 'int64',\n 'bits256', 'bits512',\n ],\n 'built_in': [],\n },\n\n 'contains': [\n // Comments\n {\n 'scope': 'comment',\n 'variants': [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE,\n ],\n },\n\n // Type definitions and tags\n {\n 'scope': 'symbol',\n 'match': hljs.regex.either(\n /#[0-9a-f]*_?/,\n /\\$[01]*_?/,\n /##/,\n /#<=/,\n /#=/, //,\n ),\n },\n\n // Primitives\n { 'scope': 'number', 'match': /[0-9]+/ },\n\n // Punctuation\n { 'scope': 'punctuation', 'match': /[;\\(\\):\\[\\]\\{\\}]/ },\n ],\n }\n}\n", "export const div = (props, ...children) =>\n createElement(\"div\", props, ...children);\nexport const code = (props, ...children) =>\n createElement(\"code\", props, ...children);\nexport const img = (props, ...children) =>\n createElement(\"img\", props, ...children);\n\nexport function appendChildren(parent, children) {\n for (const child of children) {\n if (!child) continue;\n switch (typeof child) {\n case \"string\":\n const el = document.createTextNode(child);\n parent.appendChild(el);\n break;\n default:\n parent.appendChild(child);\n break;\n }\n }\n}\n\nexport function setStyle(el, style) {\n if (typeof style === \"string\") {\n el.setAttribute(\"style\", style);\n } else {\n Object.assign(el.style, style);\n }\n}\n\nexport function setClass(el, className) {\n className.split(/\\s/).forEach((element) => {\n if (element) {\n el.classList.add(element);\n }\n });\n}\n\nexport function setProps(el, props) {\n const eventRegex = /^on([a-z]+)$/i;\n for (const propName in props) {\n if (!propName) continue;\n\n if (propName === \"style\") {\n setStyle(el, props[propName]);\n } else if (propName === \"className\") {\n setClass(el, props[propName]);\n } else if (eventRegex.test(propName)) {\n const eventToListen = propName.replace(eventRegex, \"$1\").toLowerCase();\n el.addEventListener(eventToListen, props[propName]);\n } else {\n el.setAttribute(propName, props[propName]);\n }\n }\n}\n\nexport function createElement(type, props, ...children) {\n if (typeof type === \"function\") {\n return type(props);\n } else {\n const el = document.createElement(type);\n if (props && typeof props === \"object\") {\n setProps(el, props);\n }\n if (children) {\n appendChildren(el, children);\n }\n return el;\n }\n}\n", "import { div, img } from \"./dom\";\nimport fileWhite from \"./res/file-white.svg\";\nimport fileBlack from \"./res/file-black.svg\";\nimport folderClosedWhite from \"./res/folder-closed-white.svg\";\nimport folderClosedBlack from \"./res/folder-closed-black.svg\";\nimport folderOpenWhite from \"./res/folder-open-white.svg\";\nimport folderOpenBlack from \"./res/folder-open-black.svg\";\nimport { classNames } from \"./contract-verifier-ui\";\n\nconst icons = {\n dark: {\n file: fileWhite,\n folder: {\n open: folderOpenWhite,\n closed: folderClosedWhite,\n },\n },\n light: {\n file: fileBlack,\n folder: {\n open: folderOpenBlack,\n closed: folderClosedBlack,\n },\n },\n};\n\nconst svgToInline = (svg) =>\n `data:image/svg+xml;base64,${Buffer.from(svg, \"utf8\").toString(\"base64\")}`;\n\nexport const TreeFile = ({ name }, theme) => {\n return div(\n { className: `${classNames.FILE} ${classNames.TREE_ITEM}` },\n img({\n src: svgToInline(icons[theme].file),\n }),\n div(null, name),\n );\n};\n\nfunction changeOpened(theme, event) {\n const folderHeader = event.target.classList.contains(\"folder-header\")\n ? event.target\n : event.target.parentElement;\n const opened = folderHeader.getAttribute(\"opened\") === \"true\";\n const newOpened = !opened;\n\n folderHeader.children[0].attributes.src.value = svgToInline(\n newOpened ? icons[theme].folder.open : icons[theme].folder.closed,\n );\n\n try {\n const sibling = folderHeader.nextElementSibling;\n if (newOpened) {\n sibling.classList.remove(\"hide\");\n } else {\n sibling.classList.add(\"hide\");\n }\n } catch (e) {\n console.warn(`No sibling of elem ${folderHeader} found ...`);\n }\n\n folderHeader.setAttribute(\"opened\", newOpened);\n}\n\nexport const TreeFolder = (props, theme, ...children) => {\n const opened = props.opened || false;\n const folderIcon = icons[theme].folder[opened ? \"open\" : \"closed\"];\n const folderName = props.name || \"unknown\";\n\n return div(\n { className: classNames.FOLDER_CONTAINER },\n div(\n {\n onClick: changeOpened.bind(this, theme),\n className: `folder-header ${classNames.FOLDER} ${classNames.TREE_ITEM}`,\n opened,\n },\n img({\n src: svgToInline(folderIcon),\n }),\n div(null, folderName),\n ),\n div({ className: `${opened ? \"\" : \"hide\"} folder-content` }, ...children),\n );\n};\n"], - "mappings": "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vB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EAC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CACAR,GAAQ,qBAAuBO,GAC/B,eAAeE,GAAqBD,EAAM,CACtC,OAAOC,GAAqBD,CAAI,CACpC,CACAR,GAAQ,qBAAuBS,GAC/B,eAAeC,GAAsBC,EAAKC,EAAK,CAC3C,IAAIC,EAAQD,EAAMD,EAClB,IAAIG,EAAa,KAAK,KAAK,KAAK,KAAKD,CAAK,CAAC,EAC3C,GAAIC,EAAa,GACb,MAAM,IAAI,MAAM,oBAAoB,EAIxC,QAFIC,EAAc,KAAK,KAAKD,EAAa,CAAC,EACtCE,EAAO,KAAK,IAAI,EAAGF,CAAU,EAAI,IACxB,CACT,IAAIG,EAAM,MAAMV,GAAqBO,CAAU,EAC3CI,GAASH,EAAc,GAAK,EAC5BI,EAAc,EAClB,QAASC,EAAI,EAAGA,EAAIL,EAAaK,IAC7BD,GAAeF,EAAIG,CAAC,EAAI,KAAK,IAAI,EAAGF,CAAK,EACzCA,GAAS,EAGb,GADAC,EAAcA,EAAcH,EACxB,EAAAG,GAAeN,GAGnB,OAAOF,EAAMQ,CACjB,CACJ,CACAnB,GAAQ,sBAAwBU,KCnChC,IAAAW,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,SAAW,OAEnBA,GAAQ,SAAW,CACf,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,UACA,MACJ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W,SAAU,UAAW,UAAW,UAAW,MAAO,QAAS,UAAW,SAAU,QAAS,UAAW,QAAS,OAAQ,SAAU,OAAQ,QAAS,QAAS,MAAO,QAAS,QAAS,OAAQ,SAAU,UAAW,SAAU,SAAU,QAAS,MAAO,WAAY,SAAU,UAAW,MAAO,SAAU,UAAW,QAAS,SAAU,SAAU,SAAU,UAAW,OAAQ,SAAU,SAAU,WAAY,UAAW,UAAW,QAAS,SAAU,OAAQ,SAAU,OAAQ,SAAU,UAAW,UAAW,QAAS,QAAS,QAAS,OAAQ,UAAW,QAAS,UAAW,OAChyC,OAAQ,WAAY,QAAS,QAAS,MAAO,UAAW,UAAW,OAAQ,SAAU,SAAU,SAAU,MAAO,SAAU,UAAW,SAAU,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,SAAU,UAAW,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,QAAS,OAAQ,QAAS,UAAW,OAAQ,SAAU,SAAU,UAAW,SAAU,UAAW,MAAO,OAAQ,OAAQ,UAAW,OAAQ,QAAS,SAAU,QAAS,QAAS,QAAS,UAAW,QAAS,QAAS,QAAS,QAAS,QAAS,UAAW,SAAU,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,OAAQ,QAAS,SAAU,SAAU,SAAU,OAAQ,SAAU,SAAU,MAAO,MAAO,UAAW,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,WAAY,SAAU,SAAU,QAAS,UAAW,QAAS,QAAS,SAAU,QAAS,SAAU,UAAW,QAAS,OAAQ,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,MAAO,WAAY,OAAQ,SAAU,QAAS,OAC1jC,UAAW,QAAS,QAAS,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,MAAO,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,UAAW,UAAW,UAAW,MAAO,SAAU,OAAQ,QAAS,SAAU,QAAS,OAAQ,OAAQ,OAAQ,SAAU,SAAU,SAAU,MAAO,UAAW,QAAS,WAAY,SAAU,SAAU,QAAS,UAAW,OAAQ,UAAW,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,QAAS,QAAS,WAAY,SAAU,QAAS,UAAW,SAAU,QAAS,OAAQ,QAAS,QAAS,SAAU,OAAQ,SAAU,QAAS,UAAW,QAAS,QAAS,UAAW,SAAU,SAAU,UAAW,UAAW,QAAS,QAAS,QAAS,WAAY,SAAU,UAAW,OAAQ,QAAS,QAAS,OAAQ,UAAW,OAAQ,OAAQ,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,OAAQ,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,UAAW,SAAU,QAAS,QAAS,UAAW,OAAQ,SAAU,OAAQ,OAAQ,UAAW,QAAS,SAAU,UAAW,OAAQ,UAAW,QAAS,SAAU,UAAW,UAAW,UAAW,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,OAAQ,OAAQ,SAAU,OAAQ,QAAS,OAAQ,OAAQ,UAAW,OAAQ,SAAU,QAAS,UAAW,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,OAAQ,QAAS,QAAS,SAAU,QAAS,QAAS,QAAS,SAAU,QAAS,OAAQ,UAAW,QAAS,QAAS,SAAU,OAAQ,QAAS,SAAU,QAAS,UAAW,QAAS,SAAU,UAAW,SAAU,QAAS,MAAO,UAAW,OAAQ,UAAW,MAAO,WAAY,UAAW,UAAW,UAAW,QAAS,UAAW,SAAU,OAAQ,QACnuD,MAAO,SAAU,OAAQ,QAAS,SAAU,SAAU,OAAQ,WAAY,OAAQ,MAAO,OAAQ,SAAU,SAAU,SAAU,WAAY,SAAU,UAAW,WAAY,WAAY,OAAQ,UAAW,SAAU,OAAQ,SAAU,QAAS,UAAW,SAAU,SAAU,SAAU,UAAW,OAAQ,SAAU,SAAU,UAAW,QAAS,SAAU,SAAU,WAAY,SAAU,SAAU,OAAQ,UAAW,UAAW,SAAU,SAAU,UAAW,SAAU,SAAU,UAAW,OAAQ,UAAW,QAAS,OAAQ,SAAU,OAAQ,SAAU,UAAW,UAAW,UAAW,SAAU,WAAY,SAAU,OAAQ,WAAY,WAAY,UAAW,OAAQ,UAAW,WAAY,UAAW,WAAY,SAAU,SAAU,UAAW,QAAS,SAAU,WAAY,MAAO,OAAQ,UAAW,SAAU,SAAU,SAAU,QAAS,OAAQ,OAAQ,SAAU,OAAQ,QAAS,SAAU,QAAS,UAAW,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,QAAS,OAAQ,QAAS,UAC/iC,QAAS,QAAS,QAAS,OAAQ,QAAS,SAAU,OAAQ,OAAQ,OAAQ,UAAW,UAAW,OAAQ,OAAQ,UAAW,SAAU,MAAO,QAAS,SAAU,QAAS,QAAS,WAAY,UAAW,UAAW,WAAY,WAAY,QAAS,OAAQ,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,UAAW,QAAS,SAAU,QAAS,MAAO,UAAW,UAAW,QAAS,SAAU,UAAW,SAAU,SAAU,UAAW,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,WAAY,UAAW,QAAS,QAAS,MAAO,QAAS,QAAS,UAAW,QAAS,QAAS,SAAU,QAAS,UAAW,SAAU,UAAW,SAAU,WAAY,OAAQ,QAAS,SAAU,QAAS,UAAW,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,WAAY,UAAW,UAAW,QAAS,QAAS,OAAQ,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,QAAS,MAAO,UAC38B,SAAU,OAAQ,UAAW,OAAQ,QAAS,QAAS,OAAQ,QAAS,OAAQ,SAAU,SAAU,MAAO,QAAS,UAAW,OAAQ,UAAW,MAAO,QAAS,SAAU,UAAW,QAAS,WAAY,UAAW,WAAY,UAAW,MAAO,OAAQ,OAAQ,SAAU,QAAS,WAAY,QAAS,QAAS,MAAO,QAAS,UAAW,QAAS,SAAU,OAAQ,OAAQ,SAAU,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,OAAQ,QAAS,SAAU,OAAQ,MAAO,UAAW,MAAO,OAAQ,QAAS,QAAS,OAAQ,SAAU,OAAQ,SAAU,OAAQ,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,MAAO,OAAQ,QAAS,MAAO,OAAQ,OAAQ,SAAU,OAAQ,OAAQ,QAAS,SAAU,SAAU,OAAQ,UAAW,QAAS,UAAW,SAAU,SAAU,QAAS,MAAO,UAAW,QAAS,WAAY,QAAS,SAAU,SAAU,OAAQ,QAAS,QAAS,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,UAAW,OAAQ,SAC37B,SAAU,OAAQ,SAAU,UAAW,OAAQ,MAAO,SAAU,UAAW,SAAU,SAAU,UAAW,MAAO,OAAQ,OAAQ,SAAU,QAAS,OAAQ,UAAW,SAAU,QAAS,SAAU,UAAW,UAAW,QAAS,QAAS,OAAQ,SAAU,SAAU,UAAW,OAAQ,OAAQ,OAAQ,SAAU,QAAS,QAAS,QAAS,UAAW,Q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AQ,OAAQ,SAAU,OAAQ,QAAS,QAAS,QAAS,UAAW,QAAS,SAAU,SAAU,OAAQ,SAAU,QAAS,OAAQ,QAAS,OAAQ,UAAW,SAAU,UAAW,QAAS,OAAQ,UAAW,QAAS,SAAU,OAAQ,UAAW,UAAW,MAAO,UAAW,SAAU,SAAU,SAAU,UAAW,SAAU,SAAU,MAAO,QAAS,QAAS,SAAU,WAAY,QAAS,SAAU,UAAW,QAAS,MAAO,SAAU,OAAQ,QAAS,OAAQ,UAAW,OAAQ,SAAU,QAAS,QAAS,QAAS,SAAU,UAAW,QAAS,OAAQ,SAAU,SAAU,QAAS,OAAQ,SAAU,OAAQ,OAAQ,QAAS,QAAS,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,UAAW,UAAW,WAAY,WAAY,OAAQ,SAAU,UAAW,UAAW,SAAU,QAAS,WAAY,SAAU,UAAW,SAAU,UAAW,UAAW,SAAU,UAAW,QAAS,QAAS,UAAW,QAAS,WAAY,SAAU,UAAW,QAAS,UAAW,UAAW,UAAW,SAAU,UAAW,UAAW,UAAW,QAAS,WAAY,UAAW,UAAW,QAAS,UAAW,SAAU,UAAW,OAAQ,OAAQ,QAAS,UAAW,QAAS,QAAS,QAAS,WAAY,SAAU,UAAW,QAAS,OAAQ,MAAO,SAAU,UACjvC,UAAW,UAAW,UAAW,WAAY,QAAS,OAAQ,OAAQ,QACtE,SAAU,UAAW,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,QAAS,OAAQ,OAAQ,SAAU,QAAS,MAAO,QAAS,QAAS,OAAQ,SAAU,QAAS,UAAW,SAAU,UAAW,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,QAAS,UAAW,SAAU,OAAQ,SAAU,WAAY,SAAU,SAAU,SAAU,QAAS,OAAQ,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,WAAY,SAAU,WAAY,WAAY,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,SAAU,SAAU,SAAU,MAAO,SAAU,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,SAAU,OAAQ,SAAU,QAAS,QAAS,OAAQ,QAAS,QAAS,SAAU,SAAU,UAAW,OAAQ,SAAU,OAAQ,OAAQ,SAAU,QAAS,QAAS,QAAS,QAAS,SAAU,OAAQ,MAAO,OAAQ,MAAO,SAAU,QACj/B,MAAO,SAAU,UAAW,OAAQ,OAAQ,QAAS,SAAU,QAAS,OAAQ,SAAU,OAAQ,SAAU,OAAQ,UAAW,UAAW,QAAS,UAAW,OAAQ,MAAO,QAAS,OAAQ,QAAS,UAAW,QAAS,SAAU,SAAU,UAAW,WAAY,WAAY,QAAS,QAAS,SAAU,SAAU,QAAS,MAAO,SAAU,SAAU,OAAQ,SAAU,SAAU,UAAW,WAAY,OAAQ,OAAQ,UAAW,SAAU,OAAQ,UAAW,SAAU,QAAS,WAAY,SAAU,UAAW,UAAW,SAAU,QAAS,QAAS,SAAU,QAAS,UAAW,QAAS,OAAQ,QAAS,UAAW,SAAU,QAAS,QAAS,OAAQ,SAAU,QAAS,OAAQ,QAAS,OAAQ,QAAS,WAAY,QAAS,SAAU,QAAS,UAAW,MAAO,UAAW,OAAQ,OAAQ,QAAS,QAAS,OAAQ,SAAU,OAAQ,QAAS,SAAU,UAAW,SAAU,QAAS,OAAQ,QAAS,SAAU,UAAW,MAAO,OAAQ,QAAS,SAAU,MAAO,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,UAAW,QAAS,QAAS,SAAU,OAAQ,SAAU,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,OAAQ,OAAQ,QAAS,UAAW,QAAS,WAAY,QAAS,UAAW,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,SAAU,QAAS,QAAS,QAAS,UAAW,QAAS,QAAS,UAAW,QAAS,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,OAAQ,SAAU,QAAS,QAAS,UAAW,QAAS,QAAS,OAAQ,QAAS,SAAU,SAAU,MAAO,SAAU,UAAW,WAAY,SAAU,UAAW,QAAS,QAAS,SAAU,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,SAAU,QAAS,QAAS,QAAS,QAAS,UAAW,QAAS,QAAS,QAAS,QAAS,WAAY,SAAU,SAAU,SAAU,WAAY,UAAW,QAAS,UAAW,QAAS,UAAW,SAAU,SAAU,UAAW,OAAQ,SAAU,SAAU,QAAS,UAAW,OAAQ,SAAU,MAAO,QAAS,SAAU,QAAS,SAAU,UAAW,OAAQ,UAAW,QAAS,WAAY,WAAY,SAAU,UA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", + "sources": ["../node_modules/esbuild-plugin-polyfill-node/polyfills/global.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/__filename.js", "../node_modules/process-es6/browser.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/process.js", "../node_modules/buffer-es6/base64.js", "../node_modules/buffer-es6/ieee754.js", "../node_modules/buffer-es6/isArray.js", "../node_modules/buffer-es6/index.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js", "../node_modules/symbol.inspect/index.ts", "../node_modules/ton-core/dist/utils/crc16.js", "../node_modules/ton-core/dist/address/Address.js", "../node_modules/ton-core/dist/address/ExternalAddress.js", "../node_modules/ton-core/dist/utils/base32.js", "../node_modules/ton-core/dist/address/ADNLAddress.js", "../node_modules/ton-core/dist/boc/utils/paddedBits.js", "../node_modules/ton-core/dist/boc/BitString.js", "../node_modules/ton-core/dist/boc/BitBuilder.js", "../node_modules/ton-core/dist/boc/CellType.js", "../node_modules/ton-core/dist/dict/parseDict.js", "../node_modules/ton-core/dist/dict/utils/findCommonPrefix.js", "../node_modules/ton-core/dist/dict/serializeDict.js", "../node_modules/ton-core/dist/dict/utils/internalKeySerializer.js", "../node_modules/ton-core/dist/dict/Dictionary.js", "../node_modules/ton-core/dist/boc/utils/strings.js", "../node_modules/ton-core/dist/boc/Slice.js", "../node_modules/ton-core/dist/boc/BitReader.js", "../node_modules/ton-core/dist/boc/cell/exoticLibrary.js", "../node_modules/ton-core/dist/boc/cell/exoticMerkleProof.js", "../node_modules/ton-core/dist/boc/cell/exoticMerkleUpdate.js", "../node_modules/ton-core/dist/boc/cell/LevelMask.js", "../node_modules/ton-core/dist/boc/cell/exoticPruned.js", "../node_modules/ton-core/dist/boc/cell/resolveExotic.js", "../node_modules/ton-core/dist/boc/cell/descriptor.js", "../node_modules/jssha/src/converters.ts", "../node_modules/jssha/src/common.ts", "../node_modules/jssha/node_modules/tslib/tslib.es6.js", "../node_modules/jssha/src/primitives_32.ts", "../node_modules/jssha/src/sha1.ts", "../node_modules/jssha/src/sha256.ts", "../node_modules/jssha/src/primitives_64.ts", "../node_modules/jssha/src/sha512.ts", "../node_modules/jssha/src/sha3.ts", "../node_modules/jssha/src/sha.ts", "../node_modules/ton-crypto-primitives/dist/browser/getSecureRandom.js", "../node_modules/ton-crypto-primitives/dist/browser/hmac_sha512.js", "../node_modules/ton-crypto-primitives/dist/browser/pbkdf2_sha512.js", "../node_modules/ton-crypto-primitives/dist/browser/sha256.js", "../node_modules/ton-crypto-primitives/dist/browser/sha512.js", "../node_modules/ton-crypto-primitives/dist/browser.js", "../node_modules/ton-crypto/dist/primitives/sha256.js", "../node_modules/ton-crypto/dist/primitives/sha512.js", "../node_modules/ton-crypto/dist/primitives/pbkdf2_sha512.js", "../node_modules/ton-crypto/dist/primitives/hmac_sha512.js", "../node_modules/ton-crypto/dist/primitives/getSecureRandom.js", "../node_modules/ton-crypto/dist/passwords/wordlist.js", "../node_modules/ton-crypto/dist/passwords/newSecureWords.js", "../node_modules/ton-crypto/dist/passwords/newSecurePassphrase.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/empty.js", "../node_modules/tweetnacl/nacl-fast.js", "../node_modules/ton-crypto/dist/utils/binary.js", "../node_modules/ton-crypto/dist/mnemonic/wordlist.js", "../node_modules/ton-crypto/dist/mnemonic/mnemonic.js", "../node_modules/ton-crypto/dist/primitives/nacl.js", "../node_modules/ton-crypto/dist/hd/ed25519.js", "../node_modules/ton-crypto/dist/hd/symmetric.js", "../node_modules/ton-crypto/dist/hd/mnemonics.js", "../node_modules/ton-crypto/dist/index.js", "../node_modules/ton-core/dist/boc/cell/wonderCalculator.js", "../node_modules/ton-core/dist/boc/cell/utils/topologicalSort.js", "../node_modules/ton-core/dist/utils/bitsForNumber.js", "../node_modules/ton-core/dist/utils/crc32c.js", "../node_modules/ton-core/dist/boc/cell/serialization.js", "../node_modules/ton-core/dist/boc/Cell.js", "../node_modules/ton-core/dist/boc/Builder.js", "../node_modules/ton-core/dist/types/SimpleLibrary.js", "../node_modules/ton-core/dist/types/TickTock.js", "../node_modules/ton-core/dist/types/StateInit.js", "../node_modules/ton-core/dist/address/contractAddress.js", "../node_modules/ton-core/dist/tuple/tuple.js", "../node_modules/ton-core/dist/tuple/reader.js", "../node_modules/ton-core/dist/tuple/builder.js", "../node_modules/ton-core/dist/utils/convert.js", "../node_modules/ton-core/dist/types/_helpers.js", "../node_modules/ton-core/dist/types/AccountState.js", "../node_modules/ton-core/dist/types/CurrencyCollection.js", "../node_modules/ton-core/dist/types/AccountStorage.js", "../node_modules/ton-core/dist/types/StorageUsed.js", "../node_modules/ton-core/dist/types/StorageInto.js", "../node_modules/ton-core/dist/types/Account.js", "../node_modules/ton-core/dist/types/AccountStatus.js", "../node_modules/ton-core/dist/types/AccountStatusChange.js", "../node_modules/ton-core/dist/types/CommonMessageInfo.js", "../node_modules/ton-core/dist/types/CommonMessageInfoRelaxed.js", "../node_modules/ton-core/dist/types/ComputeSkipReason.js", "../node_modules/ton-core/dist/types/DepthBalanceInfo.js", "../node_modules/ton-core/dist/types/HashUpdate.js", "../node_modules/ton-core/dist/types/MasterchainStateExtra.js", "../node_modules/ton-core/dist/types/Message.js", "../node_modules/ton-core/dist/types/MessageRelaxed.js", "../node_modules/ton-core/dist/types/SendMode.js", "../node_modules/ton-core/dist/types/ShardAccount.js", "../node_modules/ton-core/dist/types/ShardAccounts.js", "../node_modules/ton-core/dist/types/ShardIdent.js", "../node_modules/ton-core/dist/types/ShardStateUnsplit.js", "../node_modules/ton-core/dist/types/SplitMergeInfo.js", "../node_modules/ton-core/dist/types/StorageUsedShort.js", "../node_modules/ton-core/dist/types/TransactionActionPhase.js", "../node_modules/ton-core/dist/types/TransactionBouncePhase.js", "../node_modules/ton-core/dist/types/TransactionComputePhase.js", "../node_modules/ton-core/dist/types/TransactionCreditPhase.js", "../node_modules/ton-core/dist/types/TransactionStoragePhase.js", "../node_modules/ton-core/dist/types/TransactionDescription.js", "../node_modules/ton-core/dist/types/Transaction.js", "../node_modules/ton-core/dist/types/_export.js", "../node_modules/ton-core/dist/contract/openContract.js", "../node_modules/ton-core/dist/contract/ComputeError.js", "../node_modules/ton-core/dist/utils/getMethodId.js", "../node_modules/ton-core/dist/crypto/safeSign.js", "../node_modules/ton-core/dist/index.js", "../node_modules/fp-ts/lib/function.js", "../node_modules/fp-ts/lib/internal.js", "../node_modules/fp-ts/lib/Apply.js", "../node_modules/fp-ts/lib/Functor.js", "../node_modules/fp-ts/lib/Applicative.js", "../node_modules/fp-ts/lib/Chain.js", "../node_modules/fp-ts/lib/ChainRec.js", "../node_modules/fp-ts/lib/FromEither.js", "../node_modules/fp-ts/lib/Separated.js", "../node_modules/fp-ts/lib/Witherable.js", "../node_modules/fp-ts/lib/Either.js", "../node_modules/io-ts/lib/index.js", "../node_modules/fp-ts/lib/Eq.js", "../node_modules/fp-ts/lib/Ord.js", "../node_modules/fp-ts/lib/Magma.js", "../node_modules/fp-ts/lib/Semigroup.js", "../node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js", "../node_modules/fp-ts/lib/NonEmptyArray.js", "../node_modules/fp-ts/lib/number.js", "../node_modules/fp-ts/lib/Zero.js", "../node_modules/fp-ts/lib/ReadonlyArray.js", "../node_modules/fp-ts/lib/Array.js", "../node_modules/fp-ts/lib/Predicate.js", "../node_modules/fp-ts/lib/Option.js", "../node_modules/fp-ts/lib/string.js", "../node_modules/fp-ts/lib/ReadonlyRecord.js", "../node_modules/fp-ts/lib/Record.js", "../node_modules/fp-ts/lib/pipeable.js", "../node_modules/io-ts-reporters/src/utils.ts", "../node_modules/io-ts-reporters/src/index.ts", "../node_modules/ton/dist/client/api/TonCache.js", "../node_modules/dataloader/index.js", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/env/data.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/ton/package.json", "../node_modules/ton/dist/client/api/HttpApi.js", "../node_modules/ton/dist/client/TonClient.js", "../node_modules/ton/dist/utils/toUrlSafe.js", "../node_modules/ton/dist/client/TonClient4.js", "../node_modules/ton/dist/wallets/signing/createWalletTransfer.js", "../node_modules/ton/dist/wallets/WalletContractV1R1.js", "../node_modules/ton/dist/wallets/WalletContractV1R2.js", "../node_modules/ton/dist/wallets/WalletContractV1R3.js", "../node_modules/ton/dist/wallets/WalletContractV2R1.js", "../node_modules/ton/dist/wallets/WalletContractV2R2.js", "../node_modules/ton/dist/wallets/WalletContractV3R1.js", "../node_modules/ton/dist/wallets/WalletContractV3R2.js", "../node_modules/ton/dist/wallets/WalletContractV4.js", "../node_modules/ton/dist/jetton/JettonMaster.js", "../node_modules/ton/dist/jetton/JettonWallet.js", "../node_modules/ton/dist/multisig/MultisigOrder.js", "../node_modules/ton/dist/multisig/MultisigOrderBuilder.js", "../node_modules/ton/dist/multisig/MultisigWallet.js", "../node_modules/ton/dist/index.js", "../node_modules/whatwg-fetch/dist/fetch.umd.js", "../node_modules/isomorphic-fetch/fetch-npm-browserify.js", "../node_modules/@orbs-network/ton-access/src/nodes.ts", "../node_modules/@orbs-network/ton-access/package.json", "../node_modules/@orbs-network/ton-access/src/index.ts", "../node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js", "../node_modules/@aws-crypto/sha256-js/src/constants.ts", "../node_modules/@aws-crypto/sha256-js/src/RawSha256.ts", "../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js", "../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js", "../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js", "../node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../node_modules/@aws-crypto/util/src/isEmptyData.ts", "../node_modules/@aws-crypto/util/src/numToUint8.ts", "../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../node_modules/@aws-crypto/util/src/index.ts", "../node_modules/@aws-crypto/sha256-js/src/jsSha256.ts", "../node_modules/@aws-crypto/sha256-js/src/index.ts", "../node_modules/highlight.js/lib/core.js", "../src/lib/web.ts", "../src/lib/contract-verifier.ts", "../src/lib/contract-verifier-ui.ts", "../node_modules/highlight.js/es/core.js", "../../highlightjs-func/src/index.js", "../../highlightjs-func/src/languages/func.js", "../../highlightjs-func/src/languages/fift.js", "../../highlightjs-func/src/languages/tlb.js", "../src/lib/dom.ts", "../src/lib/file-structure.ts"], + "sourcesContent": ["const global = globalThis;\nexport { global };\n", "export const __dirname = \"/\";\n", "export const __filename = \"/index.js\";\n", "// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n", "export * as process from \"process\";\n", "\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n", "\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n", "export { Buffer } from \"buffer\";\n", "/**\n * that can be used to declare custom inspect functions.\n *\n * same as Symbol.for('nodejs.util.inspect.custom')\n * same as util.inspect.custom\n */\nconst SymbolInspect = Symbol.for('nodejs.util.inspect.custom');\nexport = SymbolInspect;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc16 = void 0;\nfunction crc16(data) {\n const poly = 0x1021;\n let reg = 0;\n const message = Buffer.alloc(data.length + 2);\n message.set(data);\n for (let byte of message) {\n let mask = 0x80;\n while (mask > 0) {\n reg <<= 1;\n if (byte & mask) {\n reg += 1;\n }\n mask >>= 1;\n if (reg > 0xffff) {\n reg &= 0xffff;\n reg ^= poly;\n }\n }\n }\n return Buffer.from([Math.floor(reg / 256), reg % 256]);\n}\nexports.crc16 = crc16;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.address = exports.Address = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst crc16_1 = require(\"../utils/crc16\");\nconst bounceable_tag = 0x11;\nconst non_bounceable_tag = 0x51;\nconst test_flag = 0x80;\nfunction parseFriendlyAddress(src) {\n const data = Buffer.isBuffer(src) ? src : Buffer.from(src, 'base64');\n // 1byte tag + 1byte workchain + 32 bytes hash + 2 byte crc\n if (data.length !== 36) {\n throw new Error('Unknown address type: byte length is not equal to 36');\n }\n // Prepare data\n const addr = data.subarray(0, 34);\n const crc = data.subarray(34, 36);\n const calcedCrc = (0, crc16_1.crc16)(addr);\n if (!(calcedCrc[0] === crc[0] && calcedCrc[1] === crc[1])) {\n throw new Error('Invalid checksum: ' + src);\n }\n // Parse tag\n let tag = addr[0];\n let isTestOnly = false;\n let isBounceable = false;\n if (tag & test_flag) {\n isTestOnly = true;\n tag = tag ^ test_flag;\n }\n if ((tag !== bounceable_tag) && (tag !== non_bounceable_tag))\n throw \"Unknown address tag\";\n isBounceable = tag === bounceable_tag;\n let workchain = null;\n if (addr[1] === 0xff) { // TODO we should read signed integer here\n workchain = -1;\n }\n else {\n workchain = addr[1];\n }\n const hashPart = addr.subarray(2, 34);\n return { isTestOnly, isBounceable, workchain, hashPart };\n}\nclass Address {\n static isAddress(src) {\n return src instanceof Address;\n }\n static isFriendly(source) {\n return source.indexOf(':') < 0;\n }\n static normalize(source) {\n if (typeof source === 'string') {\n return Address.parse(source).toString();\n }\n else {\n return source.toString();\n }\n }\n static parse(source) {\n if (Address.isFriendly(source)) {\n return this.parseFriendly(source).address;\n }\n else {\n return this.parseRaw(source);\n }\n }\n static parseRaw(source) {\n let workChain = parseInt(source.split(\":\")[0]);\n let hash = Buffer.from(source.split(\":\")[1], 'hex');\n return new Address(workChain, hash);\n }\n static parseFriendly(source) {\n if (Buffer.isBuffer(source)) {\n let r = parseFriendlyAddress(source);\n return {\n isBounceable: r.isBounceable,\n isTestOnly: r.isTestOnly,\n address: new Address(r.workchain, r.hashPart)\n };\n }\n else {\n let addr = source.replace(/\\-/g, '+').replace(/_/g, '\\/'); // Convert from url-friendly to true base64\n let r = parseFriendlyAddress(addr);\n return {\n isBounceable: r.isBounceable,\n isTestOnly: r.isTestOnly,\n address: new Address(r.workchain, r.hashPart)\n };\n }\n }\n constructor(workChain, hash) {\n this.toRawString = () => {\n return this.workChain + ':' + this.hash.toString('hex');\n };\n this.toRaw = () => {\n const addressWithChecksum = Buffer.alloc(36);\n addressWithChecksum.set(this.hash);\n addressWithChecksum.set([this.workChain, this.workChain, this.workChain, this.workChain], 32);\n return addressWithChecksum;\n };\n this.toStringBuffer = (args) => {\n let testOnly = (args && args.testOnly !== undefined) ? args.testOnly : false;\n let bounceable = (args && args.bounceable !== undefined) ? args.bounceable : true;\n let tag = bounceable ? bounceable_tag : non_bounceable_tag;\n if (testOnly) {\n tag |= test_flag;\n }\n const addr = Buffer.alloc(34);\n addr[0] = tag;\n addr[1] = this.workChain;\n addr.set(this.hash, 2);\n const addressWithChecksum = Buffer.alloc(36);\n addressWithChecksum.set(addr);\n addressWithChecksum.set((0, crc16_1.crc16)(addr), 34);\n return addressWithChecksum;\n };\n this.toString = (args) => {\n let urlSafe = (args && args.urlSafe !== undefined) ? args.urlSafe : true;\n let buffer = this.toStringBuffer(args);\n if (urlSafe) {\n return buffer.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n else {\n return buffer.toString('base64');\n }\n };\n this[_a] = () => this.toString();\n this.workChain = workChain;\n this.hash = hash;\n Object.freeze(this);\n }\n equals(src) {\n if (src.workChain !== this.workChain) {\n return false;\n }\n return src.hash.equals(this.hash);\n }\n}\nexports.Address = Address;\n_a = symbol_inspect_1.default;\nfunction address(src) {\n return Address.parse(src);\n}\nexports.address = address;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExternalAddress = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nclass ExternalAddress {\n static isAddress(src) {\n return src instanceof ExternalAddress;\n }\n constructor(value, bits) {\n this[_a] = () => this.toString();\n this.value = value;\n this.bits = bits;\n }\n toString() {\n return `External<${this.bits}:${this.value}>`;\n }\n}\nexports.ExternalAddress = ExternalAddress;\n_a = symbol_inspect_1.default;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base32Decode = exports.base32Encode = void 0;\nconst alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\nfunction base32Encode(buffer) {\n const length = buffer.byteLength;\n let bits = 0;\n let value = 0;\n let output = '';\n for (let i = 0; i < length; i++) {\n value = (value << 8) | buffer[i];\n bits += 8;\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31];\n bits -= 5;\n }\n }\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31];\n }\n return output;\n}\nexports.base32Encode = base32Encode;\nfunction readChar(alphabet, char) {\n const idx = alphabet.indexOf(char);\n if (idx === -1) {\n throw new Error('Invalid character found: ' + char);\n }\n return idx;\n}\nfunction base32Decode(input) {\n let cleanedInput;\n cleanedInput = input.toLowerCase();\n const { length } = cleanedInput;\n let bits = 0;\n let value = 0;\n let index = 0;\n const output = Buffer.alloc(((length * 5) / 8) | 0);\n for (let i = 0; i < length; i++) {\n value = (value << 5) | readChar(alphabet, cleanedInput[i]);\n bits += 5;\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255;\n bits -= 8;\n }\n }\n return output;\n}\nexports.base32Decode = base32Decode;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ADNLAddress = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst base32_1 = require(\"../utils/base32\");\nconst crc16_1 = require(\"../utils/crc16\");\nclass ADNLAddress {\n static parseFriendly(src) {\n if (src.length !== 55) {\n throw Error('Invalid address');\n }\n // Decoding\n src = 'f' + src;\n let decoded = (0, base32_1.base32Decode)(src);\n if (decoded[0] !== 0x2d) {\n throw Error('Invalid address');\n }\n let gotHash = decoded.slice(33);\n let hash = (0, crc16_1.crc16)(decoded.slice(0, 33));\n if (!hash.equals(gotHash)) {\n throw Error('Invalid address');\n }\n return new ADNLAddress(decoded.slice(1, 33));\n }\n static parseRaw(src) {\n const data = Buffer.from(src, 'base64');\n return new ADNLAddress(data);\n }\n constructor(address) {\n this.toRaw = () => {\n return this.address.toString('hex').toUpperCase();\n };\n this.toString = () => {\n let data = Buffer.concat([Buffer.from([0x2D]), this.address]);\n let hash = (0, crc16_1.crc16)(data);\n data = Buffer.concat([data, hash]);\n return (0, base32_1.base32Encode)(data).slice(1);\n };\n this[_a] = () => this.toString();\n if (address.length !== 32) {\n throw Error('Invalid address');\n }\n this.address = address;\n }\n equals(b) {\n return this.address.equals(b.address);\n }\n}\nexports.ADNLAddress = ADNLAddress;\n_a = symbol_inspect_1.default;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitsToPaddedBuffer = void 0;\nconst BitBuilder_1 = require(\"../BitBuilder\");\nfunction bitsToPaddedBuffer(bits) {\n // Create builder\n let builder = new BitBuilder_1.BitBuilder(Math.ceil(bits.length / 8) * 8);\n builder.writeBits(bits);\n // Apply padding\n let padding = Math.ceil(bits.length / 8) * 8 - bits.length;\n for (let i = 0; i < padding; i++) {\n if (i === 0) {\n builder.writeBit(1);\n }\n else {\n builder.writeBit(0);\n }\n }\n return builder.buffer();\n}\nexports.bitsToPaddedBuffer = bitsToPaddedBuffer;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitString = void 0;\nconst paddedBits_1 = require(\"./utils/paddedBits\");\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\n/**\n * BitString is a class that represents a bitstring in a buffer with a specified offset and length\n */\nclass BitString {\n /**\n * Constructing BitString from a buffer\n * @param data data that contains the bitstring data. NOTE: We are expecting this buffer to be NOT modified\n * @param offset offset in bits from the start of the buffer\n * @param length length of the bitstring in bits\n */\n constructor(data, offset, length) {\n this[_a] = () => this.toString();\n // Check bounds\n if (length < 0) {\n throw new Error(`Length ${length} is out of bounds`);\n }\n this._length = length;\n this._data = data;\n this._offset = offset;\n }\n /**\n * Returns the length of the bitstring\n */\n get length() {\n return this._length;\n }\n /**\n * Returns the bit at the specified index\n * @param index index of the bit\n * @throws Error if index is out of bounds\n * @returns true if the bit is set, false otherwise\n */\n at(index) {\n // Check bounds\n if (index >= this._length) {\n throw new Error(`Index ${index} > ${this._length} is out of bounds`);\n }\n if (index < 0) {\n throw new Error(`Index ${index} < 0 is out of bounds`);\n }\n // Calculcate offsets\n let byteIndex = (this._offset + index) >> 3;\n let bitIndex = 7 - ((this._offset + index) % 8); // NOTE: We are using big endian\n // Return the bit\n return (this._data[byteIndex] & (1 << bitIndex)) !== 0;\n }\n /**\n * Get a subscring of the bitstring\n * @param offset\n * @param length\n * @returns\n */\n substring(offset, length) {\n // Corner case of empty string\n if (length === 0 && offset === this._length) {\n return BitString.EMPTY;\n }\n // Check offset\n if (offset >= this._length) {\n throw new Error(`Offset(${offset}) > ${this._length} is out of bounds`);\n }\n if (offset < 0) {\n throw new Error(`Offset(${offset}) < 0 is out of bounds`);\n }\n if (offset + length > this._length) {\n throw new Error(`Offset ${offset} + Length ${length} > ${this._length} is out of bounds`);\n }\n // Create substring\n return new BitString(this._data, this._offset + offset, length);\n }\n /**\n * Try to get a buffer from the bitstring without allocations\n * @param offset offset in bits\n * @param length length in bits\n * @returns buffer if the bitstring is aligned to bytes, null otherwise\n */\n subbuffer(offset, length) {\n // Check offset\n if (offset >= this._length) {\n throw new Error(`Offset ${offset} is out of bounds`);\n }\n if (offset < 0) {\n throw new Error(`Offset ${offset} is out of bounds`);\n }\n if (offset + length > this._length) {\n throw new Error(`Offset + Lenght = ${offset + length} is out of bounds`);\n }\n // Check alignment\n if (length % 8 !== 0) {\n return null;\n }\n if ((this._offset + offset) % 8 !== 0) {\n return null;\n }\n // Create substring\n let start = ((this._offset + offset) >> 3);\n let end = start + (length >> 3);\n return this._data.subarray(start, end);\n }\n /**\n * Checks for equality\n * @param b other bitstring\n * @returns true if the bitstrings are equal, false otherwise\n */\n equals(b) {\n if (this._length !== b._length) {\n return false;\n }\n for (let i = 0; i < this._length; i++) {\n if (this.at(i) !== b.at(i)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Format to canonical string\n * @returns formatted bits as a string\n */\n toString() {\n const padded = (0, paddedBits_1.bitsToPaddedBuffer)(this);\n if (this._length % 4 === 0) {\n const s = padded.subarray(0, Math.ceil(this._length / 8)).toString('hex').toUpperCase();\n if (this._length % 8 === 0) {\n return s;\n }\n else {\n return s.substring(0, s.length - 1);\n }\n }\n else {\n const hex = padded.toString('hex').toUpperCase();\n if (this._length % 8 <= 4) {\n return hex.substring(0, hex.length - 1) + '_';\n }\n else {\n return hex + '_';\n }\n }\n }\n}\nexports.BitString = BitString;\n_a = symbol_inspect_1.default;\nBitString.EMPTY = new BitString(Buffer.alloc(0), 0, 0);\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitBuilder = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst ExternalAddress_1 = require(\"../address/ExternalAddress\");\nconst BitString_1 = require(\"./BitString\");\n/**\n * Class for building bit strings\n */\nclass BitBuilder {\n constructor(size = 1023) {\n this._buffer = Buffer.alloc(Math.ceil(size / 8));\n this._length = 0;\n }\n /**\n * Current number of bits written\n */\n get length() {\n return this._length;\n }\n /**\n * Write a single bit\n * @param value bit to write, true or positive number for 1, false or zero or negative for 0\n */\n writeBit(value) {\n // Check overflow\n let n = this._length;\n if (n > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n // Set bit\n if (value === true || value > 0) {\n this._buffer[(n / 8) | 0] |= 1 << (7 - (n % 8));\n }\n // Advance\n this._length++;\n }\n /**\n * Copy bits from BitString\n * @param src source bits\n */\n writeBits(src) {\n for (let i = 0; i < src.length; i++) {\n this.writeBit(src.at(i));\n }\n }\n /**\n * Write bits from buffer\n * @param src source buffer\n */\n writeBuffer(src) {\n // Special case for aligned offsets\n if (this._length % 8 === 0) {\n if (this._length + src.length * 8 > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n src.copy(this._buffer, this._length / 8);\n this._length += src.length * 8;\n }\n else {\n for (let i = 0; i < src.length; i++) {\n this.writeUint(src[i], 8);\n }\n }\n }\n /**\n * Write uint value\n * @param value value as bigint or number\n * @param bits number of bits to write\n */\n writeUint(value, bits) {\n // Special case for 8 bits\n if (bits === 8 && this._length % 8 === 0) {\n let v = Number(value);\n if (v < 0 || v > 255 || !Number.isSafeInteger(v)) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n this._buffer[this._length / 8] = Number(value);\n this._length += 8;\n return;\n }\n // Special case for 16 bits\n if (bits === 16 && this._length % 8 === 0) {\n let v = Number(value);\n if (v < 0 || v > 65536 || !Number.isSafeInteger(v)) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n this._buffer[this._length / 8] = v >> 8;\n this._buffer[this._length / 8 + 1] = v & 0xff;\n this._length += 16;\n return;\n }\n // Generic case\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero bits\n if (bits === 0) {\n if (value !== 0n) {\n throw Error(`value is not zero for ${bits} bits. Got ${value}`);\n }\n else {\n return;\n }\n }\n // Check input\n let vBits = (1n << BigInt(bits));\n if (v < 0 || v >= vBits) {\n throw Error(`bitLength is too small for a value ${value}. Got ${bits}`);\n }\n // Convert number to bits\n let b = [];\n while (v > 0) {\n b.push(v % 2n === 1n);\n v /= 2n;\n }\n // Write bits\n for (let i = 0; i < bits; i++) {\n let off = bits - i - 1;\n if (off < b.length) {\n this.writeBit(b[off]);\n }\n else {\n this.writeBit(false);\n }\n }\n }\n /**\n * Write int value\n * @param value value as bigint or number\n * @param bits number of bits to write\n */\n writeInt(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero bits\n if (bits === 0) {\n if (value !== 0n) {\n throw Error(`value is not zero for ${bits} bits. Got ${value}`);\n }\n else {\n return;\n }\n }\n // Corner case for one bit\n if (bits === 1) {\n if (value !== -1n && value !== 0n) {\n throw Error(`value is not zero or -1 for ${bits} bits. Got ${value}`);\n }\n else {\n this.writeBit(value === -1n);\n return;\n }\n }\n // Check input\n let vBits = 1n << (BigInt(bits) - 1n);\n if (v < -vBits || v >= vBits) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n // Write sign\n if (v < 0) {\n this.writeBit(true);\n v = (1n << (BigInt(bits) - 1n)) + v;\n }\n else {\n this.writeBit(false);\n }\n // Write value\n this.writeUint(v, bits - 1);\n }\n /**\n * Wrtie var uint value, used for serializing coins\n * @param value value to write as bigint or number\n * @param bits header bits to write size\n */\n writeVarUint(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n if (v < 0) {\n throw Error(`value is negative. Got ${value}`);\n }\n // Corner case for zero\n if (v === 0n) {\n // Write zero size\n this.writeUint(0, bits);\n return;\n }\n // Calculate size\n const sizeBytes = Math.ceil((v.toString(2).length) / 8); // Fastest way in most environments\n const sizeBits = sizeBytes * 8;\n // Write size\n this.writeUint(sizeBytes, bits);\n // Write number\n this.writeUint(v, sizeBits);\n }\n /**\n * Wrtie var int value, used for serializing coins\n * @param value value to write as bigint or number\n * @param bits header bits to write size\n */\n writeVarInt(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero\n if (v === 0n) {\n // Write zero size\n this.writeUint(0, bits);\n return;\n }\n // Calculate size\n let v2 = v > 0 ? v : -v;\n const sizeBytes = 1 + Math.ceil((v2.toString(2).length) / 8); // Fastest way in most environments\n const sizeBits = sizeBytes * 8;\n // Write size\n this.writeUint(sizeBytes, bits);\n // Write number\n this.writeInt(v, sizeBits);\n }\n /**\n * Write coins in var uint format\n * @param amount amount to write\n */\n writeCoins(amount) {\n this.writeVarUint(amount, 4);\n }\n /**\n * Write address\n * @param address write address or address external\n */\n writeAddress(address) {\n // Is empty address\n if (address === null || address === undefined) {\n this.writeUint(0, 2); // Empty address\n return;\n }\n // Is Internal Address\n if (Address_1.Address.isAddress(address)) {\n this.writeUint(2, 2); // Internal address\n this.writeUint(0, 1); // No anycast\n this.writeInt(address.workChain, 8);\n this.writeBuffer(address.hash);\n return;\n }\n // Is External Address\n if (ExternalAddress_1.ExternalAddress.isAddress(address)) {\n this.writeUint(1, 2); // External address\n this.writeUint(address.bits, 9);\n this.writeUint(address.value, address.bits);\n return;\n }\n // Invalid address\n throw Error(`Invalid address. Got ${address}`);\n }\n /**\n * Build BitString\n * @returns result bit string\n */\n build() {\n return new BitString_1.BitString(this._buffer, 0, this._length);\n }\n /**\n * Build into Buffer\n * @returns result buffer\n */\n buffer() {\n if (this._length % 8 !== 0) {\n throw new Error(\"BitBuilder buffer is not byte aligned\");\n }\n return this._buffer.subarray(0, this._length / 8);\n }\n}\nexports.BitBuilder = BitBuilder;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CellType = void 0;\nvar CellType;\n(function (CellType) {\n CellType[CellType[\"Ordinary\"] = -1] = \"Ordinary\";\n CellType[CellType[\"PrunedBranch\"] = 1] = \"PrunedBranch\";\n CellType[CellType[\"Library\"] = 2] = \"Library\";\n CellType[CellType[\"MerkleProof\"] = 3] = \"MerkleProof\";\n CellType[CellType[\"MerkleUpdate\"] = 4] = \"MerkleUpdate\";\n})(CellType = exports.CellType || (exports.CellType = {}));\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDict = void 0;\nfunction readUnaryLength(slice) {\n let res = 0;\n while (slice.loadBit()) {\n res++;\n }\n return res;\n}\nfunction doParse(prefix, slice, n, res, extractor) {\n // Reading label\n let lb0 = slice.loadBit() ? 1 : 0;\n let prefixLength = 0;\n let pp = prefix;\n if (lb0 === 0) {\n // Short label detected\n // Read \n prefixLength = readUnaryLength(slice);\n // Read prefix\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n let lb1 = slice.loadBit() ? 1 : 0;\n if (lb1 === 0) {\n // Long label detected\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n // Same label detected\n let bit = slice.loadBit() ? '1' : '0';\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += bit;\n }\n }\n }\n if (n - prefixLength === 0) {\n res.set(BigInt('0b' + pp), extractor(slice));\n }\n else {\n let left = slice.loadRef();\n let right = slice.loadRef();\n // NOTE: Left and right branches are implicitly contain prefixes '0' and '1'\n if (!left.isExotic) {\n doParse(pp + '0', left.beginParse(), n - prefixLength - 1, res, extractor);\n }\n if (!right.isExotic) {\n doParse(pp + '1', right.beginParse(), n - prefixLength - 1, res, extractor);\n }\n }\n}\nfunction parseDict(sc, keySize, extractor) {\n let res = new Map();\n if (sc) {\n doParse('', sc, keySize, res, extractor);\n }\n return res;\n}\nexports.parseDict = parseDict;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findCommonPrefix = void 0;\nfunction findCommonPrefix(src) {\n // Corner cases\n if (src.length === 0) {\n return '';\n }\n if (src.length === 1) {\n return src[0];\n }\n // Searching for prefix\n const sorted = [...src].sort();\n let size = 0;\n for (let i = 0; i < sorted[0].length; i++) {\n if (sorted[0][i] !== sorted[sorted.length - 1][i]) {\n break;\n }\n size++;\n }\n return src[0].slice(0, size);\n}\nexports.findCommonPrefix = findCommonPrefix;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeDict = exports.detectLabelType = exports.writeLabelSame = exports.writeLabelLong = exports.writeLabelShort = exports.buildTree = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst findCommonPrefix_1 = require(\"./utils/findCommonPrefix\");\n//\n// Tree Build\n//\nfunction pad(src, size) {\n while (src.length < size) {\n src = '0' + src;\n }\n return src;\n}\nfunction removePrefixMap(src, length) {\n if (length === 0) {\n return src;\n }\n else {\n let res = new Map();\n for (let k of src.keys()) {\n let d = src.get(k);\n res.set(k.slice(length), d);\n }\n return res;\n }\n}\nfunction forkMap(src) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n let left = new Map();\n let right = new Map();\n for (let k of src.keys()) {\n let d = src.get(k);\n if (k.startsWith('0')) {\n left.set(k.substr(1), d);\n }\n else {\n right.set(k.substr(1), d);\n }\n }\n if (left.size === 0) {\n throw Error('Internal inconsistency. Left emtpy.');\n }\n if (right.size === 0) {\n throw Error('Internal inconsistency. Right emtpy.');\n }\n return { left, right };\n}\nfunction buildNode(src) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n if (src.size === 1) {\n return { type: 'leaf', value: Array.from(src.values())[0] };\n }\n let { left, right } = forkMap(src);\n return {\n type: 'fork',\n left: buildEdge(left),\n right: buildEdge(right)\n };\n}\nfunction buildEdge(src) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n const label = (0, findCommonPrefix_1.findCommonPrefix)(Array.from(src.keys()));\n return { label, node: buildNode(removePrefixMap(src, label.length)) };\n}\nfunction buildTree(src, keyLength) {\n // Convert map keys\n let converted = new Map();\n for (let k of Array.from(src.keys())) {\n const padded = pad(k.toString(2), keyLength);\n converted.set(padded, src.get(k));\n }\n // Calculate root label\n return buildEdge(converted);\n}\nexports.buildTree = buildTree;\n//\n// Serialization\n//\nfunction writeLabelShort(src, to) {\n // Header\n to.storeBit(0);\n // Unary length\n for (let i = 0; i < src.length; i++) {\n to.storeBit(1);\n }\n to.storeBit(0);\n // Value\n for (let i = 0; i < src.length; i++) {\n to.storeBit(src[i] === '1');\n }\n return to;\n}\nexports.writeLabelShort = writeLabelShort;\nfunction labelShortLength(src) {\n return 1 + src.length + 1 + src.length;\n}\nfunction writeLabelLong(src, keyLength, to) {\n // Header\n to.storeBit(1);\n to.storeBit(0);\n // Length\n let length = Math.ceil(Math.log2(keyLength + 1));\n to.storeUint(src.length, length);\n // Value\n for (let i = 0; i < src.length; i++) {\n to.storeBit(src[i] === '1');\n }\n return to;\n}\nexports.writeLabelLong = writeLabelLong;\nfunction labelLongLength(src, keyLength) {\n return 1 + 1 + Math.ceil(Math.log2(keyLength + 1)) + src.length;\n}\nfunction writeLabelSame(value, length, keyLength, to) {\n // Header\n to.storeBit(1);\n to.storeBit(1);\n // Value\n to.storeBit(value);\n // Length\n let lenLen = Math.ceil(Math.log2(keyLength + 1));\n to.storeUint(length, lenLen);\n}\nexports.writeLabelSame = writeLabelSame;\nfunction labelSameLength(keyLength) {\n return 1 + 1 + 1 + Math.ceil(Math.log2(keyLength + 1));\n}\nfunction isSame(src) {\n if (src.length === 0 || src.length === 1) {\n return true;\n }\n for (let i = 1; i < src.length; i++) {\n if (src[i] !== src[0]) {\n return false;\n }\n }\n return true;\n}\nfunction detectLabelType(src, keyLength) {\n let kind = 'short';\n let kindLength = labelShortLength(src);\n let longLength = labelLongLength(src, keyLength);\n if (longLength < kindLength) {\n kindLength = longLength;\n kind = 'long';\n }\n if (isSame(src)) {\n let sameLength = labelSameLength(keyLength);\n if (sameLength < kindLength) {\n kindLength = sameLength;\n kind = 'same';\n }\n }\n return kind;\n}\nexports.detectLabelType = detectLabelType;\nfunction writeLabel(src, keyLength, to) {\n let type = detectLabelType(src, keyLength);\n if (type === 'short') {\n writeLabelShort(src, to);\n }\n if (type === 'long') {\n writeLabelLong(src, keyLength, to);\n }\n if (type === 'same') {\n writeLabelSame(src[0] === '1', src.length, keyLength, to);\n }\n}\nfunction writeNode(src, keyLength, serializer, to) {\n if (src.type === 'leaf') {\n serializer(src.value, to);\n }\n if (src.type === 'fork') {\n const leftCell = (0, Builder_1.beginCell)();\n const rightCell = (0, Builder_1.beginCell)();\n writeEdge(src.left, keyLength - 1, serializer, leftCell);\n writeEdge(src.right, keyLength - 1, serializer, rightCell);\n to.storeRef(leftCell);\n to.storeRef(rightCell);\n }\n}\nfunction writeEdge(src, keyLength, serializer, to) {\n writeLabel(src.label, keyLength, to);\n writeNode(src.node, keyLength - src.label.length, serializer, to);\n}\nfunction serializeDict(src, keyLength, serializer, to) {\n const tree = buildTree(src, keyLength);\n writeEdge(tree, keyLength, serializer, to);\n}\nexports.serializeDict = serializeDict;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeInternalKey = exports.serializeInternalKey = void 0;\nconst Address_1 = require(\"../../address/Address\");\nfunction serializeInternalKey(value) {\n if (typeof value === 'number') {\n if (!Number.isSafeInteger(value)) {\n throw Error('Invalid key type: not a safe integer: ' + value);\n }\n return 'n:' + value.toString(10);\n }\n else if (typeof value === 'bigint') {\n return 'b:' + value.toString(10);\n }\n else if (Address_1.Address.isAddress(value)) {\n return 'a:' + value.toString();\n }\n else if (Buffer.isBuffer(value)) {\n return 'f:' + value.toString('hex');\n }\n else {\n throw Error('Invalid key type');\n }\n}\nexports.serializeInternalKey = serializeInternalKey;\nfunction deserializeInternalKey(value) {\n let k = value.slice(0, 2);\n let v = value.slice(2);\n if (k === 'n:') {\n return parseInt(v, 10);\n }\n else if (k === 'b:') {\n return BigInt(v);\n }\n else if (k === 'a:') {\n return Address_1.Address.parse(v);\n }\n else if (k === 'f:') {\n return Buffer.from(v, 'hex');\n }\n throw Error('Invalid key type: ' + k);\n}\nexports.deserializeInternalKey = deserializeInternalKey;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dictionary = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Builder_1 = require(\"../boc/Builder\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst parseDict_1 = require(\"./parseDict\");\nconst serializeDict_1 = require(\"./serializeDict\");\nconst internalKeySerializer_1 = require(\"./utils/internalKeySerializer\");\nclass Dictionary {\n /**\n * Create an empty map\n * @param key key type\n * @param value value type\n * @returns Dictionary\n */\n static empty(key, value) {\n if (key && value) {\n return new Dictionary(new Map(), key, value);\n }\n else {\n return new Dictionary(new Map(), null, null);\n }\n }\n /**\n * Load dictionary from slice\n * @param key key description\n * @param value value description\n * @param src slice\n * @returns Dictionary\n */\n static load(key, value, sc) {\n let slice;\n if (sc instanceof Cell_1.Cell) {\n if (sc.isExotic) {\n return Dictionary.empty(key, value);\n }\n slice = sc.beginParse();\n }\n else {\n slice = sc;\n }\n let cell = slice.loadMaybeRef();\n if (cell && !cell.isExotic) {\n return Dictionary.loadDirect(key, value, cell.beginParse());\n }\n else {\n return Dictionary.empty(key, value);\n }\n }\n /**\n * Low level method for rare dictionaries from system contracts.\n * Loads dictionary from slice directly without going to the ref.\n *\n * @param key key description\n * @param value value description\n * @param sc slice\n * @returns Dictionary\n */\n static loadDirect(key, value, sc) {\n if (!sc) {\n return Dictionary.empty(key, value);\n }\n let slice;\n if (sc instanceof Cell_1.Cell) {\n slice = sc.beginParse();\n }\n else {\n slice = sc;\n }\n let values = (0, parseDict_1.parseDict)(slice, key.bits, value.parse);\n let prepare = new Map();\n for (let [k, v] of values) {\n prepare.set((0, internalKeySerializer_1.serializeInternalKey)(key.parse(k)), v);\n }\n return new Dictionary(prepare, key, value);\n }\n constructor(values, key, value) {\n this._key = key;\n this._value = value;\n this._map = values;\n }\n get size() {\n return this._map.size;\n }\n get(key) {\n return this._map.get((0, internalKeySerializer_1.serializeInternalKey)(key));\n }\n has(key) {\n return this._map.has((0, internalKeySerializer_1.serializeInternalKey)(key));\n }\n set(key, value) {\n this._map.set((0, internalKeySerializer_1.serializeInternalKey)(key), value);\n return this;\n }\n delete(key) {\n const k = (0, internalKeySerializer_1.serializeInternalKey)(key);\n return this._map.delete(k);\n }\n clear() {\n this._map.clear();\n }\n *[Symbol.iterator]() {\n for (const [k, v] of this._map) {\n const key = (0, internalKeySerializer_1.deserializeInternalKey)(k);\n yield [key, v];\n }\n }\n keys() {\n return Array.from(this._map.keys()).map((v) => (0, internalKeySerializer_1.deserializeInternalKey)(v));\n }\n values() {\n return Array.from(this._map.values());\n }\n store(builder, key, value) {\n if (this._map.size === 0) {\n builder.storeBit(0);\n }\n else {\n // Resolve serializer\n let resolvedKey = this._key;\n if (key !== null && key !== undefined) {\n resolvedKey = key;\n }\n let resolvedValue = this._value;\n if (value !== null && value !== undefined) {\n resolvedValue = value;\n }\n if (!resolvedKey) {\n throw Error('Key serializer is not defined');\n }\n if (!resolvedValue) {\n throw Error('Value serializer is not defined');\n }\n // Prepare map\n let prepared = new Map();\n for (const [k, v] of this._map) {\n prepared.set(resolvedKey.serialize((0, internalKeySerializer_1.deserializeInternalKey)(k)), v);\n }\n // Store\n builder.storeBit(1);\n let dd = (0, Builder_1.beginCell)();\n (0, serializeDict_1.serializeDict)(prepared, resolvedKey.bits, resolvedValue.serialize, dd);\n builder.storeRef(dd.endCell());\n }\n }\n storeDirect(builder, key, value) {\n if (this._map.size === 0) {\n throw Error('Cannot store empty dictionary directly');\n }\n // Resolve serializer\n let resolvedKey = this._key;\n if (key !== null && key !== undefined) {\n resolvedKey = key;\n }\n let resolvedValue = this._value;\n if (value !== null && value !== undefined) {\n resolvedValue = value;\n }\n if (!resolvedKey) {\n throw Error('Key serializer is not defined');\n }\n if (!resolvedValue) {\n throw Error('Value serializer is not defined');\n }\n // Prepare map\n let prepared = new Map();\n for (const [k, v] of this._map) {\n prepared.set(resolvedKey.serialize((0, internalKeySerializer_1.deserializeInternalKey)(k)), v);\n }\n // Store\n (0, serializeDict_1.serializeDict)(prepared, resolvedKey.bits, resolvedValue.serialize, builder);\n }\n}\nexports.Dictionary = Dictionary;\nDictionary.Keys = {\n /**\n * Standard address key\n * @returns DictionaryKey
\n */\n Address: () => {\n return createAddressKey();\n },\n /**\n * Create standard big integer key\n * @param bits number of bits\n * @returns DictionaryKey\n */\n BigInt: (bits) => {\n return createBigIntKey(bits);\n },\n /**\n * Create integer key\n * @param bits bits of integer\n * @returns DictionaryKey\n */\n Int: (bits) => {\n return createIntKey(bits);\n },\n /**\n * Create standard unsigned big integer key\n * @param bits number of bits\n * @returns DictionaryKey\n */\n BigUint: (bits) => {\n return createBigUintKey(bits);\n },\n /**\n * Create standard unsigned integer key\n * @param bits number of bits\n * @returns DictionaryKey\n */\n Uint: (bits) => {\n return createUintKey(bits);\n },\n /**\n * Create standard buffer key\n * @param bytes number of bytes of a buffer\n * @returns DictionaryKey\n */\n Buffer: (bytes) => {\n return createBufferKey(bytes);\n }\n};\nDictionary.Values = {\n /**\n * Create standard integer value\n * @returns DictionaryValue\n */\n BigInt: (bits) => {\n return createBigIntValue(bits);\n },\n /**\n * Create standard integer value\n * @returns DictionaryValue\n */\n Int: (bits) => {\n return createIntValue(bits);\n },\n /**\n * Create big var int\n * @param bits nubmer of header bits\n * @returns DictionaryValue\n */\n BigVarInt: (bits) => {\n return createBigVarIntValue(bits);\n },\n /**\n * Create standard unsigned integer value\n * @param bits number of bits\n * @returns DictionaryValue\n */\n BigUint: (bits) => {\n return createBigUintValue(bits);\n },\n /**\n * Create standard unsigned integer value\n * @param bits number of bits\n * @returns DictionaryValue\n */\n Uint: (bits) => {\n return createUintValue(bits);\n },\n /**\n * Create big var int\n * @param bits nubmer of header bits\n * @returns DictionaryValue\n */\n BigVarUint: (bits) => {\n return createBigVarUintValue(bits);\n },\n /**\n * Create standard boolean value\n * @returns DictionaryValue\n */\n Bool: () => {\n return createBooleanValue();\n },\n /**\n * Create standard address value\n * @returns DictionaryValue
\n */\n Address: () => {\n return createAddressValue();\n },\n /**\n * Create standard cell value\n * @returns DictionaryValue\n */\n Cell: () => {\n return createCellValue();\n },\n /**\n * Create Builder value\n * @param bytes number of bytes of a buffer\n * @returns DictionaryValue\n */\n Buffer: (bytes) => {\n return createBufferValue(bytes);\n },\n /**\n * Create dictionary value\n * @param key\n * @param value\n */\n Dictionary: (key, value) => {\n return createDictionaryValue(key, value);\n }\n};\n//\n// Keys and Values\n//\nfunction createAddressKey() {\n return {\n bits: 267,\n serialize: (src) => {\n if (!Address_1.Address.isAddress(src)) {\n throw Error('Key is not an address');\n }\n return (0, Builder_1.beginCell)().storeAddress(src).endCell().beginParse().preloadUintBig(267);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, 267).endCell().beginParse().loadAddress();\n }\n };\n}\nfunction createBigIntKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'bigint') {\n throw Error('Key is not a bigint');\n }\n return (0, Builder_1.beginCell)().storeInt(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadIntBig(bits);\n }\n };\n}\nfunction createIntKey(bits) {\n return {\n bits: bits,\n serialize: (src) => {\n if (typeof src !== 'number') {\n throw Error('Key is not a number');\n }\n if (!Number.isSafeInteger(src)) {\n throw Error('Key is not a safe integer: ' + src);\n }\n return (0, Builder_1.beginCell)().storeInt(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadInt(bits);\n }\n };\n}\nfunction createBigUintKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'bigint') {\n throw Error('Key is not a bigint');\n }\n if (src < 0) {\n throw Error('Key is negative: ' + src);\n }\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n }\n };\n}\nfunction createUintKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'number') {\n throw Error('Key is not a number');\n }\n if (!Number.isSafeInteger(src)) {\n throw Error('Key is not a safe integer: ' + src);\n }\n if (src < 0) {\n throw Error('Key is negative: ' + src);\n }\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return Number((0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUint(bits));\n }\n };\n}\nfunction createBufferKey(bytes) {\n return {\n bits: bytes * 8,\n serialize: (src) => {\n if (!Buffer.isBuffer(src)) {\n throw Error('Key is not a buffer');\n }\n return (0, Builder_1.beginCell)().storeBuffer(src).endCell().beginParse().loadUintBig(bytes * 8);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bytes * 8).endCell().beginParse().loadBuffer(bytes);\n }\n };\n}\nfunction createIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeInt(src, bits);\n },\n parse: (src) => {\n return src.loadInt(bits);\n }\n };\n}\nfunction createBigIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeInt(src, bits);\n },\n parse: (src) => {\n return src.loadIntBig(bits);\n }\n };\n}\nfunction createBigVarIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeVarInt(src, bits);\n },\n parse: (src) => {\n return src.loadVarIntBig(bits);\n }\n };\n}\nfunction createBigVarUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeVarUint(src, bits);\n },\n parse: (src) => {\n return src.loadVarUintBig(bits);\n }\n };\n}\nfunction createUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeUint(src, bits);\n },\n parse: (src) => {\n return src.loadUint(bits);\n }\n };\n}\nfunction createBigUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeUint(src, bits);\n },\n parse: (src) => {\n return src.loadUintBig(bits);\n }\n };\n}\nfunction createBooleanValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeBit(src);\n },\n parse: (src) => {\n return src.loadBit();\n }\n };\n}\nfunction createAddressValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeAddress(src);\n },\n parse: (src) => {\n return src.loadAddress();\n }\n };\n}\nfunction createCellValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeRef(src);\n },\n parse: (src) => {\n return src.loadRef();\n }\n };\n}\nfunction createDictionaryValue(key, value) {\n return {\n serialize: (src, buidler) => {\n src.store(buidler);\n },\n parse: (src) => {\n return Dictionary.load(key, value, src);\n }\n };\n}\nfunction createBufferValue(size) {\n return {\n serialize: (src, buidler) => {\n if (src.length !== size) {\n throw Error('Invalid buffer size');\n }\n buidler.storeBuffer(src);\n },\n parse: (src) => {\n return src.loadBuffer(size);\n }\n };\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeString = exports.stringToCell = exports.readString = void 0;\nconst Builder_1 = require(\"../Builder\");\nfunction readBuffer(slice) {\n // Check consistency\n if (slice.remainingBits % 8 !== 0) {\n throw new Error(`Invalid string length: ${slice.remainingBits}`);\n }\n if (slice.remainingRefs !== 0 && slice.remainingRefs !== 1) {\n throw new Error(`invalid number of refs: ${slice.remainingRefs}`);\n }\n if (slice.remainingRefs === 1 && (1023 - slice.remainingBits) > 7) {\n throw new Error(`invalid string length: ${slice.remainingBits / 8}`);\n }\n // Read string\n let res;\n if (slice.remainingBits === 0) {\n res = Buffer.alloc(0);\n }\n else {\n res = slice.loadBuffer(slice.remainingBits / 8);\n }\n // Read tail\n if (slice.remainingRefs === 1) {\n res = Buffer.concat([res, readBuffer(slice.loadRef().beginParse())]);\n }\n return res;\n}\nfunction readString(slice) {\n return readBuffer(slice).toString();\n}\nexports.readString = readString;\nfunction writeBuffer(src, builder) {\n if (src.length > 0) {\n let bytes = Math.floor(builder.availableBits / 8);\n if (src.length > bytes) {\n let a = src.subarray(0, bytes);\n let t = src.subarray(bytes);\n builder = builder.storeBuffer(a);\n let bb = (0, Builder_1.beginCell)();\n writeBuffer(t, bb);\n builder = builder.storeRef(bb.endCell());\n }\n else {\n builder = builder.storeBuffer(src);\n }\n }\n}\nfunction stringToCell(src) {\n let builder = (0, Builder_1.beginCell)();\n writeBuffer(Buffer.from(src), builder);\n return builder.endCell();\n}\nexports.stringToCell = stringToCell;\nfunction writeString(src, builder) {\n writeBuffer(Buffer.from(src), builder);\n}\nexports.writeString = writeString;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slice = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst Builder_1 = require(\"./Builder\");\nconst strings_1 = require(\"./utils/strings\");\n/**\n * Slice is a class that allows to read cell data\n */\nclass Slice {\n constructor(reader, refs) {\n this[_a] = () => this.toString();\n this._reader = reader.clone();\n this._refs = [...refs];\n }\n /**\n * Get remaining bits\n */\n get remainingBits() {\n return this._reader.remaining;\n }\n /**\n * Get remaining refs\n */\n get remainingRefs() {\n return this._refs.length;\n }\n /**\n * Skip bits\n * @param bits\n */\n skip(bits) {\n this._reader.skip(bits);\n return this;\n }\n /**\n * Load a single bit\n * @returns true or false depending on the bit value\n */\n loadBit() {\n return this._reader.loadBit();\n }\n /**\n * Preload a signle bit\n * @returns true or false depending on the bit value\n */\n preloadBit() {\n return this._reader.preloadBit();\n }\n /**\n * Load a boolean\n * @returns true or false depending on the bit value\n */\n loadBoolean() {\n return this.loadBit();\n }\n /**\n * Load maybe boolean\n * @returns true or false depending on the bit value or null\n */\n loadMaybeBoolean() {\n if (this.loadBit()) {\n return this.loadBoolean();\n }\n else {\n return null;\n }\n }\n /**\n * Load bits as a new BitString\n * @param bits number of bits to read\n * @returns new BitString\n */\n loadBits(bits) {\n return this._reader.loadBits(bits);\n }\n /**\n * Preload bits as a new BitString\n * @param bits number of bits to read\n * @returns new BitString\n */\n preloadBits(bits) {\n return this._reader.preloadBits(bits);\n }\n /**\n * Load uint\n * @param bits number of bits to read\n * @returns uint value\n */\n loadUint(bits) {\n return this._reader.loadUint(bits);\n }\n /**\n * Load uint\n * @param bits number of bits to read\n * @returns uint value\n */\n loadUintBig(bits) {\n return this._reader.loadUintBig(bits);\n }\n /**\n * Preload uint\n * @param bits number of bits to read\n * @returns uint value\n */\n preloadUint(bits) {\n return this._reader.preloadUint(bits);\n }\n /**\n * Preload uint\n * @param bits number of bits to read\n * @returns uint value\n */\n preloadUintBig(bits) {\n return this._reader.preloadUintBig(bits);\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeUint(bits) {\n if (this.loadBit()) {\n return this.loadUint(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeUintBig(bits) {\n if (this.loadBit()) {\n return this.loadUintBig(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load int\n * @param bits number of bits to read\n * @returns int value\n */\n loadInt(bits) {\n return this._reader.loadInt(bits);\n }\n /**\n * Load int\n * @param bits number of bits to read\n * @returns int value\n */\n loadIntBig(bits) {\n return this._reader.loadIntBig(bits);\n }\n /**\n * Preload int\n * @param bits number of bits to read\n * @returns int value\n */\n preloadInt(bits) {\n return this._reader.preloadInt(bits);\n }\n /**\n * Preload int\n * @param bits number of bits to read\n * @returns int value\n */\n preloadIntBig(bits) {\n return this._reader.preloadIntBig(bits);\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeInt(bits) {\n if (this.loadBit()) {\n return this.loadInt(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeIntBig(bits) {\n if (this.loadBit()) {\n return this.loadIntBig(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n loadVarUint(bits) {\n return this._reader.loadVarUint(bits);\n }\n /**\n * Load varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n loadVarUintBig(bits) {\n return this._reader.loadVarUintBig(bits);\n }\n /**\n * Preload varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n preloadVarUint(bits) {\n return this._reader.preloadVarUint(bits);\n }\n /**\n * Preload varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n preloadVarUintBig(bits) {\n return this._reader.preloadVarUintBig(bits);\n }\n /**\n * Load varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n loadVarInt(bits) {\n return this._reader.loadVarInt(bits);\n }\n /**\n * Load varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n loadVarIntBig(bits) {\n return this._reader.loadVarIntBig(bits);\n }\n /**\n * Preload varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n preloadVarInt(bits) {\n return this._reader.preloadVarInt(bits);\n }\n /**\n * Preload varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n preloadVarIntBig(bits) {\n return this._reader.preloadVarIntBig(bits);\n }\n /**\n * Load coins\n * @returns coins value\n */\n loadCoins() {\n return this._reader.loadCoins();\n }\n /**\n * Preload coins\n * @returns coins value\n */\n preloadCoins() {\n return this._reader.preloadCoins();\n }\n /**\n * Load maybe coins\n * @returns coins value or null\n */\n loadMaybeCoins() {\n if (this._reader.loadBit()) {\n return this._reader.loadCoins();\n }\n else {\n return null;\n }\n }\n /**\n * Load internal Address\n * @returns Address\n */\n loadAddress() {\n return this._reader.loadAddress();\n }\n /**\n * Load optional internal Address\n * @returns Address or null\n */\n loadMaybeAddress() {\n return this._reader.loadMaybeAddress();\n }\n /**\n * Load external address\n * @returns ExternalAddress\n */\n loadExternalAddress() {\n return this._reader.loadExternalAddress();\n }\n /**\n * Load optional external address\n * @returns ExternalAddress or null\n */\n loadMaybeExternalAddress() {\n return this._reader.loadMaybeExternalAddress();\n }\n /**\n * Load address\n * @returns Address, ExternalAddress or null\n */\n loadAddressAny() {\n return this._reader.loadAddressAny();\n }\n /**\n * Load reference\n * @returns Cell\n */\n loadRef() {\n if (this._refs.length === 0) {\n throw new Error(\"No more references\");\n }\n return this._refs.shift();\n }\n /**\n * Preload reference\n * @returns Cell\n */\n preloadRef() {\n if (this._refs.length === 0) {\n throw new Error(\"No more references\");\n }\n return this._refs[0];\n }\n /**\n * Load optional reference\n * @returns Cell or null\n */\n loadMaybeRef() {\n if (this.loadBit()) {\n return this.loadRef();\n }\n else {\n return null;\n }\n }\n /**\n * Preload optional reference\n * @returns Cell or null\n */\n preloadMaybeRef() {\n if (this.preloadBit()) {\n return this.preloadRef();\n }\n else {\n return null;\n }\n }\n /**\n * Load byte buffer\n * @param bytes number of bytes to load\n * @returns Buffer\n */\n loadBuffer(bytes) {\n return this._reader.loadBuffer(bytes);\n }\n /**\n * Load byte buffer\n * @param bytes number of bytes to load\n * @returns Buffer\n */\n preloadBuffer(bytes) {\n return this._reader.preloadBuffer(bytes);\n }\n /**\n * Load string tail\n */\n loadStringTail() {\n return (0, strings_1.readString)(this);\n }\n /**\n * Load maybe string tail\n * @returns string or null\n */\n loadMaybeStringTail() {\n if (this.loadBit()) {\n return (0, strings_1.readString)(this);\n }\n else {\n return null;\n }\n }\n /**\n * Load string tail from ref\n * @returns string\n */\n loadStringRefTail() {\n return (0, strings_1.readString)(this.loadRef().beginParse());\n }\n /**\n * Load maybe string tail from ref\n * @returns string or null\n */\n loadMaybeStringRefTail() {\n const ref = this.loadMaybeRef();\n if (ref) {\n return (0, strings_1.readString)(ref.beginParse());\n }\n else {\n return null;\n }\n }\n /**\n * Loads dictionary\n * @param key key description\n * @param value value description\n * @returns Dictionary\n */\n loadDict(key, value) {\n return Dictionary_1.Dictionary.load(key, value, this);\n }\n /**\n * Loads dictionary directly from current slice\n * @param key key description\n * @param value value description\n * @returns Dictionary\n */\n loadDictDirect(key, value) {\n return Dictionary_1.Dictionary.loadDirect(key, value, this);\n }\n /**\n * Checks if slice is empty\n */\n endParse() {\n if (this.remainingBits > 0 || this.remainingRefs > 0) {\n throw new Error(\"Slice is not empty\");\n }\n }\n /**\n * Convert slice to cell\n */\n asCell() {\n return (0, Builder_1.beginCell)().storeSlice(this).endCell();\n }\n /**\n *\n * @returns\n */\n asBuilder() {\n return (0, Builder_1.beginCell)().storeSlice(this);\n }\n /**\n * Clone slice\n * @returns cloned slice\n */\n clone() {\n return new Slice(this._reader, this._refs);\n }\n /**\n * Print slice as string by converting it to cell\n * @returns string\n */\n toString() {\n return this.asCell().toString();\n }\n}\nexports.Slice = Slice;\n_a = symbol_inspect_1.default;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitReader = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst ExternalAddress_1 = require(\"../address/ExternalAddress\");\n/**\n * Class for reading bit strings\n */\nclass BitReader {\n constructor(bits, offset = 0) {\n this._checkpoints = [];\n this._bits = bits;\n this._offset = offset;\n }\n /**\n * Number of bits remaining\n */\n get remaining() {\n return this._bits.length - this._offset;\n }\n /**\n * Skip bits\n * @param bits number of bits to skip\n */\n skip(bits) {\n if (bits < 0 || this._offset + bits > this._bits.length) {\n throw new Error(`Index ${this._offset + bits} is out of bounds`);\n }\n this._offset += bits;\n }\n /**\n * Reset to the beginning or latest checkpoint\n */\n reset() {\n if (this._checkpoints.length > 0) {\n this._offset = this._checkpoints.pop();\n }\n else {\n this._offset = 0;\n }\n }\n /**\n * Save checkpoint\n */\n save() {\n this._checkpoints.push(this._offset);\n }\n /**\n * Load a single bit\n * @returns true if the bit is set, false otherwise\n */\n loadBit() {\n let r = this._bits.at(this._offset);\n this._offset++;\n return r;\n }\n /**\n * Preload bit\n * @returns true if the bit is set, false otherwise\n */\n preloadBit() {\n return this._bits.at(this._offset);\n }\n /**\n * Load bit string\n * @param bits number of bits to read\n * @returns new bitstring\n */\n loadBits(bits) {\n let r = this._bits.substring(this._offset, bits);\n this._offset += bits;\n return r;\n }\n /**\n * Preload bit string\n * @param bits number of bits to read\n * @returns new bitstring\n */\n preloadBits(bits) {\n return this._bits.substring(this._offset, bits);\n }\n /**\n * Load buffer\n * @param bytes number of bytes\n * @returns new buffer\n */\n loadBuffer(bytes) {\n let buf = this._preloadBuffer(bytes, this._offset);\n this._offset += bytes * 8;\n return buf;\n }\n /**\n * Preload buffer\n * @param bytes number of bytes\n * @returns new buffer\n */\n preloadBuffer(bytes) {\n return this._preloadBuffer(bytes, this._offset);\n }\n /**\n * Load uint value\n * @param bits uint bits\n * @returns read value as number\n */\n loadUint(bits) {\n return Number(this.loadUintBig(bits));\n }\n /**\n * Load uint value as bigint\n * @param bits uint bits\n * @returns read value as bigint\n */\n loadUintBig(bits) {\n let loaded = this.preloadUintBig(bits);\n this._offset += bits;\n return loaded;\n }\n /**\n * Preload uint value\n * @param bits uint bits\n * @returns read value as number\n */\n preloadUint(bits) {\n return Number(this._preloadUint(bits, this._offset));\n }\n /**\n * Preload uint value as bigint\n * @param bits uint bits\n * @returns read value as bigint\n */\n preloadUintBig(bits) {\n return this._preloadUint(bits, this._offset);\n }\n /**\n * Load int value\n * @param bits int bits\n * @returns read value as bigint\n */\n loadInt(bits) {\n let res = this._preloadInt(bits, this._offset);\n this._offset += bits;\n return Number(res);\n }\n /**\n * Load int value as bigint\n * @param bits int bits\n * @returns read value as bigint\n */\n loadIntBig(bits) {\n let res = this._preloadInt(bits, this._offset);\n this._offset += bits;\n return res;\n }\n /**\n * Preload int value\n * @param bits int bits\n * @returns read value as bigint\n */\n preloadInt(bits) {\n return Number(this._preloadInt(bits, this._offset));\n }\n /**\n * Preload int value\n * @param bits int bits\n * @returns read value as bigint\n */\n preloadIntBig(bits) {\n return this._preloadInt(bits, this._offset);\n }\n /**\n * Load varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarUint(bits) {\n let size = Number(this.loadUint(bits));\n return Number(this.loadUintBig(size * 8));\n }\n /**\n * Load varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarUintBig(bits) {\n let size = Number(this.loadUint(bits));\n return this.loadUintBig(size * 8);\n }\n /**\n * Preload varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarUint(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return Number(this._preloadUint(size * 8, this._offset + bits));\n }\n /**\n * Preload varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarUintBig(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._preloadUint(size * 8, this._offset + bits);\n }\n /**\n * Load varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarInt(bits) {\n let size = Number(this.loadUint(bits));\n return Number(this.loadIntBig(size * 8));\n }\n /**\n * Load varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarIntBig(bits) {\n let size = Number(this.loadUint(bits));\n return this.loadIntBig(size * 8);\n }\n /**\n * Preload varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarInt(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return Number(this._preloadInt(size * 8, this._offset + bits));\n }\n /**\n * Preload varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarIntBig(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._preloadInt(size * 8, this._offset + bits);\n }\n /**\n * Load coins value\n * @returns read value as bigint\n */\n loadCoins() {\n return this.loadVarUintBig(4);\n }\n /**\n * Preload coins value\n * @returns read value as bigint\n */\n preloadCoins() {\n return this.preloadVarUintBig(4);\n }\n /**\n * Load Address\n * @returns Address\n */\n loadAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 2) {\n return this._loadInternalAddress();\n }\n else {\n throw new Error(\"Invalid address: \" + type);\n }\n }\n /**\n * Load internal address\n * @returns Address or null\n */\n loadMaybeAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 2) {\n return this._loadInternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Load external address\n * @returns ExternalAddress\n */\n loadExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 1) {\n return this._loadExternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Load external address\n * @returns ExternalAddress or null\n */\n loadMaybeExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 1) {\n return this._loadExternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Read address of any type\n * @returns Address or ExternalAddress or null\n */\n loadAddressAny() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 2) {\n return this._loadInternalAddress();\n }\n else if (type === 1) {\n return this._loadExternalAddress();\n }\n else if (type === 3) {\n throw Error('Unsupported');\n }\n else {\n throw Error('Unreachable');\n }\n }\n /**\n * Load bit string that was padded to make it byte alligned. Used in BOC serialization\n * @param bytes number of bytes to read\n */\n loadPaddedBits(bits) {\n // Check that number of bits is byte alligned\n if (bits % 8 !== 0) {\n throw new Error(\"Invalid number of bits\");\n }\n // Skip padding\n let length = bits;\n while (true) {\n if (this._bits.at(this._offset + length - 1)) {\n length--;\n break;\n }\n else {\n length--;\n }\n }\n // Read substring\n let r = this._bits.substring(this._offset, length);\n this._offset += bits;\n return r;\n }\n /**\n * Clone BitReader\n */\n clone() {\n return new BitReader(this._bits, this._offset);\n }\n /**\n * Preload int from specific offset\n * @param bits bits to preload\n * @param offset offset to start from\n * @returns read value as bigint\n */\n _preloadInt(bits, offset) {\n if (bits == 0) {\n return 0n;\n }\n let sign = this._bits.at(offset);\n let res = 0n;\n for (let i = 0; i < bits - 1; i++) {\n if (this._bits.at(offset + 1 + i)) {\n res += 1n << BigInt(bits - i - 1 - 1);\n }\n }\n if (sign) {\n res = res - (1n << BigInt(bits - 1));\n }\n return res;\n }\n /**\n * Preload uint from specific offset\n * @param bits bits to preload\n * @param offset offset to start from\n * @returns read value as bigint\n */\n _preloadUint(bits, offset) {\n if (bits == 0) {\n return 0n;\n }\n let res = 0n;\n for (let i = 0; i < bits; i++) {\n if (this._bits.at(offset + i)) {\n res += 1n << BigInt(bits - i - 1);\n }\n }\n return res;\n }\n _preloadBuffer(bytes, offset) {\n // Try to load fast\n let fastBuffer = this._bits.subbuffer(offset, bytes * 8);\n if (fastBuffer) {\n return fastBuffer;\n }\n // Load slow\n let buf = Buffer.alloc(bytes);\n for (let i = 0; i < bytes; i++) {\n buf[i] = Number(this._preloadUint(8, offset + i * 8));\n }\n return buf;\n }\n _loadInternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type !== 2) {\n throw Error('Invalid address');\n }\n // No Anycast supported\n if (this._preloadUint(1, this._offset + 2) !== 0n) {\n throw Error('Invalid address');\n }\n // Read address\n let wc = Number(this._preloadInt(8, this._offset + 3));\n let hash = this._preloadBuffer(32, this._offset + 11);\n // Update offset\n this._offset += 267;\n return new Address_1.Address(wc, hash);\n }\n _loadExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type !== 1) {\n throw Error('Invalid address');\n }\n // Load length\n let bits = Number(this._preloadUint(9, this._offset + 2));\n // Load address\n let value = this._preloadUint(bits, this._offset + 11);\n // Update offset\n this._offset += 11 + bits;\n return new ExternalAddress_1.ExternalAddress(value, bits);\n }\n}\nexports.BitReader = BitReader;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticLibrary = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticLibrary(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash\n const size = 8 + 256;\n if (bits.length !== size) {\n throw new Error(`Library cell must have exactly (8 + 256) bits, got \"${bits.length}\"`);\n }\n // Check type\n let type = reader.loadUint(8);\n if (type !== 2) {\n throw new Error(`Library cell must have type 2, got \"${type}\"`);\n }\n return {};\n}\nexports.exoticLibrary = exoticLibrary;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticMerkleProof = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticMerkleProof(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash + depth\n const size = 8 + 256 + 16;\n if (bits.length !== size) {\n throw new Error(`Merkle Proof cell must have exactly (8 + 256 + 16) bits, got \"${bits.length}\"`);\n }\n if (refs.length !== 1) {\n throw new Error(`Merkle Proof cell must have exactly 1 ref, got \"${refs.length}\"`);\n }\n // Check type\n let type = reader.loadUint(8);\n if (type !== 3) {\n throw new Error(`Merkle Proof cell must have type 3, got \"${type}\"`);\n }\n // Check data\n const proofHash = reader.loadBuffer(32);\n const proofDepth = reader.loadUint(16);\n const refHash = refs[0].hash(0);\n const refDepth = refs[0].depth(0);\n if (proofDepth !== refDepth) {\n throw new Error(`Merkle Proof cell ref depth must be exactly \"${proofDepth}\", got \"${refDepth}\"`);\n }\n if (!proofHash.equals(refHash)) {\n throw new Error(`Merkle Proof cell ref hash must be exactly \"${proofHash.toString('hex')}\", got \"${refHash.toString('hex')}\"`);\n }\n return {\n proofDepth,\n proofHash\n };\n}\nexports.exoticMerkleProof = exoticMerkleProof;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticMerkleUpdate = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticMerkleUpdate(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash + hash + depth + depth\n const size = 8 + (2 * (256 + 16));\n if (bits.length !== size) {\n throw new Error(`Merkle Update cell must have exactly (8 + (2 * (256 + 16))) bits, got \"${bits.length}\"`);\n }\n if (refs.length !== 2) {\n throw new Error(`Merkle Update cell must have exactly 2 refs, got \"${refs.length}\"`);\n }\n let type = reader.loadUint(8);\n if (type !== 4) {\n throw new Error(`Merkle Update cell type must be exactly 4, got \"${type}\"`);\n }\n const proofHash1 = reader.loadBuffer(32);\n const proofHash2 = reader.loadBuffer(32);\n const proofDepth1 = reader.loadUint(16);\n const proofDepth2 = reader.loadUint(16);\n if (proofDepth1 !== refs[0].depth(0)) {\n throw new Error(`Merkle Update cell ref depth must be exactly \"${proofDepth1}\", got \"${refs[0].depth(0)}\"`);\n }\n if (!proofHash1.equals(refs[0].hash(0))) {\n throw new Error(`Merkle Update cell ref hash must be exactly \"${proofHash1.toString('hex')}\", got \"${refs[0].hash(0).toString('hex')}\"`);\n }\n if (proofDepth2 !== refs[1].depth(0)) {\n throw new Error(`Merkle Update cell ref depth must be exactly \"${proofDepth2}\", got \"${refs[1].depth(0)}\"`);\n }\n if (!proofHash2.equals(refs[1].hash(0))) {\n throw new Error(`Merkle Update cell ref hash must be exactly \"${proofHash2.toString('hex')}\", got \"${refs[1].hash(0).toString('hex')}\"`);\n }\n return {\n proofDepth1,\n proofDepth2,\n proofHash1,\n proofHash2\n };\n}\nexports.exoticMerkleUpdate = exoticMerkleUpdate;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LevelMask = void 0;\nclass LevelMask {\n constructor(mask = 0) {\n this._mask = 0;\n this._mask = mask;\n this._hashIndex = countSetBits(this._mask);\n this._hashCount = this._hashIndex + 1;\n }\n get value() {\n return this._mask;\n }\n get level() {\n return 32 - Math.clz32(this._mask);\n }\n get hashIndex() {\n return this._hashIndex;\n }\n get hashCount() {\n return this._hashCount;\n }\n apply(level) {\n return new LevelMask(this._mask & ((1 << level) - 1));\n }\n isSignificant(level) {\n let res = level === 0 || (this._mask >> (level - 1)) % 2 !== 0;\n return res;\n // bool res = level == 0 | | ( (mask_ >> (level -1)) % 2 != 0);\n }\n}\nexports.LevelMask = LevelMask;\nfunction countSetBits(n) {\n n = n - ((n >> 1) & 0x55555555);\n n = (n & 0x33333333) + ((n >> 2) & 0x33333333);\n return ((n + (n >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticPruned = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst LevelMask_1 = require(\"./LevelMask\");\nfunction exoticPruned(bits, refs) {\n let reader = new BitReader_1.BitReader(bits);\n // Check type\n let type = reader.loadUint(8);\n if (type !== 1) {\n throw new Error(`Pruned branch cell must have type 1, got \"${type}\"`);\n }\n // Check refs\n if (refs.length !== 0) {\n throw new Error(`Pruned Branch cell can't has refs, got \"${refs.length}\"`);\n }\n // Resolve cell\n let mask;\n if (bits.length === 280) {\n // Special case for config proof\n // This test proof is generated in the moment of voting for a slashing\n // it seems that tools generate it incorrectly and therefore doesn't have mask in it\n // so we need to hardcode it equal to 1\n mask = new LevelMask_1.LevelMask(1);\n }\n else {\n // Check level\n mask = new LevelMask_1.LevelMask(reader.loadUint(8));\n if (mask.level < 1 || mask.level > 3) {\n throw new Error(`Pruned Branch cell level must be >= 1 and <= 3, got \"${mask.level}/${mask.value}\"`);\n }\n // Read pruned\n const size = 8 + 8 + (mask.apply(mask.level - 1).hashCount * (256 /* Hash */ + 16 /* Depth */));\n if (bits.length !== size) {\n throw new Error(`Pruned branch cell must have exactly ${size} bits, got \"${bits.length}\"`);\n }\n }\n // Read pruned\n let pruned = [];\n let hashes = [];\n let depths = [];\n for (let i = 0; i < mask.level; i++) {\n hashes.push(reader.loadBuffer(32));\n }\n for (let i = 0; i < mask.level; i++) {\n depths.push(reader.loadUint(16));\n }\n for (let i = 0; i < mask.level; i++) {\n pruned.push({\n depth: depths[i],\n hash: hashes[i]\n });\n }\n return {\n mask: mask.value,\n pruned\n };\n}\nexports.exoticPruned = exoticPruned;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveExotic = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst CellType_1 = require(\"../CellType\");\nconst exoticLibrary_1 = require(\"./exoticLibrary\");\nconst exoticMerkleProof_1 = require(\"./exoticMerkleProof\");\nconst exoticMerkleUpdate_1 = require(\"./exoticMerkleUpdate\");\nconst exoticPruned_1 = require(\"./exoticPruned\");\nconst LevelMask_1 = require(\"./LevelMask\");\nfunction resolvePruned(bits, refs) {\n // Parse pruned cell\n let pruned = (0, exoticPruned_1.exoticPruned)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask(pruned.mask);\n for (let i = 0; i < pruned.pruned.length; i++) {\n depths.push(pruned.pruned[i].depth);\n hashes.push(pruned.pruned[i].hash);\n }\n return {\n type: CellType_1.CellType.PrunedBranch,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveLibrary(bits, refs) {\n // Parse library cell\n let pruned = (0, exoticLibrary_1.exoticLibrary)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask();\n return {\n type: CellType_1.CellType.Library,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveMerkleProof(bits, refs) {\n // Parse merkle proof cell\n let merkleProof = (0, exoticMerkleProof_1.exoticMerkleProof)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask(refs[0].level() >> 1);\n return {\n type: CellType_1.CellType.MerkleProof,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveMerkleUpdate(bits, refs) {\n // Parse merkle proof cell\n let merkleUpdate = (0, exoticMerkleUpdate_1.exoticMerkleUpdate)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask((refs[0].level() | refs[1].level()) >> 1);\n return {\n type: CellType_1.CellType.MerkleUpdate,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveExotic(bits, refs) {\n let reader = new BitReader_1.BitReader(bits);\n let type = reader.preloadUint(8);\n if (type === 1) {\n return resolvePruned(bits, refs);\n }\n if (type === 2) {\n return resolveLibrary(bits, refs);\n }\n if (type === 3) {\n return resolveMerkleProof(bits, refs);\n }\n if (type === 4) {\n return resolveMerkleUpdate(bits, refs);\n }\n throw Error('Invalid exotic cell type: ' + type);\n}\nexports.resolveExotic = resolveExotic;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRepr = exports.getBitsDescriptor = exports.getRefsDescriptor = void 0;\nconst CellType_1 = require(\"../CellType\");\nconst paddedBits_1 = require(\"../utils/paddedBits\");\nfunction getRefsDescriptor(refs, level, type) {\n return refs.length + (type !== CellType_1.CellType.Ordinary ? 1 : 0) * 8 + level * 32;\n}\nexports.getRefsDescriptor = getRefsDescriptor;\nfunction getBitsDescriptor(bits) {\n let len = bits.length;\n return Math.ceil(len / 8) + Math.floor(len / 8);\n}\nexports.getBitsDescriptor = getBitsDescriptor;\nfunction getRepr(bits, refs, level, type) {\n // Allocate\n const bitsLen = Math.ceil(bits.length / 8);\n const repr = Buffer.alloc(2 + bitsLen + (2 + 32) * refs.length);\n // Write descriptors\n let reprCursor = 0;\n repr[reprCursor++] = getRefsDescriptor(refs, level, type);\n repr[reprCursor++] = getBitsDescriptor(bits);\n // Write bits\n (0, paddedBits_1.bitsToPaddedBuffer)(bits).copy(repr, reprCursor);\n reprCursor += bitsLen;\n // Write refs\n for (const c of refs) {\n let childDepth;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childDepth = c.depth(level + 1);\n }\n else {\n childDepth = c.depth(level);\n }\n repr[reprCursor++] = Math.floor(childDepth / 256);\n repr[reprCursor++] = childDepth % 256;\n }\n for (const c of refs) {\n let childHash;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childHash = c.hash(level + 1);\n }\n else {\n childHash = c.hash(level);\n }\n childHash.copy(repr, reprCursor);\n reprCursor += 32;\n }\n // Result\n return repr;\n}\nexports.getRepr = getRepr;\n", "import { packedValue, EncodingType, FormatType } from \"./custom_types\";\n/**\n * Return type for all the *2packed functions\n */\nconst b64Tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nconst arraybuffer_error = \"ARRAYBUFFER not supported by this environment\";\nconst uint8array_error = \"UINT8ARRAY not supported by this environment\";\n\n/**\n * Convert a string to an array of words.\n *\n * There is a known bug with an odd number of existing bytes and using a UTF-16 encoding. However, this function is\n * used such that the existing bytes are always a result of a previous UTF-16 str2packed call and therefore there \n * should never be an odd number of existing bytes.\n\n * @param str Unicode string to be converted to binary representation.\n * @param utfType The Unicode type to use to encode the source string.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked`.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction str2packed(\n str: string,\n utfType: EncodingType,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let codePnt,\n codePntArr,\n byteCnt = 0,\n i,\n j,\n intOffset,\n byteOffset,\n shiftModifier,\n transposeBytes;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3;\n\n if (\"UTF8\" === utfType) {\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n for (i = 0; i < str.length; i += 1) {\n codePnt = str.charCodeAt(i);\n codePntArr = [];\n\n if (0x80 > codePnt) {\n codePntArr.push(codePnt);\n } else if (0x800 > codePnt) {\n codePntArr.push(0xc0 | (codePnt >>> 6));\n codePntArr.push(0x80 | (codePnt & 0x3f));\n } else if (0xd800 > codePnt || 0xe000 <= codePnt) {\n codePntArr.push(0xe0 | (codePnt >>> 12), 0x80 | ((codePnt >>> 6) & 0x3f), 0x80 | (codePnt & 0x3f));\n } else {\n i += 1;\n codePnt = 0x10000 + (((codePnt & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n codePntArr.push(\n 0xf0 | (codePnt >>> 18),\n 0x80 | ((codePnt >>> 12) & 0x3f),\n 0x80 | ((codePnt >>> 6) & 0x3f),\n 0x80 | (codePnt & 0x3f)\n );\n }\n\n for (j = 0; j < codePntArr.length; j += 1) {\n byteOffset = byteCnt + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n /* Known bug kicks in here */\n packed[intOffset] |= codePntArr[j] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n byteCnt += 1;\n }\n }\n } else {\n /* UTF16BE or UTF16LE */\n shiftModifier = bigEndianMod === -1 ? 2 : 0;\n /* Internally strings are UTF-16BE so transpose bytes under two conditions:\n * need LE and not switching endianness due to SHA-3\n * need BE and switching endianness due to SHA-3 */\n transposeBytes = (\"UTF16LE\" === utfType && bigEndianMod !== 1) || (\"UTF16LE\" !== utfType && bigEndianMod === 1);\n for (i = 0; i < str.length; i += 1) {\n codePnt = str.charCodeAt(i);\n if (transposeBytes === true) {\n j = codePnt & 0xff;\n codePnt = (j << 8) | (codePnt >>> 8);\n }\n\n byteOffset = byteCnt + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n byteCnt += 2;\n }\n }\n return { value: packed, binLen: byteCnt * 8 + existingPackedLen };\n}\n\n/**\n * Convert a hex string to an array of words.\n *\n * @param str Hexadecimal string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction hex2packed(\n str: string,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let i, num, intOffset, byteOffset;\n\n if (0 !== str.length % 2) {\n throw new Error(\"String of HEX type must be in byte increments\");\n }\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < str.length; i += 2) {\n num = parseInt(str.substr(i, 2), 16);\n if (!isNaN(num)) {\n byteOffset = (i >>> 1) + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= num << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n } else {\n throw new Error(\"String of HEX type contains invalid characters\");\n }\n }\n\n return { value: packed, binLen: str.length * 4 + existingPackedLen };\n}\n\n/**\n * Convert a string of raw bytes to an array of words.\n *\n * @param str String of raw bytes to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction bytes2packed(\n str: string,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let codePnt, i, intOffset, byteOffset;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < str.length; i += 1) {\n codePnt = str.charCodeAt(i);\n\n byteOffset = i + existingByteLen;\n intOffset = byteOffset >>> 2;\n if (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= codePnt << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n }\n\n return { value: packed, binLen: str.length * 8 + existingPackedLen };\n}\n\n/**\n * Convert a base-64 string to an array of words.\n *\n * @param str Base64-encoded string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction b642packed(\n str: string,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let byteCnt = 0,\n index,\n i,\n j,\n tmpInt,\n strPart,\n intOffset,\n byteOffset;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0,\n firstEqual = str.indexOf(\"=\");\n\n if (-1 === str.search(/^[a-zA-Z0-9=+/]+$/)) {\n throw new Error(\"Invalid character in base-64 string\");\n }\n\n str = str.replace(/=/g, \"\");\n if (-1 !== firstEqual && firstEqual < str.length) {\n throw new Error(\"Invalid '=' found in base-64 string\");\n }\n\n for (i = 0; i < str.length; i += 4) {\n strPart = str.substr(i, 4);\n tmpInt = 0;\n\n for (j = 0; j < strPart.length; j += 1) {\n index = b64Tab.indexOf(strPart.charAt(j));\n tmpInt |= index << (18 - 6 * j);\n }\n\n for (j = 0; j < strPart.length - 1; j += 1) {\n byteOffset = byteCnt + existingByteLen;\n intOffset = byteOffset >>> 2;\n while (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |=\n ((tmpInt >>> (16 - j * 8)) & 0xff) << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n byteCnt += 1;\n }\n }\n\n return { value: packed, binLen: byteCnt * 8 + existingPackedLen };\n}\n\n/**\n * Convert an Uint8Array to an array of words.\n *\n * @param arr Uint8Array to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction uint8array2packed(\n arr: Uint8Array,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n let i, intOffset, byteOffset;\n\n existingPackedLen = existingPackedLen || 0;\n const packed = existingPacked || [0],\n existingByteLen = existingPackedLen >>> 3,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < arr.length; i += 1) {\n byteOffset = i + existingByteLen;\n intOffset = byteOffset >>> 2;\n if (packed.length <= intOffset) {\n packed.push(0);\n }\n packed[intOffset] |= arr[i] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));\n }\n\n return { value: packed, binLen: arr.length * 8 + existingPackedLen };\n}\n\n/**\n * Convert an ArrayBuffer to an array of words\n *\n * @param arr ArrayBuffer to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Hashmap of the packed values.\n */\nfunction arraybuffer2packed(\n arr: ArrayBuffer,\n existingPacked: number[] | undefined,\n existingPackedLen: number | undefined,\n bigEndianMod: -1 | 1\n): packedValue {\n return uint8array2packed(new Uint8Array(arr), existingPacked, existingPackedLen, bigEndianMod);\n}\n\n/**\n * Function that takes an input format and UTF encoding and returns the appropriate function used to convert the input.\n *\n * @param format The format of the input to be converted\n * @param utfType The string encoding to use for TEXT inputs.\n * @param bigEndianMod Modifier for whether hash function is big or small endian\n * @returns Function that will convert an input to a packed int array.\n */\nexport function getStrConverter(\n format: FormatType,\n utfType: EncodingType,\n bigEndianMod: -1 | 1\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n): (input: any, existingBin?: number[], existingBinLen?: number) => packedValue {\n /* Validate encoding */\n switch (utfType) {\n case \"UTF8\":\n /* Fallthrough */\n case \"UTF16BE\":\n /* Fallthrough */\n case \"UTF16LE\":\n /* Fallthrough */\n break;\n default:\n throw new Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\");\n }\n\n /* Map inputFormat to the appropriate converter */\n switch (format) {\n case \"HEX\":\n /**\n * @param str String of hexadecimal bytes to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return hex2packed(str, existingBin, existingBinLen, bigEndianMod);\n };\n case \"TEXT\":\n /**\n * @param str Unicode string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return str2packed(str, utfType, existingBin, existingBinLen, bigEndianMod);\n };\n case \"B64\":\n /**\n * @param str Base64-encoded string to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return b642packed(str, existingBin, existingBinLen, bigEndianMod);\n };\n case \"BYTES\":\n /**\n * @param str String of raw bytes to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (str: string, existingBin?: number[], existingBinLen?: number): packedValue {\n return bytes2packed(str, existingBin, existingBinLen, bigEndianMod);\n };\n case \"ARRAYBUFFER\":\n try {\n new ArrayBuffer(0);\n } catch (ignore) {\n throw new Error(arraybuffer_error);\n }\n /**\n * @param arr ArrayBuffer to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (arr: ArrayBuffer, existingBin?: number[], existingBinLen?: number): packedValue {\n return arraybuffer2packed(arr, existingBin, existingBinLen, bigEndianMod);\n };\n case \"UINT8ARRAY\":\n try {\n new Uint8Array(0);\n } catch (ignore) {\n throw new Error(uint8array_error);\n }\n /**\n * @param arr Uint8Array to be converted to binary representation.\n * @param existingPacked A packed int array of bytes to append the results to.\n * @param existingPackedLen The number of bits in `existingPacked` array.\n * @returns Hashmap of the packed values.\n */\n return function (arr: Uint8Array, existingBin?: number[], existingBinLen?: number): packedValue {\n return uint8array2packed(arr, existingBin, existingBinLen, bigEndianMod);\n };\n default:\n throw new Error(\"format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\");\n }\n}\n\n/**\n * Convert an array of words to a hexadecimal string.\n *\n * toString() won't work here because it removes preceding zeros (e.g. 0x00000001.toString === \"1\" rather than\n * \"00000001\" and 0.toString(16) === \"0\" rather than \"00\").\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param formatOpts Hashmap containing validated output formatting options.\n * @returns Hexadecimal representation of `packed`.\n */\nexport function packed2hex(\n packed: number[],\n outputLength: number,\n bigEndianMod: -1 | 1,\n formatOpts: { outputUpper: boolean; b64Pad: string }\n): string {\n const hex_tab = \"0123456789abcdef\";\n let str = \"\",\n i,\n srcByte;\n\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 1) {\n /* The below is more than a byte but it gets taken care of later */\n srcByte = packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)));\n str += hex_tab.charAt((srcByte >>> 4) & 0xf) + hex_tab.charAt(srcByte & 0xf);\n }\n\n return formatOpts[\"outputUpper\"] ? str.toUpperCase() : str;\n}\n\n/**\n * Convert an array of words to a base-64 string.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param formatOpts Hashmap containing validated output formatting options.\n * @returns Base64-encoded representation of `packed`.\n */\nexport function packed2b64(\n packed: number[],\n outputLength: number,\n bigEndianMod: -1 | 1,\n formatOpts: { outputUpper: boolean; b64Pad: string }\n): string {\n let str = \"\",\n i,\n j,\n triplet,\n int1,\n int2;\n\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 3) {\n int1 = i + 1 < length ? packed[(i + 1) >>> 2] : 0;\n int2 = i + 2 < length ? packed[(i + 2) >>> 2] : 0;\n triplet =\n (((packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff) << 16) |\n (((int1 >>> (8 * (shiftModifier + bigEndianMod * ((i + 1) % 4)))) & 0xff) << 8) |\n ((int2 >>> (8 * (shiftModifier + bigEndianMod * ((i + 2) % 4)))) & 0xff);\n for (j = 0; j < 4; j += 1) {\n if (i * 8 + j * 6 <= outputLength) {\n str += b64Tab.charAt((triplet >>> (6 * (3 - j))) & 0x3f);\n } else {\n str += formatOpts[\"b64Pad\"];\n }\n }\n }\n return str;\n}\n\n/**\n * Convert an array of words to raw bytes string.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns Raw bytes representation of `packed`.\n */\nexport function packed2bytes(packed: number[], outputLength: number, bigEndianMod: -1 | 1): string {\n let str = \"\",\n i,\n srcByte;\n\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 1) {\n srcByte = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff;\n str += String.fromCharCode(srcByte);\n }\n\n return str;\n}\n\n/**\n * Convert an array of words to an ArrayBuffer.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns An ArrayBuffer containing bytes from `packed.\n */\nexport function packed2arraybuffer(packed: number[], outputLength: number, bigEndianMod: -1 | 1): ArrayBuffer {\n let i;\n const length = outputLength / 8,\n retVal = new ArrayBuffer(length),\n arrView = new Uint8Array(retVal),\n shiftModifier = bigEndianMod === -1 ? 3 : 0;\n\n for (i = 0; i < length; i += 1) {\n arrView[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff;\n }\n\n return retVal;\n}\n\n/**\n * Convert an array of words to an Uint8Array.\n *\n * @param packed Array of integers to be converted.\n * @param outputLength Length of output in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @returns An Uint8Array containing bytes from `packed.\n */\nexport function packed2uint8array(packed: number[], outputLength: number, bigEndianMod: -1 | 1): Uint8Array {\n let i;\n const length = outputLength / 8,\n shiftModifier = bigEndianMod === -1 ? 3 : 0,\n retVal = new Uint8Array(length);\n\n for (i = 0; i < length; i += 1) {\n retVal[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xff;\n }\n\n return retVal;\n}\n\n/**\n * Function that takes an output format and associated parameters and returns a function that converts packed integers\n * to that format.\n *\n * @param format The desired output formatting.\n * @param outputBinLen Output length in bits.\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param outputOptions Hashmap of output formatting options\n * @returns Function that will convert a packed integer array to desired format.\n */\nexport function getOutputConverter(\n format: \"HEX\" | \"B64\" | \"BYTES\" | \"ARRAYBUFFER\" | \"UINT8ARRAY\",\n outputBinLen: number,\n bigEndianMod: -1 | 1,\n outputOptions: { outputUpper: boolean; b64Pad: string }\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n): (binarray: number[]) => any {\n switch (format) {\n case \"HEX\":\n return function (binarray): string {\n return packed2hex(binarray, outputBinLen, bigEndianMod, outputOptions);\n };\n case \"B64\":\n return function (binarray): string {\n return packed2b64(binarray, outputBinLen, bigEndianMod, outputOptions);\n };\n case \"BYTES\":\n return function (binarray): string {\n return packed2bytes(binarray, outputBinLen, bigEndianMod);\n };\n case \"ARRAYBUFFER\":\n try {\n /* Need to test ArrayBuffer support */\n new ArrayBuffer(0);\n } catch (ignore) {\n throw new Error(arraybuffer_error);\n }\n return function (binarray): ArrayBuffer {\n return packed2arraybuffer(binarray, outputBinLen, bigEndianMod);\n };\n case \"UINT8ARRAY\":\n try {\n /* Need to test Uint8Array support */\n new Uint8Array(0);\n } catch (ignore) {\n throw new Error(uint8array_error);\n }\n return function (binarray): Uint8Array {\n return packed2uint8array(binarray, outputBinLen, bigEndianMod);\n };\n default:\n throw new Error(\"format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\");\n }\n}\n", "import { getStrConverter, getOutputConverter } from \"./converters\";\n\nimport {\n FormatType,\n EncodingType,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n packedValue,\n GenericInputType,\n} from \"./custom_types\";\n\nexport const TWO_PWR_32 = 4294967296;\n\n/* Constant used in SHA-2 families */\nexport const K_sha2 = [\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2,\n];\n\n/* Constant used in SHA-2 families */\nexport const H_trunc = [0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4];\n\n/* Constant used in SHA-2 families */\nexport const H_full = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n\nexport const sha_variant_error = \"Chosen SHA variant is not supported\";\nexport const mac_rounds_error = \"Cannot set numRounds with MAC\";\n\n/**\n * Concatenates 2 packed arrays. Clobbers array `a`.\n *\n * @param a First array to concatenate.\n * @param b Second array to concatenate.\n * @returns The concatentation of `a` + `b`.\n */\nexport function packedLEConcat(a: packedValue, b: packedValue): packedValue {\n let i, arrOffset;\n const aByteLen = a[\"binLen\"] >>> 3,\n bByteLen = b[\"binLen\"] >>> 3,\n leftShiftAmount = aByteLen << 3,\n rightShiftAmount = (4 - aByteLen) << 3;\n\n /* If a only contains \"full\" integers, we can just use concat which is so much easier */\n if (aByteLen % 4 !== 0) {\n for (i = 0; i < bByteLen; i += 4) {\n arrOffset = (aByteLen + i) >>> 2;\n /* Left shift chops off bits over 32-bits */\n a[\"value\"][arrOffset] |= b[\"value\"][i >>> 2] << leftShiftAmount;\n a[\"value\"].push(0);\n a[\"value\"][arrOffset + 1] |= b[\"value\"][i >>> 2] >>> rightShiftAmount;\n }\n\n /* Since an unconditional push was performed above, we may have pushed an extra value if it could have been\n encoded without it. Check if popping an int off (reducing total length by 4 bytes) is still bigger than the\n needed size. */\n if ((a[\"value\"].length << 2) - 4 >= bByteLen + aByteLen) {\n a[\"value\"].pop();\n }\n\n return { value: a[\"value\"], binLen: a[\"binLen\"] + b[\"binLen\"] };\n } else {\n return { value: a[\"value\"].concat(b[\"value\"]), binLen: a[\"binLen\"] + b[\"binLen\"] };\n }\n}\n\n/**\n * Validate hash list containing output formatting options, ensuring presence of every option or adding the default\n * value.\n *\n * @param options Hashmap of output formatting options from user.\n * @returns Validated hashmap containing output formatting options.\n */\nexport function getOutputOpts(options?: {\n outputUpper?: boolean;\n b64Pad?: string;\n shakeLen?: number;\n outputLen?: number;\n}): { outputUpper: boolean; b64Pad: string; outputLen: number } {\n const retVal = { outputUpper: false, b64Pad: \"=\", outputLen: -1 },\n outputOptions: { outputUpper?: boolean; b64Pad?: string; shakeLen?: number; outputLen?: number } = options || {},\n lenErrstr = \"Output length must be a multiple of 8\";\n\n retVal[\"outputUpper\"] = outputOptions[\"outputUpper\"] || false;\n\n if (outputOptions[\"b64Pad\"]) {\n retVal[\"b64Pad\"] = outputOptions[\"b64Pad\"];\n }\n\n if (outputOptions[\"outputLen\"]) {\n if (outputOptions[\"outputLen\"] % 8 !== 0) {\n throw new Error(lenErrstr);\n }\n retVal[\"outputLen\"] = outputOptions[\"outputLen\"];\n } else if (outputOptions[\"shakeLen\"]) {\n if (outputOptions[\"shakeLen\"] % 8 !== 0) {\n throw new Error(lenErrstr);\n }\n retVal[\"outputLen\"] = outputOptions[\"shakeLen\"];\n }\n\n if (\"boolean\" !== typeof retVal[\"outputUpper\"]) {\n throw new Error(\"Invalid outputUpper formatting option\");\n }\n\n if (\"string\" !== typeof retVal[\"b64Pad\"]) {\n throw new Error(\"Invalid b64Pad formatting option\");\n }\n\n return retVal;\n}\n\n/**\n * Parses an external constructor object and returns a packed number, if possible.\n *\n * @param key The human-friendly key name to prefix any errors with\n * @param value The input value object to parse\n * @param bigEndianMod Modifier for whether hash function is big or small endian.\n * @param fallback Fallback value if `value` is undefined. If not present and `value` is undefined, an Error is thrown\n */\nexport function parseInputOption(\n key: string,\n value: GenericInputType | undefined,\n bigEndianMod: -1 | 1,\n fallback?: packedValue\n): packedValue {\n const errStr = key + \" must include a value and format\";\n if (!value) {\n if (!fallback) {\n throw new Error(errStr);\n }\n return fallback;\n }\n\n if (typeof value[\"value\"] === \"undefined\" || !value[\"format\"]) {\n throw new Error(errStr);\n }\n\n return getStrConverter(\n value[\"format\"],\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore - the value of encoding gets value checked by getStrConverter\n value[\"encoding\"] || \"UTF8\",\n bigEndianMod\n )(value[\"value\"]);\n}\n\nexport abstract class jsSHABase {\n /**\n * @param variant The desired SHA variant.\n * @param inputFormat The input format to be used in future `update` calls.\n * @param options Hashmap of extra input options.\n */\n /* Needed inputs */\n protected readonly shaVariant: VariantT;\n protected readonly inputFormat: FormatType;\n protected readonly utfType: EncodingType;\n protected readonly numRounds: number;\n\n /* State */\n protected abstract intermediateState: StateT;\n protected keyWithIPad: number[];\n protected keyWithOPad: number[];\n protected remainder: number[];\n protected remainderLen: number;\n protected updateCalled: boolean;\n protected processedLen: number;\n protected macKeySet: boolean;\n\n /* Variant specifics */\n protected abstract readonly variantBlockSize: number;\n protected abstract readonly bigEndianMod: -1 | 1;\n protected abstract readonly outputBinLen: number;\n protected abstract readonly isVariableLen: boolean;\n protected abstract readonly HMACSupported: boolean;\n\n /* Functions */\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n protected abstract readonly converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n protected abstract readonly roundFunc: (block: number[], H: StateT) => StateT;\n protected abstract readonly finalizeFunc: (\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: StateT,\n outputLen: number\n ) => number[];\n protected abstract readonly stateCloneFunc: (state: StateT) => StateT;\n protected abstract readonly newStateFunc: (variant: VariantT) => StateT;\n protected abstract readonly getMAC: ((options: { outputLen: number }) => number[]) | null;\n\n protected constructor(variant: VariantT, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n protected constructor(variant: VariantT, inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected constructor(variant: any, inputFormat: any, options?: any) {\n const inputOptions = options || {};\n this.inputFormat = inputFormat;\n\n this.utfType = inputOptions[\"encoding\"] || \"UTF8\";\n this.numRounds = inputOptions[\"numRounds\"] || 1;\n\n /* eslint-disable-next-line @typescript-eslint/ban-ts-ignore */\n // @ts-ignore - The spec actually says ToString is called on the first parseInt argument so it's OK to use it here\n // to check if an arugment is an integer. This cheat would break if it's used to get the value of the argument.\n if (isNaN(this.numRounds) || this.numRounds !== parseInt(this.numRounds, 10) || 1 > this.numRounds) {\n throw new Error(\"numRounds must a integer >= 1\");\n }\n\n this.shaVariant = variant;\n this.remainder = [];\n this.remainderLen = 0;\n this.updateCalled = false;\n this.processedLen = 0;\n this.macKeySet = false;\n this.keyWithIPad = [];\n this.keyWithOPad = [];\n }\n\n /**\n * Hashes as many blocks as possible. Stores the rest for either a future update or getHash call.\n *\n * @param srcString The input to be hashed.\n */\n update(srcString: string | ArrayBuffer | Uint8Array): void {\n let i,\n updateProcessedLen = 0;\n const variantBlockIntInc = this.variantBlockSize >>> 5,\n convertRet = this.converterFunc(srcString, this.remainder, this.remainderLen),\n chunkBinLen = convertRet[\"binLen\"],\n chunk = convertRet[\"value\"],\n chunkIntLen = chunkBinLen >>> 5;\n\n for (i = 0; i < chunkIntLen; i += variantBlockIntInc) {\n if (updateProcessedLen + this.variantBlockSize <= chunkBinLen) {\n this.intermediateState = this.roundFunc(chunk.slice(i, i + variantBlockIntInc), this.intermediateState);\n updateProcessedLen += this.variantBlockSize;\n }\n }\n this.processedLen += updateProcessedLen;\n this.remainder = chunk.slice(updateProcessedLen >>> 5);\n this.remainderLen = chunkBinLen % this.variantBlockSize;\n this.updateCalled = true;\n }\n\n /**\n * Returns the desired SHA hash of the input fed in via `update` calls.\n *\n * @param format The desired output formatting\n * @param options Hashmap of output formatting options. `outputLen` must be specified for variable length hashes.\n * `outputLen` replaces the now deprecated `shakeLen` key.\n * @returns The hash in the format specified.\n */\n getHash(format: \"HEX\", options?: { outputUpper?: boolean; outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"B64\", options?: { b64Pad?: string; outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"BYTES\", options?: { outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"UINT8ARRAY\", options?: { outputLen?: number; shakeLen?: number }): Uint8Array;\n getHash(format: \"ARRAYBUFFER\", options?: { outputLen?: number; shakeLen?: number }): ArrayBuffer;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getHash(format: any, options?: any): any {\n let i,\n finalizedState,\n outputBinLen = this.outputBinLen;\n\n const outputOptions = getOutputOpts(options);\n\n if (this.isVariableLen) {\n if (outputOptions[\"outputLen\"] === -1) {\n throw new Error(\"Output length must be specified in options\");\n }\n outputBinLen = outputOptions[\"outputLen\"];\n }\n\n const formatFunc = getOutputConverter(format, outputBinLen, this.bigEndianMod, outputOptions);\n if (this.macKeySet && this.getMAC) {\n return formatFunc(this.getMAC(outputOptions));\n }\n\n finalizedState = this.finalizeFunc(\n this.remainder.slice(),\n this.remainderLen,\n this.processedLen,\n this.stateCloneFunc(this.intermediateState),\n outputBinLen\n );\n for (i = 1; i < this.numRounds; i += 1) {\n /* Need to mask out bits that should be zero due to output not being a multiple of 32 */\n if (this.isVariableLen && outputBinLen % 32 !== 0) {\n finalizedState[finalizedState.length - 1] &= 0x00ffffff >>> (24 - (outputBinLen % 32));\n }\n finalizedState = this.finalizeFunc(\n finalizedState,\n outputBinLen,\n 0,\n this.newStateFunc(this.shaVariant),\n outputBinLen\n );\n }\n\n return formatFunc(finalizedState);\n }\n\n /**\n * Sets the HMAC key for an eventual `getHMAC` call. Must be called immediately after jsSHA object instantiation.\n *\n * @param key The key used to calculate the HMAC\n * @param inputFormat The format of key.\n * @param options Hashmap of extra input options.\n */\n setHMACKey(key: string, inputFormat: \"TEXT\", options?: { encoding?: EncodingType }): void;\n setHMACKey(key: string, inputFormat: \"B64\" | \"HEX\" | \"BYTES\"): void;\n setHMACKey(key: ArrayBuffer, inputFormat: \"ARRAYBUFFER\"): void;\n setHMACKey(key: Uint8Array, inputFormat: \"UINT8ARRAY\"): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setHMACKey(key: any, inputFormat: any, options?: any): void {\n if (!this.HMACSupported) {\n throw new Error(\"Variant does not support HMAC\");\n }\n\n if (this.updateCalled) {\n throw new Error(\"Cannot set MAC key after calling update\");\n }\n\n const keyOptions = options || {},\n keyConverterFunc = getStrConverter(inputFormat, keyOptions[\"encoding\"] || \"UTF8\", this.bigEndianMod);\n\n this._setHMACKey(keyConverterFunc(key));\n }\n\n /**\n * Internal function that sets the MAC key.\n *\n * @param key The packed MAC key to use\n */\n protected _setHMACKey(key: packedValue): void {\n const blockByteSize = this.variantBlockSize >>> 3,\n lastArrayIndex = blockByteSize / 4 - 1;\n let i;\n if (this.numRounds !== 1) {\n throw new Error(mac_rounds_error);\n }\n\n if (this.macKeySet) {\n throw new Error(\"MAC key already set\");\n }\n\n /* Figure out what to do with the key based on its size relative to\n * the hash's block size */\n if (blockByteSize < key[\"binLen\"] / 8) {\n key[\"value\"] = this.finalizeFunc(\n key[\"value\"],\n key[\"binLen\"],\n 0,\n this.newStateFunc(this.shaVariant),\n this.outputBinLen\n );\n }\n while (key[\"value\"].length <= lastArrayIndex) {\n key[\"value\"].push(0);\n }\n /* Create ipad and opad */\n for (i = 0; i <= lastArrayIndex; i += 1) {\n this.keyWithIPad[i] = key[\"value\"][i] ^ 0x36363636;\n this.keyWithOPad[i] = key[\"value\"][i] ^ 0x5c5c5c5c;\n }\n\n this.intermediateState = this.roundFunc(this.keyWithIPad, this.intermediateState);\n this.processedLen = this.variantBlockSize;\n\n this.macKeySet = true;\n }\n\n /**\n * Returns the the HMAC in the specified format using the key given by a previous `setHMACKey` call.\n *\n * @param format The desired output formatting.\n * @param options Hashmap of extra outputs options.\n * @returns The HMAC in the format specified.\n */\n getHMAC(format: \"HEX\", options?: { outputUpper?: boolean }): string;\n getHMAC(format: \"B64\", options?: { b64Pad?: string }): string;\n getHMAC(format: \"BYTES\"): string;\n getHMAC(format: \"UINT8ARRAY\"): Uint8Array;\n getHMAC(format: \"ARRAYBUFFER\"): ArrayBuffer;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getHMAC(format: any, options?: any): any {\n const outputOptions = getOutputOpts(options),\n formatFunc = getOutputConverter(format, this.outputBinLen, this.bigEndianMod, outputOptions);\n\n return formatFunc(this._getHMAC());\n }\n\n /**\n * Internal function that returns the \"raw\" HMAC\n */\n protected _getHMAC(): number[] {\n let finalizedState;\n\n if (!this.macKeySet) {\n throw new Error(\"Cannot call getHMAC without first setting MAC key\");\n }\n\n const firstHash = this.finalizeFunc(\n this.remainder.slice(),\n this.remainderLen,\n this.processedLen,\n this.stateCloneFunc(this.intermediateState),\n this.outputBinLen\n );\n finalizedState = this.roundFunc(this.keyWithOPad, this.newStateFunc(this.shaVariant));\n finalizedState = this.finalizeFunc(\n firstHash,\n this.outputBinLen,\n this.variantBlockSize,\n finalizedState,\n this.outputBinLen\n );\n\n return finalizedState;\n }\n}\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n", "/*\n * Note 1: All the functions in this file guarantee only that the bottom 32-bits of the return value are correct.\n * JavaScript is flakey when it comes to bit operations and a '1' in the highest order bit of a 32-bit number causes\n * it to be interpreted as a negative number per two's complement.\n *\n * Note 2: Per the ECMAScript spec, all JavaScript operations mask the shift amount by 0x1F. This results in weird\n * cases like 1 << 32 == 1 and 1 << 33 === 1 << 1 === 2\n */\n\n/**\n * The 32-bit implementation of circular rotate left.\n *\n * @param x The 32-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted left circularly by `n` bits\n */\nexport function rotl_32(x: number, n: number): number {\n return (x << n) | (x >>> (32 - n));\n}\n\n/**\n * The 32-bit implementation of circular rotate right.\n *\n * @param x The 32-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted right circularly by `n` bits\n */\nfunction rotr_32(x: number, n: number): number {\n return (x >>> n) | (x << (32 - n));\n}\n\n/**\n * The 32-bit implementation of shift right.\n *\n * @param x The 32-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted by `n` bits.\n */\nfunction shr_32(x: number, n: number): number {\n return x >>> n;\n}\n\n/**\n * The 32-bit implementation of the NIST specified Parity function.\n *\n * @param x The first 32-bit integer argument.\n * @param y The second 32-bit integer argument.\n * @param z The third 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function parity_32(x: number, y: number, z: number): number {\n return x ^ y ^ z;\n}\n\n/**\n * The 32-bit implementation of the NIST specified Ch function.\n *\n * @param x The first 32-bit integer argument.\n * @param y The second 32-bit integer argument.\n * @param z The third 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function ch_32(x: number, y: number, z: number): number {\n return (x & y) ^ (~x & z);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Maj function.\n *\n * @param x The first 32-bit integer argument.\n * @param y The second 32-bit integer argument.\n * @param z The third 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function maj_32(x: number, y: number, z: number): number {\n return (x & y) ^ (x & z) ^ (y & z);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Sigma0 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma0_32(x: number): number {\n return rotr_32(x, 2) ^ rotr_32(x, 13) ^ rotr_32(x, 22);\n}\n\n/**\n * Add two 32-bit integers.\n *\n * This uses 16-bit operations internally to work around sign problems due to JavaScript's lack of uint32 support.\n *\n * @param a The first 32-bit integer argument to be added.\n * @param b The second 32-bit integer argument to be added.\n * @returns The sum of `a` + `b`.\n */\nexport function safeAdd_32_2(a: number, b: number): number {\n const lsw = (a & 0xffff) + (b & 0xffff),\n msw = (a >>> 16) + (b >>> 16) + (lsw >>> 16);\n\n return ((msw & 0xffff) << 16) | (lsw & 0xffff);\n}\n\n/**\n * Add four 32-bit integers.\n *\n * This uses 16-bit operations internally to work around sign problems due to JavaScript's lack of uint32 support.\n *\n * @param a The first 32-bit integer argument to be added.\n * @param b The second 32-bit integer argument to be added.\n * @param c The third 32-bit integer argument to be added.\n * @param d The fourth 32-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d`.\n */\nexport function safeAdd_32_4(a: number, b: number, c: number, d: number): number {\n const lsw = (a & 0xffff) + (b & 0xffff) + (c & 0xffff) + (d & 0xffff),\n msw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) + (lsw >>> 16);\n\n return ((msw & 0xffff) << 16) | (lsw & 0xffff);\n}\n\n/**\n * Add five 32-bit integers.\n *\n * This uses 16-bit operations internally to work around sign problems due to JavaScript's lack of uint32 support.\n *\n * @param a The first 32-bit integer argument to be added.\n * @param b The second 32-bit integer argument to be added.\n * @param c The third 32-bit integer argument to be added.\n * @param d The fourth 32-bit integer argument to be added.\n * @param e The fifth 32-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d` + `e`.\n */\nexport function safeAdd_32_5(a: number, b: number, c: number, d: number, e: number): number {\n const lsw = (a & 0xffff) + (b & 0xffff) + (c & 0xffff) + (d & 0xffff) + (e & 0xffff),\n msw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) + (e >>> 16) + (lsw >>> 16);\n\n return ((msw & 0xffff) << 16) | (lsw & 0xffff);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Gamma1 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma1_32(x: number): number {\n return rotr_32(x, 17) ^ rotr_32(x, 19) ^ shr_32(x, 10);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Gamma0 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma0_32(x: number): number {\n return rotr_32(x, 7) ^ rotr_32(x, 18) ^ shr_32(x, 3);\n}\n\n/**\n * The 32-bit implementation of the NIST specified Sigma1 function.\n *\n * @param x The 32-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma1_32(x: number): number {\n return rotr_32(x, 6) ^ rotr_32(x, 11) ^ rotr_32(x, 25);\n}\n", "import { jsSHABase, TWO_PWR_32, sha_variant_error, parseInputOption } from \"./common\";\nimport {\n packedValue,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport { ch_32, parity_32, maj_32, rotl_32, safeAdd_32_2, safeAdd_32_5 } from \"./primitives_32\";\n\n/**\n * Gets the state values for the specified SHA variant.\n *\n * @param _variant: Unused\n * @returns The initial state values.\n */\nfunction getNewState(_variant: \"SHA-1\"): number[] {\n return [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n}\n\n/**\n * Performs a round of SHA-1 hashing over a 512-byte block. This clobbers `H`.\n *\n * @param block The binary array representation of the block to hash.\n * @param H The intermediate H values from a previous round.\n * @returns The resulting H values.\n */\nfunction roundSHA1(block: number[], H: number[]): number[] {\n let a, b, c, d, e, T, t;\n const W: number[] = [];\n\n a = H[0];\n b = H[1];\n c = H[2];\n d = H[3];\n e = H[4];\n\n for (t = 0; t < 80; t += 1) {\n if (t < 16) {\n W[t] = block[t];\n } else {\n W[t] = rotl_32(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n if (t < 20) {\n T = safeAdd_32_5(rotl_32(a, 5), ch_32(b, c, d), e, 0x5a827999, W[t]);\n } else if (t < 40) {\n T = safeAdd_32_5(rotl_32(a, 5), parity_32(b, c, d), e, 0x6ed9eba1, W[t]);\n } else if (t < 60) {\n T = safeAdd_32_5(rotl_32(a, 5), maj_32(b, c, d), e, 0x8f1bbcdc, W[t]);\n } else {\n T = safeAdd_32_5(rotl_32(a, 5), parity_32(b, c, d), e, 0xca62c1d6, W[t]);\n }\n\n e = d;\n d = c;\n c = rotl_32(b, 30);\n b = a;\n a = T;\n }\n\n H[0] = safeAdd_32_2(a, H[0]);\n H[1] = safeAdd_32_2(b, H[1]);\n H[2] = safeAdd_32_2(c, H[2]);\n H[3] = safeAdd_32_2(d, H[3]);\n H[4] = safeAdd_32_2(e, H[4]);\n\n return H;\n}\n\n/**\n * Finalizes the SHA-1 hash. This clobbers `remainder` and `H`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param processedBinLen The number of bits already processed.\n * @param H The intermediate H values from a previous round.\n * @returns The array of integers representing the SHA-1 hash of message.\n */\nfunction finalizeSHA1(remainder: number[], remainderBinLen: number, processedBinLen: number, H: number[]): number[] {\n let i;\n\n /* The 65 addition is a hack but it works. The correct number is\n\t\tactually 72 (64 + 8) but the below math fails if\n\t\tremainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n\t\t\"shorting\" the addition is OK. */\n const offset = (((remainderBinLen + 65) >>> 9) << 4) + 15,\n totalLen = remainderBinLen + processedBinLen;\n while (remainder.length <= offset) {\n remainder.push(0);\n }\n /* Append '1' at the end of the binary string */\n remainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n\n /* Append length of binary string in the position such that the new\n * length is a multiple of 512. Logic does not work for even multiples\n * of 512 but there can never be even multiples of 512. JavaScript\n * numbers are limited to 2^53 so it's \"safe\" to treat the totalLen as\n * a 64-bit integer. */\n remainder[offset] = totalLen & 0xffffffff;\n\n /* Bitwise operators treat the operand as a 32-bit number so need to\n * use hacky division and round to get access to upper 32-ish bits */\n remainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n /* This will always be at least 1 full chunk */\n for (i = 0; i < remainder.length; i += 16) {\n H = roundSHA1(remainder.slice(i, i + 16), H);\n }\n\n return H;\n}\n\nexport default class jsSHA extends jsSHABase {\n intermediateState: number[];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: number[]) => number[];\n finalizeFunc: (remainder: number[], remainderBinLen: number, processedBinLen: number, H: number[]) => number[];\n stateCloneFunc: (state: number[]) => number[];\n newStateFunc: (variant: \"SHA-1\") => number[];\n getMAC: () => number[];\n\n constructor(variant: \"SHA-1\", inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(variant: \"SHA-1\", inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (\"SHA-1\" !== variant) {\n throw new Error(sha_variant_error);\n }\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n this.bigEndianMod = -1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA1;\n this.stateCloneFunc = function (state: number[]): number[] {\n return state.slice();\n };\n this.newStateFunc = getNewState;\n this.finalizeFunc = finalizeSHA1;\n\n this.intermediateState = getNewState(variant);\n this.variantBlockSize = 512;\n this.outputBinLen = 160;\n this.isVariableLen = false;\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n}\n", "import { jsSHABase, TWO_PWR_32, H_full, H_trunc, K_sha2, sha_variant_error, parseInputOption } from \"./common\";\nimport {\n packedValue,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport {\n ch_32,\n gamma0_32,\n gamma1_32,\n maj_32,\n safeAdd_32_2,\n safeAdd_32_4,\n safeAdd_32_5,\n sigma0_32,\n sigma1_32,\n} from \"./primitives_32\";\n\ntype VariantType = \"SHA-224\" | \"SHA-256\";\n\n/**\n * Gets the state values for the specified SHA variant.\n *\n * @param variant: The SHA-256 family variant.\n * @returns The initial state values.\n */\nfunction getNewState256(variant: VariantType): number[] {\n let retVal;\n\n if (\"SHA-224\" == variant) {\n retVal = H_trunc.slice();\n } else {\n /* \"SHA-256\" */\n retVal = H_full.slice();\n }\n return retVal;\n}\n\n/**\n * Performs a round of SHA-256 hashing over a block. This clobbers `H`.\n *\n * @param block The binary array representation of the block to hash.\n * @param H The intermediate H values from a previous round.\n * @returns The resulting H values.\n */\nfunction roundSHA256(block: number[], H: number[]): number[] {\n let a, b, c, d, e, f, g, h, T1, T2, t;\n\n const W: number[] = [];\n\n a = H[0];\n b = H[1];\n c = H[2];\n d = H[3];\n e = H[4];\n f = H[5];\n g = H[6];\n h = H[7];\n\n for (t = 0; t < 64; t += 1) {\n if (t < 16) {\n W[t] = block[t];\n } else {\n W[t] = safeAdd_32_4(gamma1_32(W[t - 2]), W[t - 7], gamma0_32(W[t - 15]), W[t - 16]);\n }\n T1 = safeAdd_32_5(h, sigma1_32(e), ch_32(e, f, g), K_sha2[t], W[t]);\n T2 = safeAdd_32_2(sigma0_32(a), maj_32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safeAdd_32_2(d, T1);\n d = c;\n c = b;\n b = a;\n a = safeAdd_32_2(T1, T2);\n }\n\n H[0] = safeAdd_32_2(a, H[0]);\n H[1] = safeAdd_32_2(b, H[1]);\n H[2] = safeAdd_32_2(c, H[2]);\n H[3] = safeAdd_32_2(d, H[3]);\n H[4] = safeAdd_32_2(e, H[4]);\n H[5] = safeAdd_32_2(f, H[5]);\n H[6] = safeAdd_32_2(g, H[6]);\n H[7] = safeAdd_32_2(h, H[7]);\n\n return H;\n}\n\n/**\n * Finalizes the SHA-256 hash. This clobbers `remainder` and `H`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param processedBinLen The number of bits already processed.\n * @param H The intermediate H values from a previous round.\n * @param variant The desired SHA-256 variant.\n * @returns The array of integers representing the SHA-2 hash of message.\n */\nfunction finalizeSHA256(\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: number[],\n variant: VariantType\n): number[] {\n let i, retVal;\n\n /* The 65 addition is a hack but it works. The correct number is\n actually 72 (64 + 8) but the below math fails if\n remainderBinLen + 72 % 512 = 0. Since remainderBinLen % 8 = 0,\n \"shorting\" the addition is OK. */\n const offset = (((remainderBinLen + 65) >>> 9) << 4) + 15,\n binaryStringInc = 16,\n totalLen = remainderBinLen + processedBinLen;\n\n while (remainder.length <= offset) {\n remainder.push(0);\n }\n /* Append '1' at the end of the binary string */\n remainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n /* Append length of binary string in the position such that the new\n * length is correct. JavaScript numbers are limited to 2^53 so it's\n * \"safe\" to treat the totalLen as a 64-bit integer. */\n\n remainder[offset] = totalLen & 0xffffffff;\n /* Bitwise operators treat the operand as a 32-bit number so need to\n * use hacky division and round to get access to upper 32-ish bits */\n remainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n /* This will always be at least 1 full chunk */\n for (i = 0; i < remainder.length; i += binaryStringInc) {\n H = roundSHA256(remainder.slice(i, i + binaryStringInc), H);\n }\n\n if (\"SHA-224\" === variant) {\n retVal = [H[0], H[1], H[2], H[3], H[4], H[5], H[6]];\n } else {\n /* \"SHA-256 */\n retVal = H;\n }\n\n return retVal;\n}\nexport default class jsSHA extends jsSHABase {\n intermediateState: number[];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: number[]) => number[];\n finalizeFunc: (remainder: number[], remainderBinLen: number, processedBinLen: number, H: number[]) => number[];\n stateCloneFunc: (state: number[]) => number[];\n newStateFunc: (variant: VariantType) => number[];\n getMAC: () => number[];\n\n constructor(variant: VariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(variant: VariantType, inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (!(\"SHA-224\" === variant || \"SHA-256\" === variant)) {\n throw new Error(sha_variant_error);\n }\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n this.HMACSupported = true;\n this.bigEndianMod = -1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA256;\n this.stateCloneFunc = function (state): number[] {\n return state.slice();\n };\n\n this.newStateFunc = getNewState256;\n this.finalizeFunc = function (remainder, remainderBinLen, processedBinLen, H): number[] {\n return finalizeSHA256(remainder, remainderBinLen, processedBinLen, H, variant);\n };\n\n this.intermediateState = getNewState256(variant);\n this.variantBlockSize = 512;\n this.outputBinLen = \"SHA-224\" === variant ? 224 : 256;\n this.isVariableLen = false;\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n}\n", "/*\n * Note 1: All the functions in this file guarantee only that the bottom 32-bits of the returned Int_64 are correct.\n * JavaScript is flakey when it comes to bit operations and a '1' in the highest order bit of a 32-bit number causes\n * it to be interpreted as a negative number per two's complement.\n *\n * Note 2: Per the ECMAScript spec, all JavaScript operations mask the shift amount by 0x1F. This results in weird\n * cases like 1 << 32 == 1 and 1 << 33 === 1 << 1 === 2\n */\n\n/**\n * Int_64 is a object for 2 32-bit numbers emulating a 64-bit number.\n */\nexport class Int_64 {\n /**\n * @param msint_32 The most significant 32-bits of a 64-bit number.\n * @param lsint_32 The least significant 32-bits of a 64-bit number.\n */\n readonly highOrder: number;\n readonly lowOrder: number;\n constructor(msint_32: number, lsint_32: number) {\n this.highOrder = msint_32;\n this.lowOrder = lsint_32;\n }\n}\n\n/**\n * The 64-bit implementation of circular rotate left.\n *\n * This does not work for n >= 64 or n == 32 but those are never done.\n *\n * @param x The 64-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted left circularly by `n` bits.\n */\nexport function rotl_64(x: Int_64, n: number): Int_64 {\n let tmp;\n if (n > 32) {\n tmp = 64 - n;\n return new Int_64((x.lowOrder << n) | (x.highOrder >>> tmp), (x.highOrder << n) | (x.lowOrder >>> tmp));\n } else if (0 !== n) {\n tmp = 32 - n;\n return new Int_64((x.highOrder << n) | (x.lowOrder >>> tmp), (x.lowOrder << n) | (x.highOrder >>> tmp));\n } else {\n return x;\n }\n}\n\n/**\n * The 64-bit implementation of circular rotate right.\n *\n * This does not work for n >= 64, n == 32, or n == 0 but those are never done.\n *\n * @param x The 64-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted right circularly by `n` bits.\n */\nfunction rotr_64(x: Int_64, n: number): Int_64 {\n let tmp;\n if (n < 32) {\n tmp = 32 - n;\n return new Int_64((x.highOrder >>> n) | (x.lowOrder << tmp), (x.lowOrder >>> n) | (x.highOrder << tmp));\n } else {\n tmp = 64 - n;\n return new Int_64((x.lowOrder >>> n) | (x.highOrder << tmp), (x.highOrder >>> n) | (x.lowOrder << tmp));\n }\n}\n\n/**\n * The 64-bit implementation of shift right.\n *\n * This does not work for n >= 32 but is only called for n < 32.\n *\n * @param x The 64-bit integer argument.\n * @param n The number of bits to shift.\n * @returns `x` shifted right by `n` bits\n */\nfunction shr_64(x: Int_64, n: number): Int_64 {\n return new Int_64(x.highOrder >>> n, (x.lowOrder >>> n) | (x.highOrder << (32 - n)));\n}\n\n/**\n * The 64-bit implementation of the NIST specified Ch function.\n *\n * @param x The first 64-bit integer argument.\n * @param y The second 64-bit integer argument.\n * @param z The third 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function ch_64(x: Int_64, y: Int_64, z: Int_64): Int_64 {\n return new Int_64(\n (x.highOrder & y.highOrder) ^ (~x.highOrder & z.highOrder),\n (x.lowOrder & y.lowOrder) ^ (~x.lowOrder & z.lowOrder)\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Maj function.\n *\n * @param x The first 64-bit integer argument.\n * @param y The second 64-bit integer argument.\n * @param z The third 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function maj_64(x: Int_64, y: Int_64, z: Int_64): Int_64 {\n return new Int_64(\n (x.highOrder & y.highOrder) ^ (x.highOrder & z.highOrder) ^ (y.highOrder & z.highOrder),\n (x.lowOrder & y.lowOrder) ^ (x.lowOrder & z.lowOrder) ^ (y.lowOrder & z.lowOrder)\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Sigma0 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma0_64(x: Int_64): Int_64 {\n const rotr28 = rotr_64(x, 28),\n rotr34 = rotr_64(x, 34),\n rotr39 = rotr_64(x, 39);\n\n return new Int_64(\n rotr28.highOrder ^ rotr34.highOrder ^ rotr39.highOrder,\n rotr28.lowOrder ^ rotr34.lowOrder ^ rotr39.lowOrder\n );\n}\n\n/**\n * Add two 64-bit integers.\n *\n * @param x The first 64-bit integer argument to be added.\n * @param y The second 64-bit integer argument to be added.\n * @returns The sum of `x` + `y`.\n */\nexport function safeAdd_64_2(x: Int_64, y: Int_64): Int_64 {\n let lsw, msw;\n\n lsw = (x.lowOrder & 0xffff) + (y.lowOrder & 0xffff);\n msw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);\n const lowOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n lsw = (x.highOrder & 0xffff) + (y.highOrder & 0xffff) + (msw >>> 16);\n msw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);\n const highOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n return new Int_64(highOrder, lowOrder);\n}\n\n/**\n * Add four 64-bit integers.\n *\n * @param a The first 64-bit integer argument to be added.\n * @param b The second 64-bit integer argument to be added.\n * @param c The third 64-bit integer argument to be added.\n * @param d The fouth 64-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d`.\n */\nexport function safeAdd_64_4(a: Int_64, b: Int_64, c: Int_64, d: Int_64): Int_64 {\n let lsw, msw;\n\n lsw = (a.lowOrder & 0xffff) + (b.lowOrder & 0xffff) + (c.lowOrder & 0xffff) + (d.lowOrder & 0xffff);\n msw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) + (c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (lsw >>> 16);\n const lowOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n lsw =\n (a.highOrder & 0xffff) + (b.highOrder & 0xffff) + (c.highOrder & 0xffff) + (d.highOrder & 0xffff) + (msw >>> 16);\n msw = (a.highOrder >>> 16) + (b.highOrder >>> 16) + (c.highOrder >>> 16) + (d.highOrder >>> 16) + (lsw >>> 16);\n const highOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n return new Int_64(highOrder, lowOrder);\n}\n\n/**\n * Add five 64-bit integers.\n *\n * @param a The first 64-bit integer argument to be added.\n * @param b The second 64-bit integer argument to be added.\n * @param c The third 64-bit integer argument to be added.\n * @param d The fouth 64-bit integer argument to be added.\n * @param e The fifth 64-bit integer argument to be added.\n * @returns The sum of `a` + `b` + `c` + `d` + `e`.\n */\nexport function safeAdd_64_5(a: Int_64, b: Int_64, c: Int_64, d: Int_64, e: Int_64): Int_64 {\n let lsw, msw;\n\n lsw =\n (a.lowOrder & 0xffff) +\n (b.lowOrder & 0xffff) +\n (c.lowOrder & 0xffff) +\n (d.lowOrder & 0xffff) +\n (e.lowOrder & 0xffff);\n msw =\n (a.lowOrder >>> 16) +\n (b.lowOrder >>> 16) +\n (c.lowOrder >>> 16) +\n (d.lowOrder >>> 16) +\n (e.lowOrder >>> 16) +\n (lsw >>> 16);\n const lowOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n lsw =\n (a.highOrder & 0xffff) +\n (b.highOrder & 0xffff) +\n (c.highOrder & 0xffff) +\n (d.highOrder & 0xffff) +\n (e.highOrder & 0xffff) +\n (msw >>> 16);\n msw =\n (a.highOrder >>> 16) +\n (b.highOrder >>> 16) +\n (c.highOrder >>> 16) +\n (d.highOrder >>> 16) +\n (e.highOrder >>> 16) +\n (lsw >>> 16);\n const highOrder = ((msw & 0xffff) << 16) | (lsw & 0xffff);\n\n return new Int_64(highOrder, lowOrder);\n}\n\n/**\n * XORs two given arguments.\n *\n * @param a The first argument to be XORed.\n * @param b The second argument to be XORed.\n * @returns The The XOR `a` and `b`\n */\nexport function xor_64_2(a: Int_64, b: Int_64): Int_64 {\n return new Int_64(a.highOrder ^ b.highOrder, a.lowOrder ^ b.lowOrder);\n}\n\n/**\n * XORs five given arguments.\n *\n * @param a The first argument to be XORed.\n * @param b The second argument to be XORed.\n * @param c The third argument to be XORed.\n * @param d The fourth argument to be XORed.\n * @param e The fifth argument to be XORed.\n * @returns The XOR of `a`, `b`, `c`, `d`, and `e`.\n */\nexport function xor_64_5(a: Int_64, b: Int_64, c: Int_64, d: Int_64, e: Int_64): Int_64 {\n return new Int_64(\n a.highOrder ^ b.highOrder ^ c.highOrder ^ d.highOrder ^ e.highOrder,\n a.lowOrder ^ b.lowOrder ^ c.lowOrder ^ d.lowOrder ^ e.lowOrder\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Gamma1 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma1_64(x: Int_64): Int_64 {\n const rotr19 = rotr_64(x, 19),\n rotr61 = rotr_64(x, 61),\n shr6 = shr_64(x, 6);\n\n return new Int_64(\n rotr19.highOrder ^ rotr61.highOrder ^ shr6.highOrder,\n rotr19.lowOrder ^ rotr61.lowOrder ^ shr6.lowOrder\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Gamma0 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function gamma0_64(x: Int_64): Int_64 {\n const rotr1 = rotr_64(x, 1),\n rotr8 = rotr_64(x, 8),\n shr7 = shr_64(x, 7);\n\n return new Int_64(\n rotr1.highOrder ^ rotr8.highOrder ^ shr7.highOrder,\n rotr1.lowOrder ^ rotr8.lowOrder ^ shr7.lowOrder\n );\n}\n\n/**\n * The 64-bit implementation of the NIST specified Sigma1 function.\n *\n * @param x The 64-bit integer argument.\n * @returns The NIST specified output of the function.\n */\nexport function sigma1_64(x: Int_64): Int_64 {\n const rotr14 = rotr_64(x, 14),\n rotr18 = rotr_64(x, 18),\n rotr41 = rotr_64(x, 41);\n\n return new Int_64(\n rotr14.highOrder ^ rotr18.highOrder ^ rotr41.highOrder,\n rotr14.lowOrder ^ rotr18.lowOrder ^ rotr41.lowOrder\n );\n}\n", "import { jsSHABase, TWO_PWR_32, H_trunc, H_full, K_sha2, sha_variant_error, parseInputOption } from \"./common\";\nimport {\n packedValue,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport {\n ch_64,\n gamma0_64,\n gamma1_64,\n Int_64,\n maj_64,\n safeAdd_64_2,\n safeAdd_64_4,\n safeAdd_64_5,\n sigma0_64,\n sigma1_64,\n} from \"./primitives_64\";\n\ntype VariantType = \"SHA-384\" | \"SHA-512\";\n\nconst K_sha512 = [\n new Int_64(K_sha2[0], 0xd728ae22),\n new Int_64(K_sha2[1], 0x23ef65cd),\n new Int_64(K_sha2[2], 0xec4d3b2f),\n new Int_64(K_sha2[3], 0x8189dbbc),\n new Int_64(K_sha2[4], 0xf348b538),\n new Int_64(K_sha2[5], 0xb605d019),\n new Int_64(K_sha2[6], 0xaf194f9b),\n new Int_64(K_sha2[7], 0xda6d8118),\n new Int_64(K_sha2[8], 0xa3030242),\n new Int_64(K_sha2[9], 0x45706fbe),\n new Int_64(K_sha2[10], 0x4ee4b28c),\n new Int_64(K_sha2[11], 0xd5ffb4e2),\n new Int_64(K_sha2[12], 0xf27b896f),\n new Int_64(K_sha2[13], 0x3b1696b1),\n new Int_64(K_sha2[14], 0x25c71235),\n new Int_64(K_sha2[15], 0xcf692694),\n new Int_64(K_sha2[16], 0x9ef14ad2),\n new Int_64(K_sha2[17], 0x384f25e3),\n new Int_64(K_sha2[18], 0x8b8cd5b5),\n new Int_64(K_sha2[19], 0x77ac9c65),\n new Int_64(K_sha2[20], 0x592b0275),\n new Int_64(K_sha2[21], 0x6ea6e483),\n new Int_64(K_sha2[22], 0xbd41fbd4),\n new Int_64(K_sha2[23], 0x831153b5),\n new Int_64(K_sha2[24], 0xee66dfab),\n new Int_64(K_sha2[25], 0x2db43210),\n new Int_64(K_sha2[26], 0x98fb213f),\n new Int_64(K_sha2[27], 0xbeef0ee4),\n new Int_64(K_sha2[28], 0x3da88fc2),\n new Int_64(K_sha2[29], 0x930aa725),\n new Int_64(K_sha2[30], 0xe003826f),\n new Int_64(K_sha2[31], 0x0a0e6e70),\n new Int_64(K_sha2[32], 0x46d22ffc),\n new Int_64(K_sha2[33], 0x5c26c926),\n new Int_64(K_sha2[34], 0x5ac42aed),\n new Int_64(K_sha2[35], 0x9d95b3df),\n new Int_64(K_sha2[36], 0x8baf63de),\n new Int_64(K_sha2[37], 0x3c77b2a8),\n new Int_64(K_sha2[38], 0x47edaee6),\n new Int_64(K_sha2[39], 0x1482353b),\n new Int_64(K_sha2[40], 0x4cf10364),\n new Int_64(K_sha2[41], 0xbc423001),\n new Int_64(K_sha2[42], 0xd0f89791),\n new Int_64(K_sha2[43], 0x0654be30),\n new Int_64(K_sha2[44], 0xd6ef5218),\n new Int_64(K_sha2[45], 0x5565a910),\n new Int_64(K_sha2[46], 0x5771202a),\n new Int_64(K_sha2[47], 0x32bbd1b8),\n new Int_64(K_sha2[48], 0xb8d2d0c8),\n new Int_64(K_sha2[49], 0x5141ab53),\n new Int_64(K_sha2[50], 0xdf8eeb99),\n new Int_64(K_sha2[51], 0xe19b48a8),\n new Int_64(K_sha2[52], 0xc5c95a63),\n new Int_64(K_sha2[53], 0xe3418acb),\n new Int_64(K_sha2[54], 0x7763e373),\n new Int_64(K_sha2[55], 0xd6b2b8a3),\n new Int_64(K_sha2[56], 0x5defb2fc),\n new Int_64(K_sha2[57], 0x43172f60),\n new Int_64(K_sha2[58], 0xa1f0ab72),\n new Int_64(K_sha2[59], 0x1a6439ec),\n new Int_64(K_sha2[60], 0x23631e28),\n new Int_64(K_sha2[61], 0xde82bde9),\n new Int_64(K_sha2[62], 0xb2c67915),\n new Int_64(K_sha2[63], 0xe372532b),\n new Int_64(0xca273ece, 0xea26619c),\n new Int_64(0xd186b8c7, 0x21c0c207),\n new Int_64(0xeada7dd6, 0xcde0eb1e),\n new Int_64(0xf57d4f7f, 0xee6ed178),\n new Int_64(0x06f067aa, 0x72176fba),\n new Int_64(0x0a637dc5, 0xa2c898a6),\n new Int_64(0x113f9804, 0xbef90dae),\n new Int_64(0x1b710b35, 0x131c471b),\n new Int_64(0x28db77f5, 0x23047d84),\n new Int_64(0x32caab7b, 0x40c72493),\n new Int_64(0x3c9ebe0a, 0x15c9bebc),\n new Int_64(0x431d67c4, 0x9c100d4c),\n new Int_64(0x4cc5d4be, 0xcb3e42b6),\n new Int_64(0x597f299c, 0xfc657e2a),\n new Int_64(0x5fcb6fab, 0x3ad6faec),\n new Int_64(0x6c44198c, 0x4a475817),\n];\n\n/**\n * Gets the state values for the specified SHA variant.\n *\n * @param variant: The SHA-512 family variant.\n * @returns The initial state values.\n */\nfunction getNewState512(variant: VariantType): Int_64[] {\n if (\"SHA-384\" === variant) {\n return [\n new Int_64(0xcbbb9d5d, H_trunc[0]),\n new Int_64(0x0629a292a, H_trunc[1]),\n new Int_64(0x9159015a, H_trunc[2]),\n new Int_64(0x0152fecd8, H_trunc[3]),\n new Int_64(0x67332667, H_trunc[4]),\n new Int_64(0x98eb44a87, H_trunc[5]),\n new Int_64(0xdb0c2e0d, H_trunc[6]),\n new Int_64(0x047b5481d, H_trunc[7]),\n ];\n } else {\n /* SHA-512 */\n return [\n new Int_64(H_full[0], 0xf3bcc908),\n new Int_64(H_full[1], 0x84caa73b),\n new Int_64(H_full[2], 0xfe94f82b),\n new Int_64(H_full[3], 0x5f1d36f1),\n new Int_64(H_full[4], 0xade682d1),\n new Int_64(H_full[5], 0x2b3e6c1f),\n new Int_64(H_full[6], 0xfb41bd6b),\n new Int_64(H_full[7], 0x137e2179),\n ];\n }\n}\n\n/**\n * Performs a round of SHA-512 hashing over a block. This clobbers `H`.\n *\n * @param block The binary array representation of the block to hash.\n * @param H The intermediate H values from a previous round.\n * @returns The resulting H values.\n */\nfunction roundSHA512(block: number[], H: Int_64[]): Int_64[] {\n let a, b, c, d, e, f, g, h, T1, T2, t, offset;\n\n const W: Int_64[] = [];\n\n a = H[0];\n b = H[1];\n c = H[2];\n d = H[3];\n e = H[4];\n f = H[5];\n g = H[6];\n h = H[7];\n\n for (t = 0; t < 80; t += 1) {\n if (t < 16) {\n offset = t * 2;\n W[t] = new Int_64(block[offset], block[offset + 1]);\n } else {\n W[t] = safeAdd_64_4(gamma1_64(W[t - 2]), W[t - 7], gamma0_64(W[t - 15]), W[t - 16]);\n }\n T1 = safeAdd_64_5(h, sigma1_64(e), ch_64(e, f, g), K_sha512[t], W[t]);\n T2 = safeAdd_64_2(sigma0_64(a), maj_64(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safeAdd_64_2(d, T1);\n d = c;\n c = b;\n b = a;\n a = safeAdd_64_2(T1, T2);\n }\n\n H[0] = safeAdd_64_2(a, H[0]);\n H[1] = safeAdd_64_2(b, H[1]);\n H[2] = safeAdd_64_2(c, H[2]);\n H[3] = safeAdd_64_2(d, H[3]);\n H[4] = safeAdd_64_2(e, H[4]);\n H[5] = safeAdd_64_2(f, H[5]);\n H[6] = safeAdd_64_2(g, H[6]);\n H[7] = safeAdd_64_2(h, H[7]);\n\n return H;\n}\n\n/**\n * Finalizes the SHA-512 hash. This clobbers `remainder` and `H`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param processedBinLen The number of bits already processed.\n * @param H The intermediate H values from a previous round.\n * @param variant The desired SHA-512 variant.\n * @returns The array of integers representing the SHA-512 hash of message.\n */\nfunction finalizeSHA512(\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: Int_64[],\n variant: VariantType\n): number[] {\n let i, retVal;\n\n /* The 129 addition is a hack but it works. The correct number is\n actually 136 (128 + 8) but the below math fails if\n remainderBinLen + 136 % 1024 = 0. Since remainderBinLen % 8 = 0,\n \"shorting\" the addition is OK. */\n const offset = (((remainderBinLen + 129) >>> 10) << 5) + 31,\n binaryStringInc = 32,\n totalLen = remainderBinLen + processedBinLen;\n\n while (remainder.length <= offset) {\n remainder.push(0);\n }\n /* Append '1' at the end of the binary string */\n remainder[remainderBinLen >>> 5] |= 0x80 << (24 - (remainderBinLen % 32));\n /* Append length of binary string in the position such that the new\n * length is correct. JavaScript numbers are limited to 2^53 so it's\n * \"safe\" to treat the totalLen as a 64-bit integer. */\n\n remainder[offset] = totalLen & 0xffffffff;\n /* Bitwise operators treat the operand as a 32-bit number so need to\n * use hacky division and round to get access to upper 32-ish bits */\n remainder[offset - 1] = (totalLen / TWO_PWR_32) | 0;\n\n /* This will always be at least 1 full chunk */\n for (i = 0; i < remainder.length; i += binaryStringInc) {\n H = roundSHA512(remainder.slice(i, i + binaryStringInc), H);\n }\n\n if (\"SHA-384\" === variant) {\n H = (H as unknown) as Int_64[];\n retVal = [\n H[0].highOrder,\n H[0].lowOrder,\n H[1].highOrder,\n H[1].lowOrder,\n H[2].highOrder,\n H[2].lowOrder,\n H[3].highOrder,\n H[3].lowOrder,\n H[4].highOrder,\n H[4].lowOrder,\n H[5].highOrder,\n H[5].lowOrder,\n ];\n } else {\n /* SHA-512 */\n retVal = [\n H[0].highOrder,\n H[0].lowOrder,\n H[1].highOrder,\n H[1].lowOrder,\n H[2].highOrder,\n H[2].lowOrder,\n H[3].highOrder,\n H[3].lowOrder,\n H[4].highOrder,\n H[4].lowOrder,\n H[5].highOrder,\n H[5].lowOrder,\n H[6].highOrder,\n H[6].lowOrder,\n H[7].highOrder,\n H[7].lowOrder,\n ];\n }\n return retVal;\n}\n\nexport default class jsSHA extends jsSHABase {\n intermediateState: Int_64[];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: Int_64[]) => Int_64[];\n finalizeFunc: (remainder: number[], remainderBinLen: number, processedBinLen: number, H: Int_64[]) => number[];\n stateCloneFunc: (state: Int_64[]) => Int_64[];\n newStateFunc: (variant: VariantType) => Int_64[];\n getMAC: () => number[];\n\n constructor(variant: VariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(variant: VariantType, inputFormat: FormatNoTextType, options?: FixedLengthOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (!(\"SHA-384\" === variant || \"SHA-512\" === variant)) {\n throw new Error(sha_variant_error);\n }\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n this.HMACSupported = true;\n this.bigEndianMod = -1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA512;\n this.stateCloneFunc = function (state): Int_64[] {\n return state.slice();\n };\n this.newStateFunc = getNewState512;\n this.finalizeFunc = function (remainder, remainderBinLen, processedBinLen, H): number[] {\n return finalizeSHA512(remainder, remainderBinLen, processedBinLen, H, variant);\n };\n\n this.intermediateState = getNewState512(variant);\n this.variantBlockSize = 1024;\n this.outputBinLen = \"SHA-384\" === variant ? 384 : 512;\n this.isVariableLen = false;\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n}\n", "import { jsSHABase, packedLEConcat, sha_variant_error, mac_rounds_error, TWO_PWR_32, parseInputOption } from \"./common\";\nimport {\n packedValue,\n CSHAKEOptionsNoEncodingType,\n CSHAKEOptionsEncodingType,\n SHAKEOptionsNoEncodingType,\n SHAKEOptionsEncodingType,\n KMACOptionsNoEncodingType,\n KMACOptionsEncodingType,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n ResolvedCSHAKEOptionsNoEncodingType,\n ResolvedKMACOptionsNoEncodingType,\n} from \"./custom_types\";\nimport { getStrConverter } from \"./converters\";\nimport { Int_64, rotl_64, xor_64_2, xor_64_5 } from \"./primitives_64\";\n\ntype FixedLengthVariantType = \"SHA3-224\" | \"SHA3-256\" | \"SHA3-384\" | \"SHA3-512\" | \"SHAKE128\" | \"SHAKE256\";\n\ntype VariantType = FixedLengthVariantType | \"SHAKE128\" | \"SHAKE256\" | \"CSHAKE128\" | \"CSHAKE256\" | \"KMAC128\" | \"KMAC256\";\n\nconst rc_sha3 = [\n new Int_64(0x00000000, 0x00000001),\n new Int_64(0x00000000, 0x00008082),\n new Int_64(0x80000000, 0x0000808a),\n new Int_64(0x80000000, 0x80008000),\n new Int_64(0x00000000, 0x0000808b),\n new Int_64(0x00000000, 0x80000001),\n new Int_64(0x80000000, 0x80008081),\n new Int_64(0x80000000, 0x00008009),\n new Int_64(0x00000000, 0x0000008a),\n new Int_64(0x00000000, 0x00000088),\n new Int_64(0x00000000, 0x80008009),\n new Int_64(0x00000000, 0x8000000a),\n new Int_64(0x00000000, 0x8000808b),\n new Int_64(0x80000000, 0x0000008b),\n new Int_64(0x80000000, 0x00008089),\n new Int_64(0x80000000, 0x00008003),\n new Int_64(0x80000000, 0x00008002),\n new Int_64(0x80000000, 0x00000080),\n new Int_64(0x00000000, 0x0000800a),\n new Int_64(0x80000000, 0x8000000a),\n new Int_64(0x80000000, 0x80008081),\n new Int_64(0x80000000, 0x00008080),\n new Int_64(0x00000000, 0x80000001),\n new Int_64(0x80000000, 0x80008008),\n];\n\nconst r_sha3 = [\n [0, 36, 3, 41, 18],\n [1, 44, 10, 45, 2],\n [62, 6, 43, 15, 61],\n [28, 55, 25, 21, 56],\n [27, 20, 39, 8, 14],\n];\n\n/**\n * Gets the state values for the specified SHA-3 variant.\n *\n * @param _variant Unused for this family.\n * @returns The initial state values.\n */\nfunction getNewState(_variant: VariantType): Int_64[][] {\n let i;\n const retVal = [];\n\n for (i = 0; i < 5; i += 1) {\n retVal[i] = [new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0), new Int_64(0, 0)];\n }\n\n return retVal;\n}\n\n/**\n * Returns a clone of the given SHA3 state.\n *\n * @param state The state to be cloned.\n * @returns The cloned state.\n */\nfunction cloneSHA3State(state: Int_64[][]): Int_64[][] {\n let i;\n const clone = [];\n for (i = 0; i < 5; i += 1) {\n clone[i] = state[i].slice();\n }\n\n return clone;\n}\n\n/**\n * Performs a round of SHA-3 hashing over a block. This clobbers `state`.\n *\n * @param block The binary array representation of the block to hash.\n * @param state Hash state from a previous round.\n * @returns The resulting state value.\n */\nfunction roundSHA3(block: number[] | null, state: Int_64[][]): Int_64[][] {\n let round, x, y, B;\n const C = [],\n D = [];\n\n if (null !== block) {\n for (x = 0; x < block.length; x += 2) {\n state[(x >>> 1) % 5][((x >>> 1) / 5) | 0] = xor_64_2(\n state[(x >>> 1) % 5][((x >>> 1) / 5) | 0],\n new Int_64(block[x + 1], block[x])\n );\n }\n }\n\n for (round = 0; round < 24; round += 1) {\n /* Any SHA-3 variant name will do here */\n B = getNewState(\"SHA3-384\");\n\n /* Perform theta step */\n for (x = 0; x < 5; x += 1) {\n C[x] = xor_64_5(state[x][0], state[x][1], state[x][2], state[x][3], state[x][4]);\n }\n for (x = 0; x < 5; x += 1) {\n D[x] = xor_64_2(C[(x + 4) % 5], rotl_64(C[(x + 1) % 5], 1));\n }\n for (x = 0; x < 5; x += 1) {\n for (y = 0; y < 5; y += 1) {\n state[x][y] = xor_64_2(state[x][y], D[x]);\n }\n }\n\n /* Perform combined ro and pi steps */\n for (x = 0; x < 5; x += 1) {\n for (y = 0; y < 5; y += 1) {\n B[y][(2 * x + 3 * y) % 5] = rotl_64(state[x][y], r_sha3[x][y]);\n }\n }\n\n /* Perform chi step */\n for (x = 0; x < 5; x += 1) {\n for (y = 0; y < 5; y += 1) {\n state[x][y] = xor_64_2(\n B[x][y],\n new Int_64(\n ~B[(x + 1) % 5][y].highOrder & B[(x + 2) % 5][y].highOrder,\n ~B[(x + 1) % 5][y].lowOrder & B[(x + 2) % 5][y].lowOrder\n )\n );\n }\n }\n\n /* Perform iota step */\n state[0][0] = xor_64_2(state[0][0], rc_sha3[round]);\n }\n\n return state;\n}\n\n/**\n * Finalizes the SHA-3 hash. This clobbers `remainder` and `state`.\n *\n * @param remainder Any leftover unprocessed packed ints that still need to be processed.\n * @param remainderBinLen The number of bits in `remainder`.\n * @param _processedBinLen Unused for this family.\n * @param state The state from a previous round.\n * @param blockSize The block size/rate of the variant in bits\n * @param delimiter The delimiter value for the variant\n * @param outputLen The output length for the variant in bits\n * @returns The array of integers representing the SHA-3 hash of message.\n */\nfunction finalizeSHA3(\n remainder: number[],\n remainderBinLen: number,\n _processedBinLen: number,\n state: Int_64[][],\n blockSize: number,\n delimiter: number,\n outputLen: number\n): number[] {\n let i,\n state_offset = 0,\n temp;\n const retVal = [],\n binaryStringInc = blockSize >>> 5,\n remainderIntLen = remainderBinLen >>> 5;\n\n /* Process as many blocks as possible, some may be here for multiple rounds\n\t\twith SHAKE\n\t*/\n for (i = 0; i < remainderIntLen && remainderBinLen >= blockSize; i += binaryStringInc) {\n state = roundSHA3(remainder.slice(i, i + binaryStringInc), state);\n remainderBinLen -= blockSize;\n }\n\n remainder = remainder.slice(i);\n remainderBinLen = remainderBinLen % blockSize;\n\n /* Pad out the remainder to a full block */\n while (remainder.length < binaryStringInc) {\n remainder.push(0);\n }\n\n /* Find the next \"empty\" byte for the 0x80 and append it via an xor */\n i = remainderBinLen >>> 3;\n remainder[i >> 2] ^= delimiter << (8 * (i % 4));\n\n remainder[binaryStringInc - 1] ^= 0x80000000;\n state = roundSHA3(remainder, state);\n\n while (retVal.length * 32 < outputLen) {\n temp = state[state_offset % 5][(state_offset / 5) | 0];\n retVal.push(temp.lowOrder);\n if (retVal.length * 32 >= outputLen) {\n break;\n }\n retVal.push(temp.highOrder);\n state_offset += 1;\n\n if (0 === (state_offset * 64) % blockSize) {\n roundSHA3(null, state);\n state_offset = 0;\n }\n }\n\n return retVal;\n}\n\n/**\n * Performs NIST left_encode function returned with no extra garbage bits. `x` is limited to <= 9007199254740991.\n *\n * @param x 32-bit number to to encode.\n * @returns The NIST specified output of the function.\n */\nfunction left_encode(x: number): packedValue {\n let byteOffset,\n byte,\n numEncodedBytes = 0;\n /* JavaScript numbers max out at 0x1FFFFFFFFFFFFF (7 bytes) so this will return a maximum of 7 + 1 = 8 bytes */\n const retVal = [0, 0],\n x_64 = [x & 0xffffffff, (x / TWO_PWR_32) & 0x1fffff];\n\n for (byteOffset = 6; byteOffset >= 0; byteOffset--) {\n /* This will surprisingly work for large shifts because JavaScript masks the shift amount by 0x1F */\n byte = (x_64[byteOffset >> 2] >>> (8 * byteOffset)) & 0xff;\n\n /* Starting from the most significant byte of a 64-bit number, start recording the first non-0 byte and then\n every byte thereafter */\n if (byte !== 0 || numEncodedBytes !== 0) {\n retVal[(numEncodedBytes + 1) >> 2] |= byte << ((numEncodedBytes + 1) * 8);\n numEncodedBytes += 1;\n }\n }\n numEncodedBytes = numEncodedBytes !== 0 ? numEncodedBytes : 1;\n retVal[0] |= numEncodedBytes;\n\n return { value: numEncodedBytes + 1 > 4 ? retVal : [retVal[0]], binLen: 8 + numEncodedBytes * 8 };\n}\n\n/**\n * Performs NIST right_encode function returned with no extra garbage bits. `x` is limited to <= 9007199254740991.\n *\n * @param x 32-bit number to to encode.\n * @returns The NIST specified output of the function.\n */\nfunction right_encode(x: number): packedValue {\n let byteOffset,\n byte,\n numEncodedBytes = 0;\n /* JavaScript numbers max out at 0x1FFFFFFFFFFFFF (7 bytes) so this will return a maximum of 7 + 1 = 8 bytes */\n const retVal = [0, 0],\n x_64 = [x & 0xffffffff, (x / TWO_PWR_32) & 0x1fffff];\n\n for (byteOffset = 6; byteOffset >= 0; byteOffset--) {\n /* This will surprisingly work for large shifts because JavaScript masks the shift amount by 0x1F */\n byte = (x_64[byteOffset >> 2] >>> (8 * byteOffset)) & 0xff;\n\n /* Starting from the most significant byte of a 64-bit number, start recording the first non-0 byte and then\n every byte thereafter */\n if (byte !== 0 || numEncodedBytes !== 0) {\n retVal[numEncodedBytes >> 2] |= byte << (numEncodedBytes * 8);\n numEncodedBytes += 1;\n }\n }\n numEncodedBytes = numEncodedBytes !== 0 ? numEncodedBytes : 1;\n retVal[numEncodedBytes >> 2] |= numEncodedBytes << (numEncodedBytes * 8);\n\n return { value: numEncodedBytes + 1 > 4 ? retVal : [retVal[0]], binLen: 8 + numEncodedBytes * 8 };\n}\n\n/**\n * Performs NIST encode_string function.\n *\n * @param input Packed array of integers.\n * @returns NIST encode_string output.\n */\nfunction encode_string(input: packedValue): packedValue {\n return packedLEConcat(left_encode(input[\"binLen\"]), input);\n}\n\n/**\n * Performs NIST byte_pad function.\n *\n * @param packed Packed array of integers.\n * @param outputByteLen Desired length of the output in bytes, assumed to be a multiple of 4.\n * @returns NIST byte_pad output.\n */\nfunction byte_pad(packed: packedValue, outputByteLen: number): number[] {\n let encodedLen = left_encode(outputByteLen),\n i;\n\n encodedLen = packedLEConcat(encodedLen, packed);\n const outputIntLen = outputByteLen >>> 2,\n intsToAppend = (outputIntLen - (encodedLen[\"value\"].length % outputIntLen)) % outputIntLen;\n\n for (i = 0; i < intsToAppend; i++) {\n encodedLen[\"value\"].push(0);\n }\n\n return encodedLen[\"value\"];\n}\n\n/**\n * Parses/validate constructor options for a CSHAKE variant\n *\n * @param options Option given to constructor\n */\nfunction resolveCSHAKEOptions(options: CSHAKEOptionsNoEncodingType): ResolvedCSHAKEOptionsNoEncodingType {\n const resolvedOptions = options || {};\n\n return {\n funcName: parseInputOption(\"funcName\", resolvedOptions[\"funcName\"], 1, { value: [], binLen: 0 }),\n customization: parseInputOption(\"Customization\", resolvedOptions[\"customization\"], 1, { value: [], binLen: 0 }),\n };\n}\n\n/**\n * Parses/validate constructor options for a KMAC variant\n *\n * @param options Option given to constructor\n */\nfunction resolveKMACOptions(options: KMACOptionsNoEncodingType): ResolvedKMACOptionsNoEncodingType {\n const resolvedOptions = options || {};\n\n return {\n kmacKey: parseInputOption(\"kmacKey\", resolvedOptions[\"kmacKey\"], 1),\n /* This is little-endian packed \"KMAC\" */\n funcName: { value: [0x43414d4b], binLen: 32 },\n customization: parseInputOption(\"Customization\", resolvedOptions[\"customization\"], 1, { value: [], binLen: 0 }),\n };\n}\n\nexport default class jsSHA extends jsSHABase {\n intermediateState: Int_64[][];\n variantBlockSize: number;\n bigEndianMod: -1 | 1;\n outputBinLen: number;\n isVariableLen: boolean;\n HMACSupported: boolean;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n converterFunc: (input: any, existingBin: number[], existingBinLen: number) => packedValue;\n roundFunc: (block: number[], H: Int_64[][]) => Int_64[][];\n finalizeFunc: (\n remainder: number[],\n remainderBinLen: number,\n processedBinLen: number,\n H: Int_64[][],\n outputLen: number\n ) => number[];\n stateCloneFunc: (state: Int_64[][]) => Int_64[][];\n newStateFunc: (variant: VariantType) => Int_64[][];\n getMAC: ((options: { outputLen: number }) => number[]) | null;\n\n constructor(variant: FixedLengthVariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(\n variant: FixedLengthVariantType,\n inputFormat: FormatNoTextType,\n options?: FixedLengthOptionsNoEncodingType\n );\n constructor(variant: \"SHAKE128\" | \"SHAKE256\", inputFormat: \"TEXT\", options?: SHAKEOptionsEncodingType);\n constructor(variant: \"SHAKE128\" | \"SHAKE256\", inputFormat: FormatNoTextType, options?: SHAKEOptionsNoEncodingType);\n constructor(variant: \"CSHAKE128\" | \"CSHAKE256\", inputFormat: \"TEXT\", options?: CSHAKEOptionsEncodingType);\n constructor(variant: \"CSHAKE128\" | \"CSHAKE256\", inputFormat: FormatNoTextType, options?: CSHAKEOptionsNoEncodingType);\n constructor(variant: \"KMAC128\" | \"KMAC256\", inputFormat: \"TEXT\", options: KMACOptionsEncodingType);\n constructor(variant: \"KMAC128\" | \"KMAC256\", inputFormat: FormatNoTextType, options: KMACOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n let delimiter = 0x06,\n variantBlockSize = 0;\n super(variant, inputFormat, options);\n const resolvedOptions = options || {};\n\n /* In other variants, this was done after variable initialization but need to do it earlier here becaue we want to\n avoid KMAC initialization */\n if (this.numRounds !== 1) {\n if (resolvedOptions[\"kmacKey\"] || resolvedOptions[\"hmacKey\"]) {\n throw new Error(mac_rounds_error);\n } else if (this.shaVariant === \"CSHAKE128\" || this.shaVariant === \"CSHAKE256\") {\n throw new Error(\"Cannot set numRounds for CSHAKE variants\");\n }\n }\n\n this.bigEndianMod = 1;\n this.converterFunc = getStrConverter(this.inputFormat, this.utfType, this.bigEndianMod);\n this.roundFunc = roundSHA3;\n this.stateCloneFunc = cloneSHA3State;\n this.newStateFunc = getNewState;\n this.intermediateState = getNewState(variant);\n\n this.isVariableLen = false;\n switch (variant) {\n case \"SHA3-224\":\n this.variantBlockSize = variantBlockSize = 1152;\n this.outputBinLen = 224;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHA3-256\":\n this.variantBlockSize = variantBlockSize = 1088;\n this.outputBinLen = 256;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHA3-384\":\n this.variantBlockSize = variantBlockSize = 832;\n this.outputBinLen = 384;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHA3-512\":\n this.variantBlockSize = variantBlockSize = 576;\n this.outputBinLen = 512;\n this.HMACSupported = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getHMAC;\n break;\n case \"SHAKE128\":\n delimiter = 0x1f;\n this.variantBlockSize = variantBlockSize = 1344;\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n case \"SHAKE256\":\n delimiter = 0x1f;\n this.variantBlockSize = variantBlockSize = 1088;\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n case \"KMAC128\":\n delimiter = 0x4;\n this.variantBlockSize = variantBlockSize = 1344;\n this._initializeKMAC(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getKMAC;\n break;\n case \"KMAC256\":\n delimiter = 0x4;\n this.variantBlockSize = variantBlockSize = 1088;\n this._initializeKMAC(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.getMAC = this._getKMAC;\n break;\n case \"CSHAKE128\":\n this.variantBlockSize = variantBlockSize = 1344;\n delimiter = this._initializeCSHAKE(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n case \"CSHAKE256\":\n this.variantBlockSize = variantBlockSize = 1088;\n delimiter = this._initializeCSHAKE(options);\n /* This will be set in getHash */\n this.outputBinLen = -1;\n this.isVariableLen = true;\n this.HMACSupported = false;\n this.getMAC = null;\n break;\n default:\n throw new Error(sha_variant_error);\n }\n\n /* This needs to be down here as CSHAKE can change its delimiter */\n this.finalizeFunc = function (remainder, remainderBinLen, processedBinLen, state, outputBinLen): number[] {\n return finalizeSHA3(\n remainder,\n remainderBinLen,\n processedBinLen,\n state,\n variantBlockSize,\n delimiter,\n outputBinLen\n );\n };\n\n if (resolvedOptions[\"hmacKey\"]) {\n this._setHMACKey(parseInputOption(\"hmacKey\", resolvedOptions[\"hmacKey\"], this.bigEndianMod));\n }\n }\n\n /**\n * Initialize CSHAKE variants.\n *\n * @param options Options containing CSHAKE params.\n * @param funcNameOverride Overrides any \"funcName\" present in `options` (used with KMAC)\n * @returns The delimiter to be used\n */\n protected _initializeCSHAKE(options?: CSHAKEOptionsNoEncodingType, funcNameOverride?: packedValue): number {\n const resolvedOptions = resolveCSHAKEOptions(options || {});\n if (funcNameOverride) {\n resolvedOptions[\"funcName\"] = funcNameOverride;\n }\n const packedParams = packedLEConcat(\n encode_string(resolvedOptions[\"funcName\"]),\n encode_string(resolvedOptions[\"customization\"])\n );\n\n /* CSHAKE is defined to be a call to SHAKE iff both the customization and function-name string are both empty. This\n can be accomplished by processing nothing in this step. */\n if (resolvedOptions[\"customization\"][\"binLen\"] !== 0 || resolvedOptions[\"funcName\"][\"binLen\"] !== 0) {\n const byte_pad_out = byte_pad(packedParams, this.variantBlockSize >>> 3);\n for (let i = 0; i < byte_pad_out.length; i += this.variantBlockSize >>> 5) {\n this.intermediateState = this.roundFunc(\n byte_pad_out.slice(i, i + (this.variantBlockSize >>> 5)),\n this.intermediateState\n );\n this.processedLen += this.variantBlockSize;\n }\n return 0x04;\n } else {\n return 0x1f;\n }\n }\n\n /**\n * Initialize KMAC variants.\n *\n * @param options Options containing KMAC params.\n */\n protected _initializeKMAC(options: KMACOptionsNoEncodingType): void {\n const resolvedOptions = resolveKMACOptions(options || {});\n\n this._initializeCSHAKE(options, resolvedOptions[\"funcName\"]);\n const byte_pad_out = byte_pad(encode_string(resolvedOptions[\"kmacKey\"]), this.variantBlockSize >>> 3);\n for (let i = 0; i < byte_pad_out.length; i += this.variantBlockSize >>> 5) {\n this.intermediateState = this.roundFunc(\n byte_pad_out.slice(i, i + (this.variantBlockSize >>> 5)),\n this.intermediateState\n );\n this.processedLen += this.variantBlockSize;\n }\n this.macKeySet = true;\n }\n\n /**\n * Returns the the KMAC in the specified format.\n *\n * @param options Hashmap of extra outputs options. `outputLen` must be specified.\n * @returns The KMAC in the format specified.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected _getKMAC(options: { outputLen: number }): number[] {\n const concatedRemainder = packedLEConcat(\n { value: this.remainder.slice(), binLen: this.remainderLen },\n right_encode(options[\"outputLen\"])\n );\n\n return this.finalizeFunc(\n concatedRemainder[\"value\"],\n concatedRemainder[\"binLen\"],\n this.processedLen,\n this.stateCloneFunc(this.intermediateState),\n options[\"outputLen\"]\n );\n }\n}\n", "import { sha_variant_error } from \"./common\";\nimport {\n CSHAKEOptionsEncodingType,\n CSHAKEOptionsNoEncodingType,\n SHAKEOptionsEncodingType,\n SHAKEOptionsNoEncodingType,\n EncodingType,\n FixedLengthOptionsEncodingType,\n FixedLengthOptionsNoEncodingType,\n FormatNoTextType,\n KMACOptionsNoEncodingType,\n KMACOptionsEncodingType,\n} from \"./custom_types\";\nimport jsSHA1 from \"./sha1\";\nimport jsSHA256 from \"./sha256\";\nimport jsSHA512 from \"./sha512\";\nimport jsSHA3 from \"./sha3\";\n\ntype FixedLengthVariantType =\n | \"SHA-1\"\n | \"SHA-224\"\n | \"SHA-256\"\n | \"SHA-384\"\n | \"SHA-512\"\n | \"SHA3-224\"\n | \"SHA3-256\"\n | \"SHA3-384\"\n | \"SHA3-512\";\n\nexport default class jsSHA {\n private readonly shaObj: jsSHA1 | jsSHA256 | jsSHA512 | jsSHA3;\n /**\n * @param variant The desired SHA variant (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-256,\n * SHA3-384, SHA3-512, SHAKE128, SHAKE256, CSHAKE128, CSHAKE256, KMAC128, or KMAC256) as a string.\n * @param inputFormat The input format to be used in future `update` calls (TEXT, HEX, B64, BYTES, ARRAYBUFFER,\n * or UINT8ARRAY) as a string.\n * @param options Options in the form of { encoding?: \"UTF8\" | \"UTF16BE\" | \"UTF16LE\"; numRounds?: number }.\n * `encoding` is for only TEXT input (defaults to UTF8) and `numRounds` defaults to 1.\n * `numRounds` is not valid for any of the MAC or CSHAKE variants.\n * * If the variant supports HMAC, `options` may have an additional `hmacKey` key which must be in the form of\n * {value: , format: , encoding?: \"UTF8\" | \"UTF16BE\" | \"UTF16LE\"} where takes the same\n * values as `inputFormat` and can be a `string | ArrayBuffer | Uint8Array` depending on .\n * Supplying this key switches to HMAC calculation and replaces the now deprecated call to `setHMACKey`.\n * * If the variant is CSHAKE128 or CSHAKE256, `options` may have two additional keys, `customization` and `funcName`,\n * which are the NIST customization and function-name strings. Both must be in the same form as `hmacKey`.\n * * If the variant is KMAC128 or KMAC256, `options` can include the `customization` key from CSHAKE variants and\n * *must* have a `kmacKey` key that takes the same form as the `customization` key.\n */\n constructor(variant: FixedLengthVariantType, inputFormat: \"TEXT\", options?: FixedLengthOptionsEncodingType);\n constructor(\n variant: FixedLengthVariantType,\n inputFormat: FormatNoTextType,\n options?: FixedLengthOptionsNoEncodingType\n );\n constructor(variant: \"SHAKE128\" | \"SHAKE256\", inputFormat: \"TEXT\", options?: SHAKEOptionsEncodingType);\n constructor(variant: \"SHAKE128\" | \"SHAKE256\", inputFormat: FormatNoTextType, options?: SHAKEOptionsNoEncodingType);\n constructor(variant: \"CSHAKE128\" | \"CSHAKE256\", inputFormat: \"TEXT\", options?: CSHAKEOptionsEncodingType);\n constructor(variant: \"CSHAKE128\" | \"CSHAKE256\", inputFormat: FormatNoTextType, options?: CSHAKEOptionsNoEncodingType);\n constructor(variant: \"KMAC128\" | \"KMAC256\", inputFormat: \"TEXT\", options: KMACOptionsEncodingType);\n constructor(variant: \"KMAC128\" | \"KMAC256\", inputFormat: FormatNoTextType, options: KMACOptionsNoEncodingType);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(variant: any, inputFormat: any, options?: any) {\n if (\"SHA-1\" == variant) {\n this.shaObj = new jsSHA1(variant, inputFormat, options);\n } else if (\"SHA-224\" == variant || \"SHA-256\" == variant) {\n this.shaObj = new jsSHA256(variant, inputFormat, options);\n } else if (\"SHA-384\" == variant || \"SHA-512\" == variant) {\n this.shaObj = new jsSHA512(variant, inputFormat, options);\n } else if (\n \"SHA3-224\" == variant ||\n \"SHA3-256\" == variant ||\n \"SHA3-384\" == variant ||\n \"SHA3-512\" == variant ||\n \"SHAKE128\" == variant ||\n \"SHAKE256\" == variant ||\n \"CSHAKE128\" == variant ||\n \"CSHAKE256\" == variant ||\n \"KMAC128\" == variant ||\n \"KMAC256\" == variant\n ) {\n this.shaObj = new jsSHA3(variant, inputFormat, options);\n } else {\n throw new Error(sha_variant_error);\n }\n }\n\n /**\n * Takes `input` and hashes as many blocks as possible. Stores the rest for either a future `update` or `getHash` call.\n *\n * @param input The input to be hashed\n */\n update(input: string | ArrayBuffer | Uint8Array): void {\n this.shaObj.update(input);\n }\n\n /**\n * Returns the desired SHA or MAC (if a HMAC/KMAC key was specified) hash of the input fed in via `update` calls.\n *\n * @param format The desired output formatting (B64, HEX, BYTES, ARRAYBUFFER, or UINT8ARRAY) as a string.\n * @param options Options in the form of { outputUpper?: boolean; b64Pad?: string; outputLen?: number; }.\n * `outputLen` is required for variable length output variants (this option was previously called `shakeLen` which\n * is now deprecated).\n * `outputUpper` is only for HEX output (defaults to false) and b64pad is only for B64 output (defaults to \"=\").\n * @returns The hash in the format specified.\n */\n getHash(format: \"HEX\", options?: { outputUpper?: boolean; outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"B64\", options?: { b64Pad?: string; outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"BYTES\", options?: { outputLen?: number; shakeLen?: number }): string;\n getHash(format: \"UINT8ARRAY\", options?: { outputLen?: number; shakeLen?: number }): Uint8Array;\n getHash(format: \"ARRAYBUFFER\", options?: { outputLen?: number; shakeLen?: number }): ArrayBuffer;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getHash(format: any, options?: any): any {\n return this.shaObj.getHash(format, options);\n }\n\n /**\n * Sets the HMAC key for an eventual `getHMAC` call. Must be called immediately after jsSHA object instantiation.\n * Now deprecated in favor of setting the `hmacKey` at object instantiation.\n *\n * @param key The key used to calculate the HMAC\n * @param inputFormat The format of key (HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY) as a string.\n * @param options Options in the form of { encoding?: \"UTF8\" | \"UTF16BE\" | \"UTF16LE }. `encoding` is only for TEXT\n * and defaults to UTF8.\n */\n setHMACKey(key: string, inputFormat: \"TEXT\", options?: { encoding?: EncodingType }): void;\n setHMACKey(key: string, inputFormat: \"B64\" | \"HEX\" | \"BYTES\"): void;\n setHMACKey(key: ArrayBuffer, inputFormat: \"ARRAYBUFFER\"): void;\n setHMACKey(key: Uint8Array, inputFormat: \"UINT8ARRAY\"): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setHMACKey(key: any, inputFormat: any, options?: any): void {\n this.shaObj.setHMACKey(key, inputFormat, options);\n }\n\n /**\n * Returns the the HMAC in the specified format using the key given by a previous `setHMACKey` call. Now deprecated\n * in favor of just calling `getHash`.\n *\n * @param format The desired output formatting (B64, HEX, BYTES, ARRAYBUFFER, or UINT8ARRAY) as a string.\n * @param options Options in the form of { outputUpper?: boolean; b64Pad?: string }. `outputUpper` is only for HEX\n * output (defaults to false) and `b64pad` is only for B64 output (defaults to \"=\").\n * @returns The HMAC in the format specified.\n */\n getHMAC(format: \"HEX\", options?: { outputUpper?: boolean }): string;\n getHMAC(format: \"B64\", options?: { b64Pad?: string }): string;\n getHMAC(format: \"BYTES\"): string;\n getHMAC(format: \"UINT8ARRAY\"): Uint8Array;\n getHMAC(format: \"ARRAYBUFFER\"): ArrayBuffer;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getHMAC(format: any, options?: any): any {\n return this.shaObj.getHMAC(format, options);\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSecureRandomWords = exports.getSecureRandomBytes = void 0;\nfunction getSecureRandomBytes(size) {\n return Buffer.from(window.crypto.getRandomValues(new Uint8Array(size)));\n}\nexports.getSecureRandomBytes = getSecureRandomBytes;\nfunction getSecureRandomWords(size) {\n return window.crypto.getRandomValues(new Uint16Array(size));\n}\nexports.getSecureRandomWords = getSecureRandomWords;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac_sha512 = void 0;\nasync function hmac_sha512(key, data) {\n let keyBuffer = typeof key === 'string' ? Buffer.from(key, 'utf-8') : key;\n let dataBuffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;\n const hmacAlgo = { name: \"HMAC\", hash: \"SHA-512\" };\n const hmacKey = await window.crypto.subtle.importKey(\"raw\", keyBuffer, hmacAlgo, false, [\"sign\"]);\n return Buffer.from(await crypto.subtle.sign(hmacAlgo, hmacKey, dataBuffer));\n}\nexports.hmac_sha512 = hmac_sha512;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2_sha512 = void 0;\nasync function pbkdf2_sha512(key, salt, iterations, keyLen) {\n const keyBuffer = typeof key === 'string' ? Buffer.from(key, 'utf-8') : key;\n const saltBuffer = typeof salt === 'string' ? Buffer.from(salt, 'utf-8') : salt;\n const pbkdf2_key = await window.crypto.subtle.importKey(\"raw\", keyBuffer, { name: \"PBKDF2\" }, false, [\"deriveBits\"]);\n const derivedBits = await window.crypto.subtle.deriveBits({ name: \"PBKDF2\", hash: \"SHA-512\", salt: saltBuffer, iterations: iterations }, pbkdf2_key, keyLen * 8);\n return Buffer.from(derivedBits);\n}\nexports.pbkdf2_sha512 = pbkdf2_sha512;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = void 0;\nasync function sha256(source) {\n if (typeof source === 'string') {\n return Buffer.from(await crypto.subtle.digest(\"SHA-256\", Buffer.from(source, 'utf-8')));\n }\n return Buffer.from(await crypto.subtle.digest(\"SHA-256\", source));\n}\nexports.sha256 = sha256;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = void 0;\nasync function sha512(source) {\n if (typeof source === 'string') {\n return Buffer.from(await crypto.subtle.digest(\"SHA-512\", Buffer.from(source, 'utf-8')));\n }\n return Buffer.from(await crypto.subtle.digest(\"SHA-512\", source));\n}\nexports.sha512 = sha512;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = exports.sha256 = exports.pbkdf2_sha512 = exports.hmac_sha512 = exports.getSecureRandomWords = exports.getSecureRandomBytes = void 0;\nvar getSecureRandom_1 = require(\"./browser/getSecureRandom\");\nObject.defineProperty(exports, \"getSecureRandomBytes\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomBytes; } });\nObject.defineProperty(exports, \"getSecureRandomWords\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomWords; } });\nvar hmac_sha512_1 = require(\"./browser/hmac_sha512\");\nObject.defineProperty(exports, \"hmac_sha512\", { enumerable: true, get: function () { return hmac_sha512_1.hmac_sha512; } });\nvar pbkdf2_sha512_1 = require(\"./browser/pbkdf2_sha512\");\nObject.defineProperty(exports, \"pbkdf2_sha512\", { enumerable: true, get: function () { return pbkdf2_sha512_1.pbkdf2_sha512; } });\nvar sha256_1 = require(\"./browser/sha256\");\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha256_1.sha256; } });\nvar sha512_1 = require(\"./browser/sha512\");\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha512_1.sha512; } });\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = exports.sha256_fallback = exports.sha256_sync = void 0;\nconst jssha_1 = __importDefault(require(\"jssha\"));\nconst ton_crypto_primitives_1 = require(\"ton-crypto-primitives\");\nfunction sha256_sync(source) {\n let src;\n if (typeof source === 'string') {\n src = Buffer.from(source, 'utf-8').toString('hex');\n }\n else {\n src = source.toString('hex');\n }\n let hasher = new jssha_1.default('SHA-256', 'HEX');\n hasher.update(src);\n let res = hasher.getHash('HEX');\n return Buffer.from(res, 'hex');\n}\nexports.sha256_sync = sha256_sync;\nasync function sha256_fallback(source) {\n return sha256_sync(source);\n}\nexports.sha256_fallback = sha256_fallback;\nfunction sha256(source) {\n return (0, ton_crypto_primitives_1.sha256)(source);\n}\nexports.sha256 = sha256;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = exports.sha512_fallback = exports.sha512_sync = void 0;\nconst jssha_1 = __importDefault(require(\"jssha\"));\nconst ton_crypto_primitives_1 = require(\"ton-crypto-primitives\");\nfunction sha512_sync(source) {\n let src;\n if (typeof source === 'string') {\n src = Buffer.from(source, 'utf-8').toString('hex');\n }\n else {\n src = source.toString('hex');\n }\n let hasher = new jssha_1.default('SHA-512', 'HEX');\n hasher.update(src);\n let res = hasher.getHash('HEX');\n return Buffer.from(res, 'hex');\n}\nexports.sha512_sync = sha512_sync;\nasync function sha512_fallback(source) {\n return sha512_sync(source);\n}\nexports.sha512_fallback = sha512_fallback;\nasync function sha512(source) {\n return (0, ton_crypto_primitives_1.sha512)(source);\n}\nexports.sha512 = sha512;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2_sha512 = void 0;\nconst ton_crypto_primitives_1 = require(\"ton-crypto-primitives\");\nfunction pbkdf2_sha512(key, salt, iterations, keyLen) {\n return (0, ton_crypto_primitives_1.pbkdf2_sha512)(key, salt, iterations, keyLen);\n}\nexports.pbkdf2_sha512 = pbkdf2_sha512;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac_sha512 = exports.hmac_sha512_fallback = void 0;\nconst jssha_1 = __importDefault(require(\"jssha\"));\nconst ton_crypto_primitives_1 = require(\"ton-crypto-primitives\");\nasync function hmac_sha512_fallback(key, data) {\n let keyBuffer = typeof key === 'string' ? Buffer.from(key, 'utf-8') : key;\n let dataBuffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;\n const shaObj = new jssha_1.default(\"SHA-512\", \"HEX\", {\n hmacKey: { value: keyBuffer.toString('hex'), format: \"HEX\" },\n });\n shaObj.update(dataBuffer.toString('hex'));\n const hmac = shaObj.getHash(\"HEX\");\n return Buffer.from(hmac, 'hex');\n}\nexports.hmac_sha512_fallback = hmac_sha512_fallback;\nfunction hmac_sha512(key, data) {\n return (0, ton_crypto_primitives_1.hmac_sha512)(key, data);\n}\nexports.hmac_sha512 = hmac_sha512;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSecureRandomNumber = exports.getSecureRandomWords = exports.getSecureRandomBytes = void 0;\nconst ton_crypto_primitives_1 = require(\"ton-crypto-primitives\");\nasync function getSecureRandomBytes(size) {\n return (0, ton_crypto_primitives_1.getSecureRandomBytes)(size);\n}\nexports.getSecureRandomBytes = getSecureRandomBytes;\nasync function getSecureRandomWords(size) {\n return getSecureRandomWords(size);\n}\nexports.getSecureRandomWords = getSecureRandomWords;\nasync function getSecureRandomNumber(min, max) {\n let range = max - min;\n var bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error('Range is too large');\n }\n var bytesNeeded = Math.ceil(bitsNeeded / 8);\n var mask = Math.pow(2, bitsNeeded) - 1;\n while (true) {\n let res = await getSecureRandomBytes(bitsNeeded);\n let power = (bytesNeeded - 1) * 8;\n let numberValue = 0;\n for (var i = 0; i < bytesNeeded; i++) {\n numberValue += res[i] * Math.pow(2, power);\n power -= 8;\n }\n numberValue = numberValue & mask; // Truncate\n if (numberValue >= range) {\n continue;\n }\n return min + numberValue;\n }\n}\nexports.getSecureRandomNumber = getSecureRandomNumber;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordlist = void 0;\n// Source https://www.eff.org/dice\nexports.wordlist = [\n 'abacus',\n 'abdomen',\n 'abdominal',\n 'abide',\n 'abiding',\n 'ability',\n 'ablaze',\n 'able',\n 'abnormal',\n 'abrasion',\n 'abrasive',\n 'abreast',\n 'abridge',\n 'abroad',\n 'abruptly',\n 'absence',\n 'absentee',\n 'absently',\n 'absinthe',\n 'absolute',\n 'absolve',\n 'abstain',\n 'abstract',\n 'absurd',\n 'accent',\n 'acclaim',\n 'acclimate',\n 'accompany',\n 'account',\n 'accuracy',\n 'accurate',\n 'accustom',\n 'acetone',\n 'achiness',\n 'aching',\n 'acid',\n 'acorn',\n 'acquaint',\n 'acquire',\n 'acre',\n 'acrobat',\n 'acronym',\n 'acting',\n 'action',\n 'activate',\n 'activator',\n 'active',\n 'activism',\n 'activist',\n 'activity',\n 'actress',\n 'acts',\n 'acutely',\n 'acuteness',\n 'aeration',\n 'aerobics',\n 'aerosol',\n 'aerospace',\n 'afar',\n 'affair',\n 'affected',\n 'affecting',\n 'affection',\n 'affidavit',\n 'affiliate',\n 'affirm',\n 'affix',\n 'afflicted',\n 'affluent',\n 'afford',\n 'affront',\n 'aflame',\n 'afloat',\n 'aflutter',\n 'afoot',\n 'afraid',\n 'afterglow',\n 'afterlife',\n 'aftermath',\n 'aftermost',\n 'afternoon',\n 'aged',\n 'ageless',\n 'agency',\n 'agenda',\n 'agent',\n 'aggregate',\n 'aghast',\n 'agile',\n 'agility',\n 'aging',\n 'agnostic',\n 'agonize',\n 'agonizing',\n 'agony',\n 'agreeable',\n 'agreeably',\n 'agreed',\n 'agreeing',\n 'agreement',\n 'aground',\n 'ahead',\n 'ahoy',\n 'aide',\n 'aids',\n 'aim',\n 'ajar',\n 'alabaster',\n 'alarm',\n 'albatross',\n 'album',\n 'alfalfa',\n 'algebra',\n 'algorithm',\n 'alias',\n 'alibi',\n 'alienable',\n 'alienate',\n 'aliens',\n 'alike',\n 'alive',\n 'alkaline',\n 'alkalize',\n 'almanac',\n 'almighty',\n 'almost',\n 'aloe',\n 'aloft',\n 'aloha',\n 'alone',\n 'alongside',\n 'aloof',\n 'alphabet',\n 'alright',\n 'although',\n 'altitude',\n 'alto',\n 'aluminum',\n 'alumni',\n 'always',\n 'amaretto',\n 'amaze',\n 'amazingly',\n 'amber',\n 'ambiance',\n 'ambiguity',\n 'ambiguous',\n 'ambition',\n 'ambitious',\n 'ambulance',\n 'ambush',\n 'amendable',\n 'amendment',\n 'amends',\n 'amenity',\n 'amiable',\n 'amicably',\n 'amid',\n 'amigo',\n 'amino',\n 'amiss',\n 'ammonia',\n 'ammonium',\n 'amnesty',\n 'amniotic',\n 'among',\n 'amount',\n 'amperage',\n 'ample',\n 'amplifier',\n 'amplify',\n 'amply',\n 'amuck',\n 'amulet',\n 'amusable',\n 'amused',\n 'amusement',\n 'amuser',\n 'amusing',\n 'anaconda',\n 'anaerobic',\n 'anagram',\n 'anatomist',\n 'anatomy',\n 'anchor',\n 'anchovy',\n 'ancient',\n 'android',\n 'anemia',\n 'anemic',\n 'aneurism',\n 'anew',\n 'angelfish',\n 'angelic',\n 'anger',\n 'angled',\n 'angler',\n 'angles',\n 'angling',\n 'angrily',\n 'angriness',\n 'anguished',\n 'angular',\n 'animal',\n 'animate',\n 'animating',\n 'animation',\n 'animator',\n 'anime',\n 'animosity',\n 'ankle',\n 'annex',\n 'annotate',\n 'announcer',\n 'annoying',\n 'annually',\n 'annuity',\n 'anointer',\n 'another',\n 'answering',\n 'antacid',\n 'antarctic',\n 'anteater',\n 'antelope',\n 'antennae',\n 'anthem',\n 'anthill',\n 'anthology',\n 'antibody',\n 'antics',\n 'antidote',\n 'antihero',\n 'antiquely',\n 'antiques',\n 'antiquity',\n 'antirust',\n 'antitoxic',\n 'antitrust',\n 'antiviral',\n 'antivirus',\n 'antler',\n 'antonym',\n 'antsy',\n 'anvil',\n 'anybody',\n 'anyhow',\n 'anymore',\n 'anyone',\n 'anyplace',\n 'anything',\n 'anytime',\n 'anyway',\n 'anywhere',\n 'aorta',\n 'apache',\n 'apostle',\n 'appealing',\n 'appear',\n 'appease',\n 'appeasing',\n 'appendage',\n 'appendix',\n 'appetite',\n 'appetizer',\n 'applaud',\n 'applause',\n 'apple',\n 'appliance',\n 'applicant',\n 'applied',\n 'apply',\n 'appointee',\n 'appraisal',\n 'appraiser',\n 'apprehend',\n 'approach',\n 'approval',\n 'approve',\n 'apricot',\n 'april',\n 'apron',\n 'aptitude',\n 'aptly',\n 'aqua',\n 'aqueduct',\n 'arbitrary',\n 'arbitrate',\n 'ardently',\n 'area',\n 'arena',\n 'arguable',\n 'arguably',\n 'argue',\n 'arise',\n 'armadillo',\n 'armband',\n 'armchair',\n 'armed',\n 'armful',\n 'armhole',\n 'arming',\n 'armless',\n 'armoire',\n 'armored',\n 'armory',\n 'armrest',\n 'army',\n 'aroma',\n 'arose',\n 'around',\n 'arousal',\n 'arrange',\n 'array',\n 'arrest',\n 'arrival',\n 'arrive',\n 'arrogance',\n 'arrogant',\n 'arson',\n 'art',\n 'ascend',\n 'ascension',\n 'ascent',\n 'ascertain',\n 'ashamed',\n 'ashen',\n 'ashes',\n 'ashy',\n 'aside',\n 'askew',\n 'asleep',\n 'asparagus',\n 'aspect',\n 'aspirate',\n 'aspire',\n 'aspirin',\n 'astonish',\n 'astound',\n 'astride',\n 'astrology',\n 'astronaut',\n 'astronomy',\n 'astute',\n 'atlantic',\n 'atlas',\n 'atom',\n 'atonable',\n 'atop',\n 'atrium',\n 'atrocious',\n 'atrophy',\n 'attach',\n 'attain',\n 'attempt',\n 'attendant',\n 'attendee',\n 'attention',\n 'attentive',\n 'attest',\n 'attic',\n 'attire',\n 'attitude',\n 'attractor',\n 'attribute',\n 'atypical',\n 'auction',\n 'audacious',\n 'audacity',\n 'audible',\n 'audibly',\n 'audience',\n 'audio',\n 'audition',\n 'augmented',\n 'august',\n 'authentic',\n 'author',\n 'autism',\n 'autistic',\n 'autograph',\n 'automaker',\n 'automated',\n 'automatic',\n 'autopilot',\n 'available',\n 'avalanche',\n 'avatar',\n 'avenge',\n 'avenging',\n 'avenue',\n 'average',\n 'aversion',\n 'avert',\n 'aviation',\n 'aviator',\n 'avid',\n 'avoid',\n 'await',\n 'awaken',\n 'award',\n 'aware',\n 'awhile',\n 'awkward',\n 'awning',\n 'awoke',\n 'awry',\n 'axis',\n 'babble',\n 'babbling',\n 'babied',\n 'baboon',\n 'backache',\n 'backboard',\n 'backboned',\n 'backdrop',\n 'backed',\n 'backer',\n 'backfield',\n 'backfire',\n 'backhand',\n 'backing',\n 'backlands',\n 'backlash',\n 'backless',\n 'backlight',\n 'backlit',\n 'backlog',\n 'backpack',\n 'backpedal',\n 'backrest',\n 'backroom',\n 'backshift',\n 'backside',\n 'backslid',\n 'backspace',\n 'backspin',\n 'backstab',\n 'backstage',\n 'backtalk',\n 'backtrack',\n 'backup',\n 'backward',\n 'backwash',\n 'backwater',\n 'backyard',\n 'bacon',\n 'bacteria',\n 'bacterium',\n 'badass',\n 'badge',\n 'badland',\n 'badly',\n 'badness',\n 'baffle',\n 'baffling',\n 'bagel',\n 'bagful',\n 'baggage',\n 'bagged',\n 'baggie',\n 'bagginess',\n 'bagging',\n 'baggy',\n 'bagpipe',\n 'baguette',\n 'baked',\n 'bakery',\n 'bakeshop',\n 'baking',\n 'balance',\n 'balancing',\n 'balcony',\n 'balmy',\n 'balsamic',\n 'bamboo',\n 'banana',\n 'banish',\n 'banister',\n 'banjo',\n 'bankable',\n 'bankbook',\n 'banked',\n 'banker',\n 'banking',\n 'banknote',\n 'bankroll',\n 'banner',\n 'bannister',\n 'banshee',\n 'banter',\n 'barbecue',\n 'barbed',\n 'barbell',\n 'barber',\n 'barcode',\n 'barge',\n 'bargraph',\n 'barista',\n 'baritone',\n 'barley',\n 'barmaid',\n 'barman',\n 'barn',\n 'barometer',\n 'barrack',\n 'barracuda',\n 'barrel',\n 'barrette',\n 'barricade',\n 'barrier',\n 'barstool',\n 'bartender',\n 'barterer',\n 'bash',\n 'basically',\n 'basics',\n 'basil',\n 'basin',\n 'basis',\n 'basket',\n 'batboy',\n 'batch',\n 'bath',\n 'baton',\n 'bats',\n 'battalion',\n 'battered',\n 'battering',\n 'battery',\n 'batting',\n 'battle',\n 'bauble',\n 'bazooka',\n 'blabber',\n 'bladder',\n 'blade',\n 'blah',\n 'blame',\n 'blaming',\n 'blanching',\n 'blandness',\n 'blank',\n 'blaspheme',\n 'blasphemy',\n 'blast',\n 'blatancy',\n 'blatantly',\n 'blazer',\n 'blazing',\n 'bleach',\n 'bleak',\n 'bleep',\n 'blemish',\n 'blend',\n 'bless',\n 'blighted',\n 'blimp',\n 'bling',\n 'blinked',\n 'blinker',\n 'blinking',\n 'blinks',\n 'blip',\n 'blissful',\n 'blitz',\n 'blizzard',\n 'bloated',\n 'bloating',\n 'blob',\n 'blog',\n 'bloomers',\n 'blooming',\n 'blooper',\n 'blot',\n 'blouse',\n 'blubber',\n 'bluff',\n 'bluish',\n 'blunderer',\n 'blunt',\n 'blurb',\n 'blurred',\n 'blurry',\n 'blurt',\n 'blush',\n 'blustery',\n 'boaster',\n 'boastful',\n 'boasting',\n 'boat',\n 'bobbed',\n 'bobbing',\n 'bobble',\n 'bobcat',\n 'bobsled',\n 'bobtail',\n 'bodacious',\n 'body',\n 'bogged',\n 'boggle',\n 'bogus',\n 'boil',\n 'bok',\n 'bolster',\n 'bolt',\n 'bonanza',\n 'bonded',\n 'bonding',\n 'bondless',\n 'boned',\n 'bonehead',\n 'boneless',\n 'bonelike',\n 'boney',\n 'bonfire',\n 'bonnet',\n 'bonsai',\n 'bonus',\n 'bony',\n 'boogeyman',\n 'boogieman',\n 'book',\n 'boondocks',\n 'booted',\n 'booth',\n 'bootie',\n 'booting',\n 'bootlace',\n 'bootleg',\n 'boots',\n 'boozy',\n 'borax',\n 'boring',\n 'borough',\n 'borrower',\n 'borrowing',\n 'boss',\n 'botanical',\n 'botanist',\n 'botany',\n 'botch',\n 'both',\n 'bottle',\n 'bottling',\n 'bottom',\n 'bounce',\n 'bouncing',\n 'bouncy',\n 'bounding',\n 'boundless',\n 'bountiful',\n 'bovine',\n 'boxcar',\n 'boxer',\n 'boxing',\n 'boxlike',\n 'boxy',\n 'breach',\n 'breath',\n 'breeches',\n 'breeching',\n 'breeder',\n 'breeding',\n 'breeze',\n 'breezy',\n 'brethren',\n 'brewery',\n 'brewing',\n 'briar',\n 'bribe',\n 'brick',\n 'bride',\n 'bridged',\n 'brigade',\n 'bright',\n 'brilliant',\n 'brim',\n 'bring',\n 'brink',\n 'brisket',\n 'briskly',\n 'briskness',\n 'bristle',\n 'brittle',\n 'broadband',\n 'broadcast',\n 'broaden',\n 'broadly',\n 'broadness',\n 'broadside',\n 'broadways',\n 'broiler',\n 'broiling',\n 'broken',\n 'broker',\n 'bronchial',\n 'bronco',\n 'bronze',\n 'bronzing',\n 'brook',\n 'broom',\n 'brought',\n 'browbeat',\n 'brownnose',\n 'browse',\n 'browsing',\n 'bruising',\n 'brunch',\n 'brunette',\n 'brunt',\n 'brush',\n 'brussels',\n 'brute',\n 'brutishly',\n 'bubble',\n 'bubbling',\n 'bubbly',\n 'buccaneer',\n 'bucked',\n 'bucket',\n 'buckle',\n 'buckshot',\n 'buckskin',\n 'bucktooth',\n 'buckwheat',\n 'buddhism',\n 'buddhist',\n 'budding',\n 'buddy',\n 'budget',\n 'buffalo',\n 'buffed',\n 'buffer',\n 'buffing',\n 'buffoon',\n 'buggy',\n 'bulb',\n 'bulge',\n 'bulginess',\n 'bulgur',\n 'bulk',\n 'bulldog',\n 'bulldozer',\n 'bullfight',\n 'bullfrog',\n 'bullhorn',\n 'bullion',\n 'bullish',\n 'bullpen',\n 'bullring',\n 'bullseye',\n 'bullwhip',\n 'bully',\n 'bunch',\n 'bundle',\n 'bungee',\n 'bunion',\n 'bunkbed',\n 'bunkhouse',\n 'bunkmate',\n 'bunny',\n 'bunt',\n 'busboy',\n 'bush',\n 'busily',\n 'busload',\n 'bust',\n 'busybody',\n 'buzz',\n 'cabana',\n 'cabbage',\n 'cabbie',\n 'cabdriver',\n 'cable',\n 'caboose',\n 'cache',\n 'cackle',\n 'cacti',\n 'cactus',\n 'caddie',\n 'caddy',\n 'cadet',\n 'cadillac',\n 'cadmium',\n 'cage',\n 'cahoots',\n 'cake',\n 'calamari',\n 'calamity',\n 'calcium',\n 'calculate',\n 'calculus',\n 'caliber',\n 'calibrate',\n 'calm',\n 'caloric',\n 'calorie',\n 'calzone',\n 'camcorder',\n 'cameo',\n 'camera',\n 'camisole',\n 'camper',\n 'campfire',\n 'camping',\n 'campsite',\n 'campus',\n 'canal',\n 'canary',\n 'cancel',\n 'candied',\n 'candle',\n 'candy',\n 'cane',\n 'canine',\n 'canister',\n 'cannabis',\n 'canned',\n 'canning',\n 'cannon',\n 'cannot',\n 'canola',\n 'canon',\n 'canopener',\n 'canopy',\n 'canteen',\n 'canyon',\n 'capable',\n 'capably',\n 'capacity',\n 'cape',\n 'capillary',\n 'capital',\n 'capitol',\n 'capped',\n 'capricorn',\n 'capsize',\n 'capsule',\n 'caption',\n 'captivate',\n 'captive',\n 'captivity',\n 'capture',\n 'caramel',\n 'carat',\n 'caravan',\n 'carbon',\n 'cardboard',\n 'carded',\n 'cardiac',\n 'cardigan',\n 'cardinal',\n 'cardstock',\n 'carefully',\n 'caregiver',\n 'careless',\n 'caress',\n 'caretaker',\n 'cargo',\n 'caring',\n 'carless',\n 'carload',\n 'carmaker',\n 'carnage',\n 'carnation',\n 'carnival',\n 'carnivore',\n 'carol',\n 'carpenter',\n 'carpentry',\n 'carpool',\n 'carport',\n 'carried',\n 'carrot',\n 'carrousel',\n 'carry',\n 'cartel',\n 'cartload',\n 'carton',\n 'cartoon',\n 'cartridge',\n 'cartwheel',\n 'carve',\n 'carving',\n 'carwash',\n 'cascade',\n 'case',\n 'cash',\n 'casing',\n 'casino',\n 'casket',\n 'cassette',\n 'casually',\n 'casualty',\n 'catacomb',\n 'catalog',\n 'catalyst',\n 'catalyze',\n 'catapult',\n 'cataract',\n 'catatonic',\n 'catcall',\n 'catchable',\n 'catcher',\n 'catching',\n 'catchy',\n 'caterer',\n 'catering',\n 'catfight',\n 'catfish',\n 'cathedral',\n 'cathouse',\n 'catlike',\n 'catnap',\n 'catnip',\n 'catsup',\n 'cattail',\n 'cattishly',\n 'cattle',\n 'catty',\n 'catwalk',\n 'caucasian',\n 'caucus',\n 'causal',\n 'causation',\n 'cause',\n 'causing',\n 'cauterize',\n 'caution',\n 'cautious',\n 'cavalier',\n 'cavalry',\n 'caviar',\n 'cavity',\n 'cedar',\n 'celery',\n 'celestial',\n 'celibacy',\n 'celibate',\n 'celtic',\n 'cement',\n 'census',\n 'ceramics',\n 'ceremony',\n 'certainly',\n 'certainty',\n 'certified',\n 'certify',\n 'cesarean',\n 'cesspool',\n 'chafe',\n 'chaffing',\n 'chain',\n 'chair',\n 'chalice',\n 'challenge',\n 'chamber',\n 'chamomile',\n 'champion',\n 'chance',\n 'change',\n 'channel',\n 'chant',\n 'chaos',\n 'chaperone',\n 'chaplain',\n 'chapped',\n 'chaps',\n 'chapter',\n 'character',\n 'charbroil',\n 'charcoal',\n 'charger',\n 'charging',\n 'chariot',\n 'charity',\n 'charm',\n 'charred',\n 'charter',\n 'charting',\n 'chase',\n 'chasing',\n 'chaste',\n 'chastise',\n 'chastity',\n 'chatroom',\n 'chatter',\n 'chatting',\n 'chatty',\n 'cheating',\n 'cheddar',\n 'cheek',\n 'cheer',\n 'cheese',\n 'cheesy',\n 'chef',\n 'chemicals',\n 'chemist',\n 'chemo',\n 'cherisher',\n 'cherub',\n 'chess',\n 'chest',\n 'chevron',\n 'chevy',\n 'chewable',\n 'chewer',\n 'chewing',\n 'chewy',\n 'chief',\n 'chihuahua',\n 'childcare',\n 'childhood',\n 'childish',\n 'childless',\n 'childlike',\n 'chili',\n 'chill',\n 'chimp',\n 'chip',\n 'chirping',\n 'chirpy',\n 'chitchat',\n 'chivalry',\n 'chive',\n 'chloride',\n 'chlorine',\n 'choice',\n 'chokehold',\n 'choking',\n 'chomp',\n 'chooser',\n 'choosing',\n 'choosy',\n 'chop',\n 'chosen',\n 'chowder',\n 'chowtime',\n 'chrome',\n 'chubby',\n 'chuck',\n 'chug',\n 'chummy',\n 'chump',\n 'chunk',\n 'churn',\n 'chute',\n 'cider',\n 'cilantro',\n 'cinch',\n 'cinema',\n 'cinnamon',\n 'circle',\n 'circling',\n 'circular',\n 'circulate',\n 'circus',\n 'citable',\n 'citadel',\n 'citation',\n 'citizen',\n 'citric',\n 'citrus',\n 'city',\n 'civic',\n 'civil',\n 'clad',\n 'claim',\n 'clambake',\n 'clammy',\n 'clamor',\n 'clamp',\n 'clamshell',\n 'clang',\n 'clanking',\n 'clapped',\n 'clapper',\n 'clapping',\n 'clarify',\n 'clarinet',\n 'clarity',\n 'clash',\n 'clasp',\n 'class',\n 'clatter',\n 'clause',\n 'clavicle',\n 'claw',\n 'clay',\n 'clean',\n 'clear',\n 'cleat',\n 'cleaver',\n 'cleft',\n 'clench',\n 'clergyman',\n 'clerical',\n 'clerk',\n 'clever',\n 'clicker',\n 'client',\n 'climate',\n 'climatic',\n 'cling',\n 'clinic',\n 'clinking',\n 'clip',\n 'clique',\n 'cloak',\n 'clobber',\n 'clock',\n 'clone',\n 'cloning',\n 'closable',\n 'closure',\n 'clothes',\n 'clothing',\n 'cloud',\n 'clover',\n 'clubbed',\n 'clubbing',\n 'clubhouse',\n 'clump',\n 'clumsily',\n 'clumsy',\n 'clunky',\n 'clustered',\n 'clutch',\n 'clutter',\n 'coach',\n 'coagulant',\n 'coastal',\n 'coaster',\n 'coasting',\n 'coastland',\n 'coastline',\n 'coat',\n 'coauthor',\n 'cobalt',\n 'cobbler',\n 'cobweb',\n 'cocoa',\n 'coconut',\n 'cod',\n 'coeditor',\n 'coerce',\n 'coexist',\n 'coffee',\n 'cofounder',\n 'cognition',\n 'cognitive',\n 'cogwheel',\n 'coherence',\n 'coherent',\n 'cohesive',\n 'coil',\n 'coke',\n 'cola',\n 'cold',\n 'coleslaw',\n 'coliseum',\n 'collage',\n 'collapse',\n 'collar',\n 'collected',\n 'collector',\n 'collide',\n 'collie',\n 'collision',\n 'colonial',\n 'colonist',\n 'colonize',\n 'colony',\n 'colossal',\n 'colt',\n 'coma',\n 'come',\n 'comfort',\n 'comfy',\n 'comic',\n 'coming',\n 'comma',\n 'commence',\n 'commend',\n 'comment',\n 'commerce',\n 'commode',\n 'commodity',\n 'commodore',\n 'common',\n 'commotion',\n 'commute',\n 'commuting',\n 'compacted',\n 'compacter',\n 'compactly',\n 'compactor',\n 'companion',\n 'company',\n 'compare',\n 'compel',\n 'compile',\n 'comply',\n 'component',\n 'composed',\n 'composer',\n 'composite',\n 'compost',\n 'composure',\n 'compound',\n 'compress',\n 'comprised',\n 'computer',\n 'computing',\n 'comrade',\n 'concave',\n 'conceal',\n 'conceded',\n 'concept',\n 'concerned',\n 'concert',\n 'conch',\n 'concierge',\n 'concise',\n 'conclude',\n 'concrete',\n 'concur',\n 'condense',\n 'condiment',\n 'condition',\n 'condone',\n 'conducive',\n 'conductor',\n 'conduit',\n 'cone',\n 'confess',\n 'confetti',\n 'confidant',\n 'confident',\n 'confider',\n 'confiding',\n 'configure',\n 'confined',\n 'confining',\n 'confirm',\n 'conflict',\n 'conform',\n 'confound',\n 'confront',\n 'confused',\n 'confusing',\n 'confusion',\n 'congenial',\n 'congested',\n 'congrats',\n 'congress',\n 'conical',\n 'conjoined',\n 'conjure',\n 'conjuror',\n 'connected',\n 'connector',\n 'consensus',\n 'consent',\n 'console',\n 'consoling',\n 'consonant',\n 'constable',\n 'constant',\n 'constrain',\n 'constrict',\n 'construct',\n 'consult',\n 'consumer',\n 'consuming',\n 'contact',\n 'container',\n 'contempt',\n 'contend',\n 'contented',\n 'contently',\n 'contents',\n 'contest',\n 'context',\n 'contort',\n 'contour',\n 'contrite',\n 'control',\n 'contusion',\n 'convene',\n 'convent',\n 'copartner',\n 'cope',\n 'copied',\n 'copier',\n 'copilot',\n 'coping',\n 'copious',\n 'copper',\n 'copy',\n 'coral',\n 'cork',\n 'cornball',\n 'cornbread',\n 'corncob',\n 'cornea',\n 'corned',\n 'corner',\n 'cornfield',\n 'cornflake',\n 'cornhusk',\n 'cornmeal',\n 'cornstalk',\n 'corny',\n 'coronary',\n 'coroner',\n 'corporal',\n 'corporate',\n 'corral',\n 'correct',\n 'corridor',\n 'corrode',\n 'corroding',\n 'corrosive',\n 'corsage',\n 'corset',\n 'cortex',\n 'cosigner',\n 'cosmetics',\n 'cosmic',\n 'cosmos',\n 'cosponsor',\n 'cost',\n 'cottage',\n 'cotton',\n 'couch',\n 'cough',\n 'could',\n 'countable',\n 'countdown',\n 'counting',\n 'countless',\n 'country',\n 'county',\n 'courier',\n 'covenant',\n 'cover',\n 'coveted',\n 'coveting',\n 'coyness',\n 'cozily',\n 'coziness',\n 'cozy',\n 'crabbing',\n 'crabgrass',\n 'crablike',\n 'crabmeat',\n 'cradle',\n 'cradling',\n 'crafter',\n 'craftily',\n 'craftsman',\n 'craftwork',\n 'crafty',\n 'cramp',\n 'cranberry',\n 'crane',\n 'cranial',\n 'cranium',\n 'crank',\n 'crate',\n 'crave',\n 'craving',\n 'crawfish',\n 'crawlers',\n 'crawling',\n 'crayfish',\n 'crayon',\n 'crazed',\n 'crazily',\n 'craziness',\n 'crazy',\n 'creamed',\n 'creamer',\n 'creamlike',\n 'crease',\n 'creasing',\n 'creatable',\n 'create',\n 'creation',\n 'creative',\n 'creature',\n 'credible',\n 'credibly',\n 'credit',\n 'creed',\n 'creme',\n 'creole',\n 'crepe',\n 'crept',\n 'crescent',\n 'crested',\n 'cresting',\n 'crestless',\n 'crevice',\n 'crewless',\n 'crewman',\n 'crewmate',\n 'crib',\n 'cricket',\n 'cried',\n 'crier',\n 'crimp',\n 'crimson',\n 'cringe',\n 'cringing',\n 'crinkle',\n 'crinkly',\n 'crisped',\n 'crisping',\n 'crisply',\n 'crispness',\n 'crispy',\n 'criteria',\n 'critter',\n 'croak',\n 'crock',\n 'crook',\n 'croon',\n 'crop',\n 'cross',\n 'crouch',\n 'crouton',\n 'crowbar',\n 'crowd',\n 'crown',\n 'crucial',\n 'crudely',\n 'crudeness',\n 'cruelly',\n 'cruelness',\n 'cruelty',\n 'crumb',\n 'crummiest',\n 'crummy',\n 'crumpet',\n 'crumpled',\n 'cruncher',\n 'crunching',\n 'crunchy',\n 'crusader',\n 'crushable',\n 'crushed',\n 'crusher',\n 'crushing',\n 'crust',\n 'crux',\n 'crying',\n 'cryptic',\n 'crystal',\n 'cubbyhole',\n 'cube',\n 'cubical',\n 'cubicle',\n 'cucumber',\n 'cuddle',\n 'cuddly',\n 'cufflink',\n 'culinary',\n 'culminate',\n 'culpable',\n 'culprit',\n 'cultivate',\n 'cultural',\n 'culture',\n 'cupbearer',\n 'cupcake',\n 'cupid',\n 'cupped',\n 'cupping',\n 'curable',\n 'curator',\n 'curdle',\n 'cure',\n 'curfew',\n 'curing',\n 'curled',\n 'curler',\n 'curliness',\n 'curling',\n 'curly',\n 'curry',\n 'curse',\n 'cursive',\n 'cursor',\n 'curtain',\n 'curtly',\n 'curtsy',\n 'curvature',\n 'curve',\n 'curvy',\n 'cushy',\n 'cusp',\n 'cussed',\n 'custard',\n 'custodian',\n 'custody',\n 'customary',\n 'customer',\n 'customize',\n 'customs',\n 'cut',\n 'cycle',\n 'cyclic',\n 'cycling',\n 'cyclist',\n 'cylinder',\n 'cymbal',\n 'cytoplasm',\n 'cytoplast',\n 'dab',\n 'dad',\n 'daffodil',\n 'dagger',\n 'daily',\n 'daintily',\n 'dainty',\n 'dairy',\n 'daisy',\n 'dallying',\n 'dance',\n 'dancing',\n 'dandelion',\n 'dander',\n 'dandruff',\n 'dandy',\n 'danger',\n 'dangle',\n 'dangling',\n 'daredevil',\n 'dares',\n 'daringly',\n 'darkened',\n 'darkening',\n 'darkish',\n 'darkness',\n 'darkroom',\n 'darling',\n 'darn',\n 'dart',\n 'darwinism',\n 'dash',\n 'dastardly',\n 'data',\n 'datebook',\n 'dating',\n 'daughter',\n 'daunting',\n 'dawdler',\n 'dawn',\n 'daybed',\n 'daybreak',\n 'daycare',\n 'daydream',\n 'daylight',\n 'daylong',\n 'dayroom',\n 'daytime',\n 'dazzler',\n 'dazzling',\n 'deacon',\n 'deafening',\n 'deafness',\n 'dealer',\n 'dealing',\n 'dealmaker',\n 'dealt',\n 'dean',\n 'debatable',\n 'debate',\n 'debating',\n 'debit',\n 'debrief',\n 'debtless',\n 'debtor',\n 'debug',\n 'debunk',\n 'decade',\n 'decaf',\n 'decal',\n 'decathlon',\n 'decay',\n 'deceased',\n 'deceit',\n 'deceiver',\n 'deceiving',\n 'december',\n 'decency',\n 'decent',\n 'deception',\n 'deceptive',\n 'decibel',\n 'decidable',\n 'decimal',\n 'decimeter',\n 'decipher',\n 'deck',\n 'declared',\n 'decline',\n 'decode',\n 'decompose',\n 'decorated',\n 'decorator',\n 'decoy',\n 'decrease',\n 'decree',\n 'dedicate',\n 'dedicator',\n 'deduce',\n 'deduct',\n 'deed',\n 'deem',\n 'deepen',\n 'deeply',\n 'deepness',\n 'deface',\n 'defacing',\n 'defame',\n 'default',\n 'defeat',\n 'defection',\n 'defective',\n 'defendant',\n 'defender',\n 'defense',\n 'defensive',\n 'deferral',\n 'deferred',\n 'defiance',\n 'defiant',\n 'defile',\n 'defiling',\n 'define',\n 'definite',\n 'deflate',\n 'deflation',\n 'deflator',\n 'deflected',\n 'deflector',\n 'defog',\n 'deforest',\n 'defraud',\n 'defrost',\n 'deftly',\n 'defuse',\n 'defy',\n 'degraded',\n 'degrading',\n 'degrease',\n 'degree',\n 'dehydrate',\n 'deity',\n 'dejected',\n 'delay',\n 'delegate',\n 'delegator',\n 'delete',\n 'deletion',\n 'delicacy',\n 'delicate',\n 'delicious',\n 'delighted',\n 'delirious',\n 'delirium',\n 'deliverer',\n 'delivery',\n 'delouse',\n 'delta',\n 'deluge',\n 'delusion',\n 'deluxe',\n 'demanding',\n 'demeaning',\n 'demeanor',\n 'demise',\n 'democracy',\n 'democrat',\n 'demote',\n 'demotion',\n 'demystify',\n 'denatured',\n 'deniable',\n 'denial',\n 'denim',\n 'denote',\n 'dense',\n 'density',\n 'dental',\n 'dentist',\n 'denture',\n 'deny',\n 'deodorant',\n 'deodorize',\n 'departed',\n 'departure',\n 'depict',\n 'deplete',\n 'depletion',\n 'deplored',\n 'deploy',\n 'deport',\n 'depose',\n 'depraved',\n 'depravity',\n 'deprecate',\n 'depress',\n 'deprive',\n 'depth',\n 'deputize',\n 'deputy',\n 'derail',\n 'deranged',\n 'derby',\n 'derived',\n 'desecrate',\n 'deserve',\n 'deserving',\n 'designate',\n 'designed',\n 'designer',\n 'designing',\n 'deskbound',\n 'desktop',\n 'deskwork',\n 'desolate',\n 'despair',\n 'despise',\n 'despite',\n 'destiny',\n 'destitute',\n 'destruct',\n 'detached',\n 'detail',\n 'detection',\n 'detective',\n 'detector',\n 'detention',\n 'detergent',\n 'detest',\n 'detonate',\n 'detonator',\n 'detoxify',\n 'detract',\n 'deuce',\n 'devalue',\n 'deviancy',\n 'deviant',\n 'deviate',\n 'deviation',\n 'deviator',\n 'device',\n 'devious',\n 'devotedly',\n 'devotee',\n 'devotion',\n 'devourer',\n 'devouring',\n 'devoutly',\n 'dexterity',\n 'dexterous',\n 'diabetes',\n 'diabetic',\n 'diabolic',\n 'diagnoses',\n 'diagnosis',\n 'diagram',\n 'dial',\n 'diameter',\n 'diaper',\n 'diaphragm',\n 'diary',\n 'dice',\n 'dicing',\n 'dictate',\n 'dictation',\n 'dictator',\n 'difficult',\n 'diffused',\n 'diffuser',\n 'diffusion',\n 'diffusive',\n 'dig',\n 'dilation',\n 'diligence',\n 'diligent',\n 'dill',\n 'dilute',\n 'dime',\n 'diminish',\n 'dimly',\n 'dimmed',\n 'dimmer',\n 'dimness',\n 'dimple',\n 'diner',\n 'dingbat',\n 'dinghy',\n 'dinginess',\n 'dingo',\n 'dingy',\n 'dining',\n 'dinner',\n 'diocese',\n 'dioxide',\n 'diploma',\n 'dipped',\n 'dipper',\n 'dipping',\n 'directed',\n 'direction',\n 'directive',\n 'directly',\n 'directory',\n 'direness',\n 'dirtiness',\n 'disabled',\n 'disagree',\n 'disallow',\n 'disarm',\n 'disarray',\n 'disaster',\n 'disband',\n 'disbelief',\n 'disburse',\n 'discard',\n 'discern',\n 'discharge',\n 'disclose',\n 'discolor',\n 'discount',\n 'discourse',\n 'discover',\n 'discuss',\n 'disdain',\n 'disengage',\n 'disfigure',\n 'disgrace',\n 'dish',\n 'disinfect',\n 'disjoin',\n 'disk',\n 'dislike',\n 'disliking',\n 'dislocate',\n 'dislodge',\n 'disloyal',\n 'dismantle',\n 'dismay',\n 'dismiss',\n 'dismount',\n 'disobey',\n 'disorder',\n 'disown',\n 'disparate',\n 'disparity',\n 'dispatch',\n 'dispense',\n 'dispersal',\n 'dispersed',\n 'disperser',\n 'displace',\n 'display',\n 'displease',\n 'disposal',\n 'dispose',\n 'disprove',\n 'dispute',\n 'disregard',\n 'disrupt',\n 'dissuade',\n 'distance',\n 'distant',\n 'distaste',\n 'distill',\n 'distinct',\n 'distort',\n 'distract',\n 'distress',\n 'district',\n 'distrust',\n 'ditch',\n 'ditto',\n 'ditzy',\n 'dividable',\n 'divided',\n 'dividend',\n 'dividers',\n 'dividing',\n 'divinely',\n 'diving',\n 'divinity',\n 'divisible',\n 'divisibly',\n 'division',\n 'divisive',\n 'divorcee',\n 'dizziness',\n 'dizzy',\n 'doable',\n 'docile',\n 'dock',\n 'doctrine',\n 'document',\n 'dodge',\n 'dodgy',\n 'doily',\n 'doing',\n 'dole',\n 'dollar',\n 'dollhouse',\n 'dollop',\n 'dolly',\n 'dolphin',\n 'domain',\n 'domelike',\n 'domestic',\n 'dominion',\n 'dominoes',\n 'donated',\n 'donation',\n 'donator',\n 'donor',\n 'donut',\n 'doodle',\n 'doorbell',\n 'doorframe',\n 'doorknob',\n 'doorman',\n 'doormat',\n 'doornail',\n 'doorpost',\n 'doorstep',\n 'doorstop',\n 'doorway',\n 'doozy',\n 'dork',\n 'dormitory',\n 'dorsal',\n 'dosage',\n 'dose',\n 'dotted',\n 'doubling',\n 'douche',\n 'dove',\n 'down',\n 'dowry',\n 'doze',\n 'drab',\n 'dragging',\n 'dragonfly',\n 'dragonish',\n 'dragster',\n 'drainable',\n 'drainage',\n 'drained',\n 'drainer',\n 'drainpipe',\n 'dramatic',\n 'dramatize',\n 'drank',\n 'drapery',\n 'drastic',\n 'draw',\n 'dreaded',\n 'dreadful',\n 'dreadlock',\n 'dreamboat',\n 'dreamily',\n 'dreamland',\n 'dreamless',\n 'dreamlike',\n 'dreamt',\n 'dreamy',\n 'drearily',\n 'dreary',\n 'drench',\n 'dress',\n 'drew',\n 'dribble',\n 'dried',\n 'drier',\n 'drift',\n 'driller',\n 'drilling',\n 'drinkable',\n 'drinking',\n 'dripping',\n 'drippy',\n 'drivable',\n 'driven',\n 'driver',\n 'driveway',\n 'driving',\n 'drizzle',\n 'drizzly',\n 'drone',\n 'drool',\n 'droop',\n 'drop-down',\n 'dropbox',\n 'dropkick',\n 'droplet',\n 'dropout',\n 'dropper',\n 'drove',\n 'drown',\n 'drowsily',\n 'drudge',\n 'drum',\n 'dry',\n 'dubbed',\n 'dubiously',\n 'duchess',\n 'duckbill',\n 'ducking',\n 'duckling',\n 'ducktail',\n 'ducky',\n 'duct',\n 'dude',\n 'duffel',\n 'dugout',\n 'duh',\n 'duke',\n 'duller',\n 'dullness',\n 'duly',\n 'dumping',\n 'dumpling',\n 'dumpster',\n 'duo',\n 'dupe',\n 'duplex',\n 'duplicate',\n 'duplicity',\n 'durable',\n 'durably',\n 'duration',\n 'duress',\n 'during',\n 'dusk',\n 'dust',\n 'dutiful',\n 'duty',\n 'duvet',\n 'dwarf',\n 'dweeb',\n 'dwelled',\n 'dweller',\n 'dwelling',\n 'dwindle',\n 'dwindling',\n 'dynamic',\n 'dynamite',\n 'dynasty',\n 'dyslexia',\n 'dyslexic',\n 'each',\n 'eagle',\n 'earache',\n 'eardrum',\n 'earflap',\n 'earful',\n 'earlobe',\n 'early',\n 'earmark',\n 'earmuff',\n 'earphone',\n 'earpiece',\n 'earplugs',\n 'earring',\n 'earshot',\n 'earthen',\n 'earthlike',\n 'earthling',\n 'earthly',\n 'earthworm',\n 'earthy',\n 'earwig',\n 'easeful',\n 'easel',\n 'easiest',\n 'easily',\n 'easiness',\n 'easing',\n 'eastbound',\n 'eastcoast',\n 'easter',\n 'eastward',\n 'eatable',\n 'eaten',\n 'eatery',\n 'eating',\n 'eats',\n 'ebay',\n 'ebony',\n 'ebook',\n 'ecard',\n 'eccentric',\n 'echo',\n 'eclair',\n 'eclipse',\n 'ecologist',\n 'ecology',\n 'economic',\n 'economist',\n 'economy',\n 'ecosphere',\n 'ecosystem',\n 'edge',\n 'edginess',\n 'edging',\n 'edgy',\n 'edition',\n 'editor',\n 'educated',\n 'education',\n 'educator',\n 'eel',\n 'effective',\n 'effects',\n 'efficient',\n 'effort',\n 'eggbeater',\n 'egging',\n 'eggnog',\n 'eggplant',\n 'eggshell',\n 'egomaniac',\n 'egotism',\n 'egotistic',\n 'either',\n 'eject',\n 'elaborate',\n 'elastic',\n 'elated',\n 'elbow',\n 'eldercare',\n 'elderly',\n 'eldest',\n 'electable',\n 'election',\n 'elective',\n 'elephant',\n 'elevate',\n 'elevating',\n 'elevation',\n 'elevator',\n 'eleven',\n 'elf',\n 'eligible',\n 'eligibly',\n 'eliminate',\n 'elite',\n 'elitism',\n 'elixir',\n 'elk',\n 'ellipse',\n 'elliptic',\n 'elm',\n 'elongated',\n 'elope',\n 'eloquence',\n 'eloquent',\n 'elsewhere',\n 'elude',\n 'elusive',\n 'elves',\n 'email',\n 'embargo',\n 'embark',\n 'embassy',\n 'embattled',\n 'embellish',\n 'ember',\n 'embezzle',\n 'emblaze',\n 'emblem',\n 'embody',\n 'embolism',\n 'emboss',\n 'embroider',\n 'emcee',\n 'emerald',\n 'emergency',\n 'emission',\n 'emit',\n 'emote',\n 'emoticon',\n 'emotion',\n 'empathic',\n 'empathy',\n 'emperor',\n 'emphases',\n 'emphasis',\n 'emphasize',\n 'emphatic',\n 'empirical',\n 'employed',\n 'employee',\n 'employer',\n 'emporium',\n 'empower',\n 'emptier',\n 'emptiness',\n 'empty',\n 'emu',\n 'enable',\n 'enactment',\n 'enamel',\n 'enchanted',\n 'enchilada',\n 'encircle',\n 'enclose',\n 'enclosure',\n 'encode',\n 'encore',\n 'encounter',\n 'encourage',\n 'encroach',\n 'encrust',\n 'encrypt',\n 'endanger',\n 'endeared',\n 'endearing',\n 'ended',\n 'ending',\n 'endless',\n 'endnote',\n 'endocrine',\n 'endorphin',\n 'endorse',\n 'endowment',\n 'endpoint',\n 'endurable',\n 'endurance',\n 'enduring',\n 'energetic',\n 'energize',\n 'energy',\n 'enforced',\n 'enforcer',\n 'engaged',\n 'engaging',\n 'engine',\n 'engorge',\n 'engraved',\n 'engraver',\n 'engraving',\n 'engross',\n 'engulf',\n 'enhance',\n 'enigmatic',\n 'enjoyable',\n 'enjoyably',\n 'enjoyer',\n 'enjoying',\n 'enjoyment',\n 'enlarged',\n 'enlarging',\n 'enlighten',\n 'enlisted',\n 'enquirer',\n 'enrage',\n 'enrich',\n 'enroll',\n 'enslave',\n 'ensnare',\n 'ensure',\n 'entail',\n 'entangled',\n 'entering',\n 'entertain',\n 'enticing',\n 'entire',\n 'entitle',\n 'entity',\n 'entomb',\n 'entourage',\n 'entrap',\n 'entree',\n 'entrench',\n 'entrust',\n 'entryway',\n 'entwine',\n 'enunciate',\n 'envelope',\n 'enviable',\n 'enviably',\n 'envious',\n 'envision',\n 'envoy',\n 'envy',\n 'enzyme',\n 'epic',\n 'epidemic',\n 'epidermal',\n 'epidermis',\n 'epidural',\n 'epilepsy',\n 'epileptic',\n 'epilogue',\n 'epiphany',\n 'episode',\n 'equal',\n 'equate',\n 'equation',\n 'equator',\n 'equinox',\n 'equipment',\n 'equity',\n 'equivocal',\n 'eradicate',\n 'erasable',\n 'erased',\n 'eraser',\n 'erasure',\n 'ergonomic',\n 'errand',\n 'errant',\n 'erratic',\n 'error',\n 'erupt',\n 'escalate',\n 'escalator',\n 'escapable',\n 'escapade',\n 'escapist',\n 'escargot',\n 'eskimo',\n 'esophagus',\n 'espionage',\n 'espresso',\n 'esquire',\n 'essay',\n 'essence',\n 'essential',\n 'establish',\n 'estate',\n 'esteemed',\n 'estimate',\n 'estimator',\n 'estranged',\n 'estrogen',\n 'etching',\n 'eternal',\n 'eternity',\n 'ethanol',\n 'ether',\n 'ethically',\n 'ethics',\n 'euphemism',\n 'evacuate',\n 'evacuee',\n 'evade',\n 'evaluate',\n 'evaluator',\n 'evaporate',\n 'evasion',\n 'evasive',\n 'even',\n 'everglade',\n 'evergreen',\n 'everybody',\n 'everyday',\n 'everyone',\n 'evict',\n 'evidence',\n 'evident',\n 'evil',\n 'evoke',\n 'evolution',\n 'evolve',\n 'exact',\n 'exalted',\n 'example',\n 'excavate',\n 'excavator',\n 'exceeding',\n 'exception',\n 'excess',\n 'exchange',\n 'excitable',\n 'exciting',\n 'exclaim',\n 'exclude',\n 'excluding',\n 'exclusion',\n 'exclusive',\n 'excretion',\n 'excretory',\n 'excursion',\n 'excusable',\n 'excusably',\n 'excuse',\n 'exemplary',\n 'exemplify',\n 'exemption',\n 'exerciser',\n 'exert',\n 'exes',\n 'exfoliate',\n 'exhale',\n 'exhaust',\n 'exhume',\n 'exile',\n 'existing',\n 'exit',\n 'exodus',\n 'exonerate',\n 'exorcism',\n 'exorcist',\n 'expand',\n 'expanse',\n 'expansion',\n 'expansive',\n 'expectant',\n 'expedited',\n 'expediter',\n 'expel',\n 'expend',\n 'expenses',\n 'expensive',\n 'expert',\n 'expire',\n 'expiring',\n 'explain',\n 'expletive',\n 'explicit',\n 'explode',\n 'exploit',\n 'explore',\n 'exploring',\n 'exponent',\n 'exporter',\n 'exposable',\n 'expose',\n 'exposure',\n 'express',\n 'expulsion',\n 'exquisite',\n 'extended',\n 'extending',\n 'extent',\n 'extenuate',\n 'exterior',\n 'external',\n 'extinct',\n 'extortion',\n 'extradite',\n 'extras',\n 'extrovert',\n 'extrude',\n 'extruding',\n 'exuberant',\n 'fable',\n 'fabric',\n 'fabulous',\n 'facebook',\n 'facecloth',\n 'facedown',\n 'faceless',\n 'facelift',\n 'faceplate',\n 'faceted',\n 'facial',\n 'facility',\n 'facing',\n 'facsimile',\n 'faction',\n 'factoid',\n 'factor',\n 'factsheet',\n 'factual',\n 'faculty',\n 'fade',\n 'fading',\n 'failing',\n 'falcon',\n 'fall',\n 'false',\n 'falsify',\n 'fame',\n 'familiar',\n 'family',\n 'famine',\n 'famished',\n 'fanatic',\n 'fancied',\n 'fanciness',\n 'fancy',\n 'fanfare',\n 'fang',\n 'fanning',\n 'fantasize',\n 'fantastic',\n 'fantasy',\n 'fascism',\n 'fastball',\n 'faster',\n 'fasting',\n 'fastness',\n 'faucet',\n 'favorable',\n 'favorably',\n 'favored',\n 'favoring',\n 'favorite',\n 'fax',\n 'feast',\n 'federal',\n 'fedora',\n 'feeble',\n 'feed',\n 'feel',\n 'feisty',\n 'feline',\n 'felt-tip',\n 'feminine',\n 'feminism',\n 'feminist',\n 'feminize',\n 'femur',\n 'fence',\n 'fencing',\n 'fender',\n 'ferment',\n 'fernlike',\n 'ferocious',\n 'ferocity',\n 'ferret',\n 'ferris',\n 'ferry',\n 'fervor',\n 'fester',\n 'festival',\n 'festive',\n 'festivity',\n 'fetal',\n 'fetch',\n 'fever',\n 'fiber',\n 'fiction',\n 'fiddle',\n 'fiddling',\n 'fidelity',\n 'fidgeting',\n 'fidgety',\n 'fifteen',\n 'fifth',\n 'fiftieth',\n 'fifty',\n 'figment',\n 'figure',\n 'figurine',\n 'filing',\n 'filled',\n 'filler',\n 'filling',\n 'film',\n 'filter',\n 'filth',\n 'filtrate',\n 'finale',\n 'finalist',\n 'finalize',\n 'finally',\n 'finance',\n 'financial',\n 'finch',\n 'fineness',\n 'finer',\n 'finicky',\n 'finished',\n 'finisher',\n 'finishing',\n 'finite',\n 'finless',\n 'finlike',\n 'fiscally',\n 'fit',\n 'five',\n 'flaccid',\n 'flagman',\n 'flagpole',\n 'flagship',\n 'flagstick',\n 'flagstone',\n 'flail',\n 'flakily',\n 'flaky',\n 'flame',\n 'flammable',\n 'flanked',\n 'flanking',\n 'flannels',\n 'flap',\n 'flaring',\n 'flashback',\n 'flashbulb',\n 'flashcard',\n 'flashily',\n 'flashing',\n 'flashy',\n 'flask',\n 'flatbed',\n 'flatfoot',\n 'flatly',\n 'flatness',\n 'flatten',\n 'flattered',\n 'flatterer',\n 'flattery',\n 'flattop',\n 'flatware',\n 'flatworm',\n 'flavored',\n 'flavorful',\n 'flavoring',\n 'flaxseed',\n 'fled',\n 'fleshed',\n 'fleshy',\n 'flick',\n 'flier',\n 'flight',\n 'flinch',\n 'fling',\n 'flint',\n 'flip',\n 'flirt',\n 'float',\n 'flock',\n 'flogging',\n 'flop',\n 'floral',\n 'florist',\n 'floss',\n 'flounder',\n 'flyable',\n 'flyaway',\n 'flyer',\n 'flying',\n 'flyover',\n 'flypaper',\n 'foam',\n 'foe',\n 'fog',\n 'foil',\n 'folic',\n 'folk',\n 'follicle',\n 'follow',\n 'fondling',\n 'fondly',\n 'fondness',\n 'fondue',\n 'font',\n 'food',\n 'fool',\n 'footage',\n 'football',\n 'footbath',\n 'footboard',\n 'footer',\n 'footgear',\n 'foothill',\n 'foothold',\n 'footing',\n 'footless',\n 'footman',\n 'footnote',\n 'footpad',\n 'footpath',\n 'footprint',\n 'footrest',\n 'footsie',\n 'footsore',\n 'footwear',\n 'footwork',\n 'fossil',\n 'foster',\n 'founder',\n 'founding',\n 'fountain',\n 'fox',\n 'foyer',\n 'fraction',\n 'fracture',\n 'fragile',\n 'fragility',\n 'fragment',\n 'fragrance',\n 'fragrant',\n 'frail',\n 'frame',\n 'framing',\n 'frantic',\n 'fraternal',\n 'frayed',\n 'fraying',\n 'frays',\n 'freckled',\n 'freckles',\n 'freebase',\n 'freebee',\n 'freebie',\n 'freedom',\n 'freefall',\n 'freehand',\n 'freeing',\n 'freeload',\n 'freely',\n 'freemason',\n 'freeness',\n 'freestyle',\n 'freeware',\n 'freeway',\n 'freewill',\n 'freezable',\n 'freezing',\n 'freight',\n 'french',\n 'frenzied',\n 'frenzy',\n 'frequency',\n 'frequent',\n 'fresh',\n 'fretful',\n 'fretted',\n 'friction',\n 'friday',\n 'fridge',\n 'fried',\n 'friend',\n 'frighten',\n 'frightful',\n 'frigidity',\n 'frigidly',\n 'frill',\n 'fringe',\n 'frisbee',\n 'frisk',\n 'fritter',\n 'frivolous',\n 'frolic',\n 'from',\n 'front',\n 'frostbite',\n 'frosted',\n 'frostily',\n 'frosting',\n 'frostlike',\n 'frosty',\n 'froth',\n 'frown',\n 'frozen',\n 'fructose',\n 'frugality',\n 'frugally',\n 'fruit',\n 'frustrate',\n 'frying',\n 'gab',\n 'gaffe',\n 'gag',\n 'gainfully',\n 'gaining',\n 'gains',\n 'gala',\n 'gallantly',\n 'galleria',\n 'gallery',\n 'galley',\n 'gallon',\n 'gallows',\n 'gallstone',\n 'galore',\n 'galvanize',\n 'gambling',\n 'game',\n 'gaming',\n 'gamma',\n 'gander',\n 'gangly',\n 'gangrene',\n 'gangway',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'gargle',\n 'garland',\n 'garlic',\n 'garment',\n 'garnet',\n 'garnish',\n 'garter',\n 'gas',\n 'gatherer',\n 'gathering',\n 'gating',\n 'gauging',\n 'gauntlet',\n 'gauze',\n 'gave',\n 'gawk',\n 'gazing',\n 'gear',\n 'gecko',\n 'geek',\n 'geiger',\n 'gem',\n 'gender',\n 'generic',\n 'generous',\n 'genetics',\n 'genre',\n 'gentile',\n 'gentleman',\n 'gently',\n 'gents',\n 'geography',\n 'geologic',\n 'geologist',\n 'geology',\n 'geometric',\n 'geometry',\n 'geranium',\n 'gerbil',\n 'geriatric',\n 'germicide',\n 'germinate',\n 'germless',\n 'germproof',\n 'gestate',\n 'gestation',\n 'gesture',\n 'getaway',\n 'getting',\n 'getup',\n 'giant',\n 'gibberish',\n 'giblet',\n 'giddily',\n 'giddiness',\n 'giddy',\n 'gift',\n 'gigabyte',\n 'gigahertz',\n 'gigantic',\n 'giggle',\n 'giggling',\n 'giggly',\n 'gigolo',\n 'gilled',\n 'gills',\n 'gimmick',\n 'girdle',\n 'giveaway',\n 'given',\n 'giver',\n 'giving',\n 'gizmo',\n 'gizzard',\n 'glacial',\n 'glacier',\n 'glade',\n 'gladiator',\n 'gladly',\n 'glamorous',\n 'glamour',\n 'glance',\n 'glancing',\n 'glandular',\n 'glare',\n 'glaring',\n 'glass',\n 'glaucoma',\n 'glazing',\n 'gleaming',\n 'gleeful',\n 'glider',\n 'gliding',\n 'glimmer',\n 'glimpse',\n 'glisten',\n 'glitch',\n 'glitter',\n 'glitzy',\n 'gloater',\n 'gloating',\n 'gloomily',\n 'gloomy',\n 'glorified',\n 'glorifier',\n 'glorify',\n 'glorious',\n 'glory',\n 'gloss',\n 'glove',\n 'glowing',\n 'glowworm',\n 'glucose',\n 'glue',\n 'gluten',\n 'glutinous',\n 'glutton',\n 'gnarly',\n 'gnat',\n 'goal',\n 'goatskin',\n 'goes',\n 'goggles',\n 'going',\n 'goldfish',\n 'goldmine',\n 'goldsmith',\n 'golf',\n 'goliath',\n 'gonad',\n 'gondola',\n 'gone',\n 'gong',\n 'good',\n 'gooey',\n 'goofball',\n 'goofiness',\n 'goofy',\n 'google',\n 'goon',\n 'gopher',\n 'gore',\n 'gorged',\n 'gorgeous',\n 'gory',\n 'gosling',\n 'gossip',\n 'gothic',\n 'gotten',\n 'gout',\n 'gown',\n 'grab',\n 'graceful',\n 'graceless',\n 'gracious',\n 'gradation',\n 'graded',\n 'grader',\n 'gradient',\n 'grading',\n 'gradually',\n 'graduate',\n 'graffiti',\n 'grafted',\n 'grafting',\n 'grain',\n 'granddad',\n 'grandkid',\n 'grandly',\n 'grandma',\n 'grandpa',\n 'grandson',\n 'granite',\n 'granny',\n 'granola',\n 'grant',\n 'granular',\n 'grape',\n 'graph',\n 'grapple',\n 'grappling',\n 'grasp',\n 'grass',\n 'gratified',\n 'gratify',\n 'grating',\n 'gratitude',\n 'gratuity',\n 'gravel',\n 'graveness',\n 'graves',\n 'graveyard',\n 'gravitate',\n 'gravity',\n 'gravy',\n 'gray',\n 'grazing',\n 'greasily',\n 'greedily',\n 'greedless',\n 'greedy',\n 'green',\n 'greeter',\n 'greeting',\n 'grew',\n 'greyhound',\n 'grid',\n 'grief',\n 'grievance',\n 'grieving',\n 'grievous',\n 'grill',\n 'grimace',\n 'grimacing',\n 'grime',\n 'griminess',\n 'grimy',\n 'grinch',\n 'grinning',\n 'grip',\n 'gristle',\n 'grit',\n 'groggily',\n 'groggy',\n 'groin',\n 'groom',\n 'groove',\n 'grooving',\n 'groovy',\n 'grope',\n 'ground',\n 'grouped',\n 'grout',\n 'grove',\n 'grower',\n 'growing',\n 'growl',\n 'grub',\n 'grudge',\n 'grudging',\n 'grueling',\n 'gruffly',\n 'grumble',\n 'grumbling',\n 'grumbly',\n 'grumpily',\n 'grunge',\n 'grunt',\n 'guacamole',\n 'guidable',\n 'guidance',\n 'guide',\n 'guiding',\n 'guileless',\n 'guise',\n 'gulf',\n 'gullible',\n 'gully',\n 'gulp',\n 'gumball',\n 'gumdrop',\n 'gumminess',\n 'gumming',\n 'gummy',\n 'gurgle',\n 'gurgling',\n 'guru',\n 'gush',\n 'gusto',\n 'gusty',\n 'gutless',\n 'guts',\n 'gutter',\n 'guy',\n 'guzzler',\n 'gyration',\n 'habitable',\n 'habitant',\n 'habitat',\n 'habitual',\n 'hacked',\n 'hacker',\n 'hacking',\n 'hacksaw',\n 'had',\n 'haggler',\n 'haiku',\n 'half',\n 'halogen',\n 'halt',\n 'halved',\n 'halves',\n 'hamburger',\n 'hamlet',\n 'hammock',\n 'hamper',\n 'hamster',\n 'hamstring',\n 'handbag',\n 'handball',\n 'handbook',\n 'handbrake',\n 'handcart',\n 'handclap',\n 'handclasp',\n 'handcraft',\n 'handcuff',\n 'handed',\n 'handful',\n 'handgrip',\n 'handgun',\n 'handheld',\n 'handiness',\n 'handiwork',\n 'handlebar',\n 'handled',\n 'handler',\n 'handling',\n 'handmade',\n 'handoff',\n 'handpick',\n 'handprint',\n 'handrail',\n 'handsaw',\n 'handset',\n 'handsfree',\n 'handshake',\n 'handstand',\n 'handwash',\n 'handwork',\n 'handwoven',\n 'handwrite',\n 'handyman',\n 'hangnail',\n 'hangout',\n 'hangover',\n 'hangup',\n 'hankering',\n 'hankie',\n 'hanky',\n 'haphazard',\n 'happening',\n 'happier',\n 'happiest',\n 'happily',\n 'happiness',\n 'happy',\n 'harbor',\n 'hardcopy',\n 'hardcore',\n 'hardcover',\n 'harddisk',\n 'hardened',\n 'hardener',\n 'hardening',\n 'hardhat',\n 'hardhead',\n 'hardiness',\n 'hardly',\n 'hardness',\n 'hardship',\n 'hardware',\n 'hardwired',\n 'hardwood',\n 'hardy',\n 'harmful',\n 'harmless',\n 'harmonica',\n 'harmonics',\n 'harmonize',\n 'harmony',\n 'harness',\n 'harpist',\n 'harsh',\n 'harvest',\n 'hash',\n 'hassle',\n 'haste',\n 'hastily',\n 'hastiness',\n 'hasty',\n 'hatbox',\n 'hatchback',\n 'hatchery',\n 'hatchet',\n 'hatching',\n 'hatchling',\n 'hate',\n 'hatless',\n 'hatred',\n 'haunt',\n 'haven',\n 'hazard',\n 'hazelnut',\n 'hazily',\n 'haziness',\n 'hazing',\n 'hazy',\n 'headache',\n 'headband',\n 'headboard',\n 'headcount',\n 'headdress',\n 'headed',\n 'header',\n 'headfirst',\n 'headgear',\n 'heading',\n 'headlamp',\n 'headless',\n 'headlock',\n 'headphone',\n 'headpiece',\n 'headrest',\n 'headroom',\n 'headscarf',\n 'headset',\n 'headsman',\n 'headstand',\n 'headstone',\n 'headway',\n 'headwear',\n 'heap',\n 'heat',\n 'heave',\n 'heavily',\n 'heaviness',\n 'heaving',\n 'hedge',\n 'hedging',\n 'heftiness',\n 'hefty',\n 'helium',\n 'helmet',\n 'helper',\n 'helpful',\n 'helping',\n 'helpless',\n 'helpline',\n 'hemlock',\n 'hemstitch',\n 'hence',\n 'henchman',\n 'henna',\n 'herald',\n 'herbal',\n 'herbicide',\n 'herbs',\n 'heritage',\n 'hermit',\n 'heroics',\n 'heroism',\n 'herring',\n 'herself',\n 'hertz',\n 'hesitancy',\n 'hesitant',\n 'hesitate',\n 'hexagon',\n 'hexagram',\n 'hubcap',\n 'huddle',\n 'huddling',\n 'huff',\n 'hug',\n 'hula',\n 'hulk',\n 'hull',\n 'human',\n 'humble',\n 'humbling',\n 'humbly',\n 'humid',\n 'humiliate',\n 'humility',\n 'humming',\n 'hummus',\n 'humongous',\n 'humorist',\n 'humorless',\n 'humorous',\n 'humpback',\n 'humped',\n 'humvee',\n 'hunchback',\n 'hundredth',\n 'hunger',\n 'hungrily',\n 'hungry',\n 'hunk',\n 'hunter',\n 'hunting',\n 'huntress',\n 'huntsman',\n 'hurdle',\n 'hurled',\n 'hurler',\n 'hurling',\n 'hurray',\n 'hurricane',\n 'hurried',\n 'hurry',\n 'hurt',\n 'husband',\n 'hush',\n 'husked',\n 'huskiness',\n 'hut',\n 'hybrid',\n 'hydrant',\n 'hydrated',\n 'hydration',\n 'hydrogen',\n 'hydroxide',\n 'hyperlink',\n 'hypertext',\n 'hyphen',\n 'hypnoses',\n 'hypnosis',\n 'hypnotic',\n 'hypnotism',\n 'hypnotist',\n 'hypnotize',\n 'hypocrisy',\n 'hypocrite',\n 'ibuprofen',\n 'ice',\n 'iciness',\n 'icing',\n 'icky',\n 'icon',\n 'icy',\n 'idealism',\n 'idealist',\n 'idealize',\n 'ideally',\n 'idealness',\n 'identical',\n 'identify',\n 'identity',\n 'ideology',\n 'idiocy',\n 'idiom',\n 'idly',\n 'igloo',\n 'ignition',\n 'ignore',\n 'iguana',\n 'illicitly',\n 'illusion',\n 'illusive',\n 'image',\n 'imaginary',\n 'imagines',\n 'imaging',\n 'imbecile',\n 'imitate',\n 'imitation',\n 'immature',\n 'immerse',\n 'immersion',\n 'imminent',\n 'immobile',\n 'immodest',\n 'immorally',\n 'immortal',\n 'immovable',\n 'immovably',\n 'immunity',\n 'immunize',\n 'impaired',\n 'impale',\n 'impart',\n 'impatient',\n 'impeach',\n 'impeding',\n 'impending',\n 'imperfect',\n 'imperial',\n 'impish',\n 'implant',\n 'implement',\n 'implicate',\n 'implicit',\n 'implode',\n 'implosion',\n 'implosive',\n 'imply',\n 'impolite',\n 'important',\n 'importer',\n 'impose',\n 'imposing',\n 'impotence',\n 'impotency',\n 'impotent',\n 'impound',\n 'imprecise',\n 'imprint',\n 'imprison',\n 'impromptu',\n 'improper',\n 'improve',\n 'improving',\n 'improvise',\n 'imprudent',\n 'impulse',\n 'impulsive',\n 'impure',\n 'impurity',\n 'iodine',\n 'iodize',\n 'ion',\n 'ipad',\n 'iphone',\n 'ipod',\n 'irate',\n 'irk',\n 'iron',\n 'irregular',\n 'irrigate',\n 'irritable',\n 'irritably',\n 'irritant',\n 'irritate',\n 'islamic',\n 'islamist',\n 'isolated',\n 'isolating',\n 'isolation',\n 'isotope',\n 'issue',\n 'issuing',\n 'italicize',\n 'italics',\n 'item',\n 'itinerary',\n 'itunes',\n 'ivory',\n 'ivy',\n 'jab',\n 'jackal',\n 'jacket',\n 'jackknife',\n 'jackpot',\n 'jailbird',\n 'jailbreak',\n 'jailer',\n 'jailhouse',\n 'jalapeno',\n 'jam',\n 'janitor',\n 'january',\n 'jargon',\n 'jarring',\n 'jasmine',\n 'jaundice',\n 'jaunt',\n 'java',\n 'jawed',\n 'jawless',\n 'jawline',\n 'jaws',\n 'jaybird',\n 'jaywalker',\n 'jazz',\n 'jeep',\n 'jeeringly',\n 'jellied',\n 'jelly',\n 'jersey',\n 'jester',\n 'jet',\n 'jiffy',\n 'jigsaw',\n 'jimmy',\n 'jingle',\n 'jingling',\n 'jinx',\n 'jitters',\n 'jittery',\n 'job',\n 'jockey',\n 'jockstrap',\n 'jogger',\n 'jogging',\n 'john',\n 'joining',\n 'jokester',\n 'jokingly',\n 'jolliness',\n 'jolly',\n 'jolt',\n 'jot',\n 'jovial',\n 'joyfully',\n 'joylessly',\n 'joyous',\n 'joyride',\n 'joystick',\n 'jubilance',\n 'jubilant',\n 'judge',\n 'judgingly',\n 'judicial',\n 'judiciary',\n 'judo',\n 'juggle',\n 'juggling',\n 'jugular',\n 'juice',\n 'juiciness',\n 'juicy',\n 'jujitsu',\n 'jukebox',\n 'july',\n 'jumble',\n 'jumbo',\n 'jump',\n 'junction',\n 'juncture',\n 'june',\n 'junior',\n 'juniper',\n 'junkie',\n 'junkman',\n 'junkyard',\n 'jurist',\n 'juror',\n 'jury',\n 'justice',\n 'justifier',\n 'justify',\n 'justly',\n 'justness',\n 'juvenile',\n 'kabob',\n 'kangaroo',\n 'karaoke',\n 'karate',\n 'karma',\n 'kebab',\n 'keenly',\n 'keenness',\n 'keep',\n 'keg',\n 'kelp',\n 'kennel',\n 'kept',\n 'kerchief',\n 'kerosene',\n 'kettle',\n 'kick',\n 'kiln',\n 'kilobyte',\n 'kilogram',\n 'kilometer',\n 'kilowatt',\n 'kilt',\n 'kimono',\n 'kindle',\n 'kindling',\n 'kindly',\n 'kindness',\n 'kindred',\n 'kinetic',\n 'kinfolk',\n 'king',\n 'kinship',\n 'kinsman',\n 'kinswoman',\n 'kissable',\n 'kisser',\n 'kissing',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kitty',\n 'kiwi',\n 'kleenex',\n 'knapsack',\n 'knee',\n 'knelt',\n 'knickers',\n 'knoll',\n 'koala',\n 'kooky',\n 'kosher',\n 'krypton',\n 'kudos',\n 'kung',\n 'labored',\n 'laborer',\n 'laboring',\n 'laborious',\n 'labrador',\n 'ladder',\n 'ladies',\n 'ladle',\n 'ladybug',\n 'ladylike',\n 'lagged',\n 'lagging',\n 'lagoon',\n 'lair',\n 'lake',\n 'lance',\n 'landed',\n 'landfall',\n 'landfill',\n 'landing',\n 'landlady',\n 'landless',\n 'landline',\n 'landlord',\n 'landmark',\n 'landmass',\n 'landmine',\n 'landowner',\n 'landscape',\n 'landside',\n 'landslide',\n 'language',\n 'lankiness',\n 'lanky',\n 'lantern',\n 'lapdog',\n 'lapel',\n 'lapped',\n 'lapping',\n 'laptop',\n 'lard',\n 'large',\n 'lark',\n 'lash',\n 'lasso',\n 'last',\n 'latch',\n 'late',\n 'lather',\n 'latitude',\n 'latrine',\n 'latter',\n 'latticed',\n 'launch',\n 'launder',\n 'laundry',\n 'laurel',\n 'lavender',\n 'lavish',\n 'laxative',\n 'lazily',\n 'laziness',\n 'lazy',\n 'lecturer',\n 'left',\n 'legacy',\n 'legal',\n 'legend',\n 'legged',\n 'leggings',\n 'legible',\n 'legibly',\n 'legislate',\n 'lego',\n 'legroom',\n 'legume',\n 'legwarmer',\n 'legwork',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'lent',\n 'leotard',\n 'lesser',\n 'letdown',\n 'lethargic',\n 'lethargy',\n 'letter',\n 'lettuce',\n 'level',\n 'leverage',\n 'levers',\n 'levitate',\n 'levitator',\n 'liability',\n 'liable',\n 'liberty',\n 'librarian',\n 'library',\n 'licking',\n 'licorice',\n 'lid',\n 'life',\n 'lifter',\n 'lifting',\n 'liftoff',\n 'ligament',\n 'likely',\n 'likeness',\n 'likewise',\n 'liking',\n 'lilac',\n 'lilly',\n 'lily',\n 'limb',\n 'limeade',\n 'limelight',\n 'limes',\n 'limit',\n 'limping',\n 'limpness',\n 'line',\n 'lingo',\n 'linguini',\n 'linguist',\n 'lining',\n 'linked',\n 'linoleum',\n 'linseed',\n 'lint',\n 'lion',\n 'lip',\n 'liquefy',\n 'liqueur',\n 'liquid',\n 'lisp',\n 'list',\n 'litigate',\n 'litigator',\n 'litmus',\n 'litter',\n 'little',\n 'livable',\n 'lived',\n 'lively',\n 'liver',\n 'livestock',\n 'lividly',\n 'living',\n 'lizard',\n 'lubricant',\n 'lubricate',\n 'lucid',\n 'luckily',\n 'luckiness',\n 'luckless',\n 'lucrative',\n 'ludicrous',\n 'lugged',\n 'lukewarm',\n 'lullaby',\n 'lumber',\n 'luminance',\n 'luminous',\n 'lumpiness',\n 'lumping',\n 'lumpish',\n 'lunacy',\n 'lunar',\n 'lunchbox',\n 'luncheon',\n 'lunchroom',\n 'lunchtime',\n 'lung',\n 'lurch',\n 'lure',\n 'luridness',\n 'lurk',\n 'lushly',\n 'lushness',\n 'luster',\n 'lustfully',\n 'lustily',\n 'lustiness',\n 'lustrous',\n 'lusty',\n 'luxurious',\n 'luxury',\n 'lying',\n 'lyrically',\n 'lyricism',\n 'lyricist',\n 'lyrics',\n 'macarena',\n 'macaroni',\n 'macaw',\n 'mace',\n 'machine',\n 'machinist',\n 'magazine',\n 'magenta',\n 'maggot',\n 'magical',\n 'magician',\n 'magma',\n 'magnesium',\n 'magnetic',\n 'magnetism',\n 'magnetize',\n 'magnifier',\n 'magnify',\n 'magnitude',\n 'magnolia',\n 'mahogany',\n 'maimed',\n 'majestic',\n 'majesty',\n 'majorette',\n 'majority',\n 'makeover',\n 'maker',\n 'makeshift',\n 'making',\n 'malformed',\n 'malt',\n 'mama',\n 'mammal',\n 'mammary',\n 'mammogram',\n 'manager',\n 'managing',\n 'manatee',\n 'mandarin',\n 'mandate',\n 'mandatory',\n 'mandolin',\n 'manger',\n 'mangle',\n 'mango',\n 'mangy',\n 'manhandle',\n 'manhole',\n 'manhood',\n 'manhunt',\n 'manicotti',\n 'manicure',\n 'manifesto',\n 'manila',\n 'mankind',\n 'manlike',\n 'manliness',\n 'manly',\n 'manmade',\n 'manned',\n 'mannish',\n 'manor',\n 'manpower',\n 'mantis',\n 'mantra',\n 'manual',\n 'many',\n 'map',\n 'marathon',\n 'marauding',\n 'marbled',\n 'marbles',\n 'marbling',\n 'march',\n 'mardi',\n 'margarine',\n 'margarita',\n 'margin',\n 'marigold',\n 'marina',\n 'marine',\n 'marital',\n 'maritime',\n 'marlin',\n 'marmalade',\n 'maroon',\n 'married',\n 'marrow',\n 'marry',\n 'marshland',\n 'marshy',\n 'marsupial',\n 'marvelous',\n 'marxism',\n 'mascot',\n 'masculine',\n 'mashed',\n 'mashing',\n 'massager',\n 'masses',\n 'massive',\n 'mastiff',\n 'matador',\n 'matchbook',\n 'matchbox',\n 'matcher',\n 'matching',\n 'matchless',\n 'material',\n 'maternal',\n 'maternity',\n 'math',\n 'mating',\n 'matriarch',\n 'matrimony',\n 'matrix',\n 'matron',\n 'matted',\n 'matter',\n 'maturely',\n 'maturing',\n 'maturity',\n 'mauve',\n 'maverick',\n 'maximize',\n 'maximum',\n 'maybe',\n 'mayday',\n 'mayflower',\n 'moaner',\n 'moaning',\n 'mobile',\n 'mobility',\n 'mobilize',\n 'mobster',\n 'mocha',\n 'mocker',\n 'mockup',\n 'modified',\n 'modify',\n 'modular',\n 'modulator',\n 'module',\n 'moisten',\n 'moistness',\n 'moisture',\n 'molar',\n 'molasses',\n 'mold',\n 'molecular',\n 'molecule',\n 'molehill',\n 'mollusk',\n 'mom',\n 'monastery',\n 'monday',\n 'monetary',\n 'monetize',\n 'moneybags',\n 'moneyless',\n 'moneywise',\n 'mongoose',\n 'mongrel',\n 'monitor',\n 'monkhood',\n 'monogamy',\n 'monogram',\n 'monologue',\n 'monopoly',\n 'monorail',\n 'monotone',\n 'monotype',\n 'monoxide',\n 'monsieur',\n 'monsoon',\n 'monstrous',\n 'monthly',\n 'monument',\n 'moocher',\n 'moodiness',\n 'moody',\n 'mooing',\n 'moonbeam',\n 'mooned',\n 'moonlight',\n 'moonlike',\n 'moonlit',\n 'moonrise',\n 'moonscape',\n 'moonshine',\n 'moonstone',\n 'moonwalk',\n 'mop',\n 'morale',\n 'morality',\n 'morally',\n 'morbidity',\n 'morbidly',\n 'morphine',\n 'morphing',\n 'morse',\n 'mortality',\n 'mortally',\n 'mortician',\n 'mortified',\n 'mortify',\n 'mortuary',\n 'mosaic',\n 'mossy',\n 'most',\n 'mothball',\n 'mothproof',\n 'motion',\n 'motivate',\n 'motivator',\n 'motive',\n 'motocross',\n 'motor',\n 'motto',\n 'mountable',\n 'mountain',\n 'mounted',\n 'mounting',\n 'mourner',\n 'mournful',\n 'mouse',\n 'mousiness',\n 'moustache',\n 'mousy',\n 'mouth',\n 'movable',\n 'move',\n 'movie',\n 'moving',\n 'mower',\n 'mowing',\n 'much',\n 'muck',\n 'mud',\n 'mug',\n 'mulberry',\n 'mulch',\n 'mule',\n 'mulled',\n 'mullets',\n 'multiple',\n 'multiply',\n 'multitask',\n 'multitude',\n 'mumble',\n 'mumbling',\n 'mumbo',\n 'mummified',\n 'mummify',\n 'mummy',\n 'mumps',\n 'munchkin',\n 'mundane',\n 'municipal',\n 'muppet',\n 'mural',\n 'murkiness',\n 'murky',\n 'murmuring',\n 'muscular',\n 'museum',\n 'mushily',\n 'mushiness',\n 'mushroom',\n 'mushy',\n 'music',\n 'musket',\n 'muskiness',\n 'musky',\n 'mustang',\n 'mustard',\n 'muster',\n 'mustiness',\n 'musty',\n 'mutable',\n 'mutate',\n 'mutation',\n 'mute',\n 'mutilated',\n 'mutilator',\n 'mutiny',\n 'mutt',\n 'mutual',\n 'muzzle',\n 'myself',\n 'myspace',\n 'mystified',\n 'mystify',\n 'myth',\n 'nacho',\n 'nag',\n 'nail',\n 'name',\n 'naming',\n 'nanny',\n 'nanometer',\n 'nape',\n 'napkin',\n 'napped',\n 'napping',\n 'nappy',\n 'narrow',\n 'nastily',\n 'nastiness',\n 'national',\n 'native',\n 'nativity',\n 'natural',\n 'nature',\n 'naturist',\n 'nautical',\n 'navigate',\n 'navigator',\n 'navy',\n 'nearby',\n 'nearest',\n 'nearly',\n 'nearness',\n 'neatly',\n 'neatness',\n 'nebula',\n 'nebulizer',\n 'nectar',\n 'negate',\n 'negation',\n 'negative',\n 'neglector',\n 'negligee',\n 'negligent',\n 'negotiate',\n 'nemeses',\n 'nemesis',\n 'neon',\n 'nephew',\n 'nerd',\n 'nervous',\n 'nervy',\n 'nest',\n 'net',\n 'neurology',\n 'neuron',\n 'neurosis',\n 'neurotic',\n 'neuter',\n 'neutron',\n 'never',\n 'next',\n 'nibble',\n 'nickname',\n 'nicotine',\n 'niece',\n 'nifty',\n 'nimble',\n 'nimbly',\n 'nineteen',\n 'ninetieth',\n 'ninja',\n 'nintendo',\n 'ninth',\n 'nuclear',\n 'nuclei',\n 'nucleus',\n 'nugget',\n 'nullify',\n 'number',\n 'numbing',\n 'numbly',\n 'numbness',\n 'numeral',\n 'numerate',\n 'numerator',\n 'numeric',\n 'numerous',\n 'nuptials',\n 'nursery',\n 'nursing',\n 'nurture',\n 'nutcase',\n 'nutlike',\n 'nutmeg',\n 'nutrient',\n 'nutshell',\n 'nuttiness',\n 'nutty',\n 'nuzzle',\n 'nylon',\n 'oaf',\n 'oak',\n 'oasis',\n 'oat',\n 'obedience',\n 'obedient',\n 'obituary',\n 'object',\n 'obligate',\n 'obliged',\n 'oblivion',\n 'oblivious',\n 'oblong',\n 'obnoxious',\n 'oboe',\n 'obscure',\n 'obscurity',\n 'observant',\n 'observer',\n 'observing',\n 'obsessed',\n 'obsession',\n 'obsessive',\n 'obsolete',\n 'obstacle',\n 'obstinate',\n 'obstruct',\n 'obtain',\n 'obtrusive',\n 'obtuse',\n 'obvious',\n 'occultist',\n 'occupancy',\n 'occupant',\n 'occupier',\n 'occupy',\n 'ocean',\n 'ocelot',\n 'octagon',\n 'octane',\n 'october',\n 'octopus',\n 'ogle',\n 'oil',\n 'oink',\n 'ointment',\n 'okay',\n 'old',\n 'olive',\n 'olympics',\n 'omega',\n 'omen',\n 'ominous',\n 'omission',\n 'omit',\n 'omnivore',\n 'onboard',\n 'oncoming',\n 'ongoing',\n 'onion',\n 'online',\n 'onlooker',\n 'only',\n 'onscreen',\n 'onset',\n 'onshore',\n 'onslaught',\n 'onstage',\n 'onto',\n 'onward',\n 'onyx',\n 'oops',\n 'ooze',\n 'oozy',\n 'opacity',\n 'opal',\n 'open',\n 'operable',\n 'operate',\n 'operating',\n 'operation',\n 'operative',\n 'operator',\n 'opium',\n 'opossum',\n 'opponent',\n 'oppose',\n 'opposing',\n 'opposite',\n 'oppressed',\n 'oppressor',\n 'opt',\n 'opulently',\n 'osmosis',\n 'other',\n 'otter',\n 'ouch',\n 'ought',\n 'ounce',\n 'outage',\n 'outback',\n 'outbid',\n 'outboard',\n 'outbound',\n 'outbreak',\n 'outburst',\n 'outcast',\n 'outclass',\n 'outcome',\n 'outdated',\n 'outdoors',\n 'outer',\n 'outfield',\n 'outfit',\n 'outflank',\n 'outgoing',\n 'outgrow',\n 'outhouse',\n 'outing',\n 'outlast',\n 'outlet',\n 'outline',\n 'outlook',\n 'outlying',\n 'outmatch',\n 'outmost',\n 'outnumber',\n 'outplayed',\n 'outpost',\n 'outpour',\n 'output',\n 'outrage',\n 'outrank',\n 'outreach',\n 'outright',\n 'outscore',\n 'outsell',\n 'outshine',\n 'outshoot',\n 'outsider',\n 'outskirts',\n 'outsmart',\n 'outsource',\n 'outspoken',\n 'outtakes',\n 'outthink',\n 'outward',\n 'outweigh',\n 'outwit',\n 'oval',\n 'ovary',\n 'oven',\n 'overact',\n 'overall',\n 'overarch',\n 'overbid',\n 'overbill',\n 'overbite',\n 'overblown',\n 'overboard',\n 'overbook',\n 'overbuilt',\n 'overcast',\n 'overcoat',\n 'overcome',\n 'overcook',\n 'overcrowd',\n 'overdraft',\n 'overdrawn',\n 'overdress',\n 'overdrive',\n 'overdue',\n 'overeager',\n 'overeater',\n 'overexert',\n 'overfed',\n 'overfeed',\n 'overfill',\n 'overflow',\n 'overfull',\n 'overgrown',\n 'overhand',\n 'overhang',\n 'overhaul',\n 'overhead',\n 'overhear',\n 'overheat',\n 'overhung',\n 'overjoyed',\n 'overkill',\n 'overlabor',\n 'overlaid',\n 'overlap',\n 'overlay',\n 'overload',\n 'overlook',\n 'overlord',\n 'overlying',\n 'overnight',\n 'overpass',\n 'overpay',\n 'overplant',\n 'overplay',\n 'overpower',\n 'overprice',\n 'overrate',\n 'overreach',\n 'overreact',\n 'override',\n 'overripe',\n 'overrule',\n 'overrun',\n 'overshoot',\n 'overshot',\n 'oversight',\n 'oversized',\n 'oversleep',\n 'oversold',\n 'overspend',\n 'overstate',\n 'overstay',\n 'overstep',\n 'overstock',\n 'overstuff',\n 'oversweet',\n 'overtake',\n 'overthrow',\n 'overtime',\n 'overtly',\n 'overtone',\n 'overture',\n 'overturn',\n 'overuse',\n 'overvalue',\n 'overview',\n 'overwrite',\n 'owl',\n 'oxford',\n 'oxidant',\n 'oxidation',\n 'oxidize',\n 'oxidizing',\n 'oxygen',\n 'oxymoron',\n 'oyster',\n 'ozone',\n 'paced',\n 'pacemaker',\n 'pacific',\n 'pacifier',\n 'pacifism',\n 'pacifist',\n 'pacify',\n 'padded',\n 'padding',\n 'paddle',\n 'paddling',\n 'padlock',\n 'pagan',\n 'pager',\n 'paging',\n 'pajamas',\n 'palace',\n 'palatable',\n 'palm',\n 'palpable',\n 'palpitate',\n 'paltry',\n 'pampered',\n 'pamperer',\n 'pampers',\n 'pamphlet',\n 'panama',\n 'pancake',\n 'pancreas',\n 'panda',\n 'pandemic',\n 'pang',\n 'panhandle',\n 'panic',\n 'panning',\n 'panorama',\n 'panoramic',\n 'panther',\n 'pantomime',\n 'pantry',\n 'pants',\n 'pantyhose',\n 'paparazzi',\n 'papaya',\n 'paper',\n 'paprika',\n 'papyrus',\n 'parabola',\n 'parachute',\n 'parade',\n 'paradox',\n 'paragraph',\n 'parakeet',\n 'paralegal',\n 'paralyses',\n 'paralysis',\n 'paralyze',\n 'paramedic',\n 'parameter',\n 'paramount',\n 'parasail',\n 'parasite',\n 'parasitic',\n 'parcel',\n 'parched',\n 'parchment',\n 'pardon',\n 'parish',\n 'parka',\n 'parking',\n 'parkway',\n 'parlor',\n 'parmesan',\n 'parole',\n 'parrot',\n 'parsley',\n 'parsnip',\n 'partake',\n 'parted',\n 'parting',\n 'partition',\n 'partly',\n 'partner',\n 'partridge',\n 'party',\n 'passable',\n 'passably',\n 'passage',\n 'passcode',\n 'passenger',\n 'passerby',\n 'passing',\n 'passion',\n 'passive',\n 'passivism',\n 'passover',\n 'passport',\n 'password',\n 'pasta',\n 'pasted',\n 'pastel',\n 'pastime',\n 'pastor',\n 'pastrami',\n 'pasture',\n 'pasty',\n 'patchwork',\n 'patchy',\n 'paternal',\n 'paternity',\n 'path',\n 'patience',\n 'patient',\n 'patio',\n 'patriarch',\n 'patriot',\n 'patrol',\n 'patronage',\n 'patronize',\n 'pauper',\n 'pavement',\n 'paver',\n 'pavestone',\n 'pavilion',\n 'paving',\n 'pawing',\n 'payable',\n 'payback',\n 'paycheck',\n 'payday',\n 'payee',\n 'payer',\n 'paying',\n 'payment',\n 'payphone',\n 'payroll',\n 'pebble',\n 'pebbly',\n 'pecan',\n 'pectin',\n 'peculiar',\n 'peddling',\n 'pediatric',\n 'pedicure',\n 'pedigree',\n 'pedometer',\n 'pegboard',\n 'pelican',\n 'pellet',\n 'pelt',\n 'pelvis',\n 'penalize',\n 'penalty',\n 'pencil',\n 'pendant',\n 'pending',\n 'penholder',\n 'penknife',\n 'pennant',\n 'penniless',\n 'penny',\n 'penpal',\n 'pension',\n 'pentagon',\n 'pentagram',\n 'pep',\n 'perceive',\n 'percent',\n 'perch',\n 'percolate',\n 'perennial',\n 'perfected',\n 'perfectly',\n 'perfume',\n 'periscope',\n 'perish',\n 'perjurer',\n 'perjury',\n 'perkiness',\n 'perky',\n 'perm',\n 'peroxide',\n 'perpetual',\n 'perplexed',\n 'persecute',\n 'persevere',\n 'persuaded',\n 'persuader',\n 'pesky',\n 'peso',\n 'pessimism',\n 'pessimist',\n 'pester',\n 'pesticide',\n 'petal',\n 'petite',\n 'petition',\n 'petri',\n 'petroleum',\n 'petted',\n 'petticoat',\n 'pettiness',\n 'petty',\n 'petunia',\n 'phantom',\n 'phobia',\n 'phoenix',\n 'phonebook',\n 'phoney',\n 'phonics',\n 'phoniness',\n 'phony',\n 'phosphate',\n 'photo',\n 'phrase',\n 'phrasing',\n 'placard',\n 'placate',\n 'placidly',\n 'plank',\n 'planner',\n 'plant',\n 'plasma',\n 'plaster',\n 'plastic',\n 'plated',\n 'platform',\n 'plating',\n 'platinum',\n 'platonic',\n 'platter',\n 'platypus',\n 'plausible',\n 'plausibly',\n 'playable',\n 'playback',\n 'player',\n 'playful',\n 'playgroup',\n 'playhouse',\n 'playing',\n 'playlist',\n 'playmaker',\n 'playmate',\n 'playoff',\n 'playpen',\n 'playroom',\n 'playset',\n 'plaything',\n 'playtime',\n 'plaza',\n 'pleading',\n 'pleat',\n 'pledge',\n 'plentiful',\n 'plenty',\n 'plethora',\n 'plexiglas',\n 'pliable',\n 'plod',\n 'plop',\n 'plot',\n 'plow',\n 'ploy',\n 'pluck',\n 'plug',\n 'plunder',\n 'plunging',\n 'plural',\n 'plus',\n 'plutonium',\n 'plywood',\n 'poach',\n 'pod',\n 'poem',\n 'poet',\n 'pogo',\n 'pointed',\n 'pointer',\n 'pointing',\n 'pointless',\n 'pointy',\n 'poise',\n 'poison',\n 'poker',\n 'poking',\n 'polar',\n 'police',\n 'policy',\n 'polio',\n 'polish',\n 'politely',\n 'polka',\n 'polo',\n 'polyester',\n 'polygon',\n 'polygraph',\n 'polymer',\n 'poncho',\n 'pond',\n 'pony',\n 'popcorn',\n 'pope',\n 'poplar',\n 'popper',\n 'poppy',\n 'popsicle',\n 'populace',\n 'popular',\n 'populate',\n 'porcupine',\n 'pork',\n 'porous',\n 'porridge',\n 'portable',\n 'portal',\n 'portfolio',\n 'porthole',\n 'portion',\n 'portly',\n 'portside',\n 'poser',\n 'posh',\n 'posing',\n 'possible',\n 'possibly',\n 'possum',\n 'postage',\n 'postal',\n 'postbox',\n 'postcard',\n 'posted',\n 'poster',\n 'posting',\n 'postnasal',\n 'posture',\n 'postwar',\n 'pouch',\n 'pounce',\n 'pouncing',\n 'pound',\n 'pouring',\n 'pout',\n 'powdered',\n 'powdering',\n 'powdery',\n 'power',\n 'powwow',\n 'pox',\n 'praising',\n 'prance',\n 'prancing',\n 'pranker',\n 'prankish',\n 'prankster',\n 'prayer',\n 'praying',\n 'preacher',\n 'preaching',\n 'preachy',\n 'preamble',\n 'precinct',\n 'precise',\n 'precision',\n 'precook',\n 'precut',\n 'predator',\n 'predefine',\n 'predict',\n 'preface',\n 'prefix',\n 'preflight',\n 'preformed',\n 'pregame',\n 'pregnancy',\n 'pregnant',\n 'preheated',\n 'prelaunch',\n 'prelaw',\n 'prelude',\n 'premiere',\n 'premises',\n 'premium',\n 'prenatal',\n 'preoccupy',\n 'preorder',\n 'prepaid',\n 'prepay',\n 'preplan',\n 'preppy',\n 'preschool',\n 'prescribe',\n 'preseason',\n 'preset',\n 'preshow',\n 'president',\n 'presoak',\n 'press',\n 'presume',\n 'presuming',\n 'preteen',\n 'pretended',\n 'pretender',\n 'pretense',\n 'pretext',\n 'pretty',\n 'pretzel',\n 'prevail',\n 'prevalent',\n 'prevent',\n 'preview',\n 'previous',\n 'prewar',\n 'prewashed',\n 'prideful',\n 'pried',\n 'primal',\n 'primarily',\n 'primary',\n 'primate',\n 'primer',\n 'primp',\n 'princess',\n 'print',\n 'prior',\n 'prism',\n 'prison',\n 'prissy',\n 'pristine',\n 'privacy',\n 'private',\n 'privatize',\n 'prize',\n 'proactive',\n 'probable',\n 'probably',\n 'probation',\n 'probe',\n 'probing',\n 'probiotic',\n 'problem',\n 'procedure',\n 'process',\n 'proclaim',\n 'procreate',\n 'procurer',\n 'prodigal',\n 'prodigy',\n 'produce',\n 'product',\n 'profane',\n 'profanity',\n 'professed',\n 'professor',\n 'profile',\n 'profound',\n 'profusely',\n 'progeny',\n 'prognosis',\n 'program',\n 'progress',\n 'projector',\n 'prologue',\n 'prolonged',\n 'promenade',\n 'prominent',\n 'promoter',\n 'promotion',\n 'prompter',\n 'promptly',\n 'prone',\n 'prong',\n 'pronounce',\n 'pronto',\n 'proofing',\n 'proofread',\n 'proofs',\n 'propeller',\n 'properly',\n 'property',\n 'proponent',\n 'proposal',\n 'propose',\n 'props',\n 'prorate',\n 'protector',\n 'protegee',\n 'proton',\n 'prototype',\n 'protozoan',\n 'protract',\n 'protrude',\n 'proud',\n 'provable',\n 'proved',\n 'proven',\n 'provided',\n 'provider',\n 'providing',\n 'province',\n 'proving',\n 'provoke',\n 'provoking',\n 'provolone',\n 'prowess',\n 'prowler',\n 'prowling',\n 'proximity',\n 'proxy',\n 'prozac',\n 'prude',\n 'prudishly',\n 'prune',\n 'pruning',\n 'pry',\n 'psychic',\n 'public',\n 'publisher',\n 'pucker',\n 'pueblo',\n 'pug',\n 'pull',\n 'pulmonary',\n 'pulp',\n 'pulsate',\n 'pulse',\n 'pulverize',\n 'puma',\n 'pumice',\n 'pummel',\n 'punch',\n 'punctual',\n 'punctuate',\n 'punctured',\n 'pungent',\n 'punisher',\n 'punk',\n 'pupil',\n 'puppet',\n 'puppy',\n 'purchase',\n 'pureblood',\n 'purebred',\n 'purely',\n 'pureness',\n 'purgatory',\n 'purge',\n 'purging',\n 'purifier',\n 'purify',\n 'purist',\n 'puritan',\n 'purity',\n 'purple',\n 'purplish',\n 'purposely',\n 'purr',\n 'purse',\n 'pursuable',\n 'pursuant',\n 'pursuit',\n 'purveyor',\n 'pushcart',\n 'pushchair',\n 'pusher',\n 'pushiness',\n 'pushing',\n 'pushover',\n 'pushpin',\n 'pushup',\n 'pushy',\n 'putdown',\n 'putt',\n 'puzzle',\n 'puzzling',\n 'pyramid',\n 'pyromania',\n 'python',\n 'quack',\n 'quadrant',\n 'quail',\n 'quaintly',\n 'quake',\n 'quaking',\n 'qualified',\n 'qualifier',\n 'qualify',\n 'quality',\n 'qualm',\n 'quantum',\n 'quarrel',\n 'quarry',\n 'quartered',\n 'quarterly',\n 'quarters',\n 'quartet',\n 'quench',\n 'query',\n 'quicken',\n 'quickly',\n 'quickness',\n 'quicksand',\n 'quickstep',\n 'quiet',\n 'quill',\n 'quilt',\n 'quintet',\n 'quintuple',\n 'quirk',\n 'quit',\n 'quiver',\n 'quizzical',\n 'quotable',\n 'quotation',\n 'quote',\n 'rabid',\n 'race',\n 'racing',\n 'racism',\n 'rack',\n 'racoon',\n 'radar',\n 'radial',\n 'radiance',\n 'radiantly',\n 'radiated',\n 'radiation',\n 'radiator',\n 'radio',\n 'radish',\n 'raffle',\n 'raft',\n 'rage',\n 'ragged',\n 'raging',\n 'ragweed',\n 'raider',\n 'railcar',\n 'railing',\n 'railroad',\n 'railway',\n 'raisin',\n 'rake',\n 'raking',\n 'rally',\n 'ramble',\n 'rambling',\n 'ramp',\n 'ramrod',\n 'ranch',\n 'rancidity',\n 'random',\n 'ranged',\n 'ranger',\n 'ranging',\n 'ranked',\n 'ranking',\n 'ransack',\n 'ranting',\n 'rants',\n 'rare',\n 'rarity',\n 'rascal',\n 'rash',\n 'rasping',\n 'ravage',\n 'raven',\n 'ravine',\n 'raving',\n 'ravioli',\n 'ravishing',\n 'reabsorb',\n 'reach',\n 'reacquire',\n 'reaction',\n 'reactive',\n 'reactor',\n 'reaffirm',\n 'ream',\n 'reanalyze',\n 'reappear',\n 'reapply',\n 'reappoint',\n 'reapprove',\n 'rearrange',\n 'rearview',\n 'reason',\n 'reassign',\n 'reassure',\n 'reattach',\n 'reawake',\n 'rebalance',\n 'rebate',\n 'rebel',\n 'rebirth',\n 'reboot',\n 'reborn',\n 'rebound',\n 'rebuff',\n 'rebuild',\n 'rebuilt',\n 'reburial',\n 'rebuttal',\n 'recall',\n 'recant',\n 'recapture',\n 'recast',\n 'recede',\n 'recent',\n 'recess',\n 'recharger',\n 'recipient',\n 'recital',\n 'recite',\n 'reckless',\n 'reclaim',\n 'recliner',\n 'reclining',\n 'recluse',\n 'reclusive',\n 'recognize',\n 'recoil',\n 'recollect',\n 'recolor',\n 'reconcile',\n 'reconfirm',\n 'reconvene',\n 'recopy',\n 'record',\n 'recount',\n 'recoup',\n 'recovery',\n 'recreate',\n 'rectal',\n 'rectangle',\n 'rectified',\n 'rectify',\n 'recycled',\n 'recycler',\n 'recycling',\n 'reemerge',\n 'reenact',\n 'reenter',\n 'reentry',\n 'reexamine',\n 'referable',\n 'referee',\n 'reference',\n 'refill',\n 'refinance',\n 'refined',\n 'refinery',\n 'refining',\n 'refinish',\n 'reflected',\n 'reflector',\n 'reflex',\n 'reflux',\n 'refocus',\n 'refold',\n 'reforest',\n 'reformat',\n 'reformed',\n 'reformer',\n 'reformist',\n 'refract',\n 'refrain',\n 'refreeze',\n 'refresh',\n 'refried',\n 'refueling',\n 'refund',\n 'refurbish',\n 'refurnish',\n 'refusal',\n 'refuse',\n 'refusing',\n 'refutable',\n 'refute',\n 'regain',\n 'regalia',\n 'regally',\n 'reggae',\n 'regime',\n 'region',\n 'register',\n 'registrar',\n 'registry',\n 'regress',\n 'regretful',\n 'regroup',\n 'regular',\n 'regulate',\n 'regulator',\n 'rehab',\n 'reheat',\n 'rehire',\n 'rehydrate',\n 'reimburse',\n 'reissue',\n 'reiterate',\n 'rejoice',\n 'rejoicing',\n 'rejoin',\n 'rekindle',\n 'relapse',\n 'relapsing',\n 'relatable',\n 'related',\n 'relation',\n 'relative',\n 'relax',\n 'relay',\n 'relearn',\n 'release',\n 'relenting',\n 'reliable',\n 'reliably',\n 'reliance',\n 'reliant',\n 'relic',\n 'relieve',\n 'relieving',\n 'relight',\n 'relish',\n 'relive',\n 'reload',\n 'relocate',\n 'relock',\n 'reluctant',\n 'rely',\n 'remake',\n 'remark',\n 'remarry',\n 'rematch',\n 'remedial',\n 'remedy',\n 'remember',\n 'reminder',\n 'remindful',\n 'remission',\n 'remix',\n 'remnant',\n 'remodeler',\n 'remold',\n 'remorse',\n 'remote',\n 'removable',\n 'removal',\n 'removed',\n 'remover',\n 'removing',\n 'rename',\n 'renderer',\n 'rendering',\n 'rendition',\n 'renegade',\n 'renewable',\n 'renewably',\n 'renewal',\n 'renewed',\n 'renounce',\n 'renovate',\n 'renovator',\n 'rentable',\n 'rental',\n 'rented',\n 'renter',\n 'reoccupy',\n 'reoccur',\n 'reopen',\n 'reorder',\n 'repackage',\n 'repacking',\n 'repaint',\n 'repair',\n 'repave',\n 'repaying',\n 'repayment',\n 'repeal',\n 'repeated',\n 'repeater',\n 'repent',\n 'rephrase',\n 'replace',\n 'replay',\n 'replica',\n 'reply',\n 'reporter',\n 'repose',\n 'repossess',\n 'repost',\n 'repressed',\n 'reprimand',\n 'reprint',\n 'reprise',\n 'reproach',\n 'reprocess',\n 'reproduce',\n 'reprogram',\n 'reps',\n 'reptile',\n 'reptilian',\n 'repugnant',\n 'repulsion',\n 'repulsive',\n 'repurpose',\n 'reputable',\n 'reputably',\n 'request',\n 'require',\n 'requisite',\n 'reroute',\n 'rerun',\n 'resale',\n 'resample',\n 'rescuer',\n 'reseal',\n 'research',\n 'reselect',\n 'reseller',\n 'resemble',\n 'resend',\n 'resent',\n 'reset',\n 'reshape',\n 'reshoot',\n 'reshuffle',\n 'residence',\n 'residency',\n 'resident',\n 'residual',\n 'residue',\n 'resigned',\n 'resilient',\n 'resistant',\n 'resisting',\n 'resize',\n 'resolute',\n 'resolved',\n 'resonant',\n 'resonate',\n 'resort',\n 'resource',\n 'respect',\n 'resubmit',\n 'result',\n 'resume',\n 'resupply',\n 'resurface',\n 'resurrect',\n 'retail',\n 'retainer',\n 'retaining',\n 'retake',\n 'retaliate',\n 'retention',\n 'rethink',\n 'retinal',\n 'retired',\n 'retiree',\n 'retiring',\n 'retold',\n 'retool',\n 'retorted',\n 'retouch',\n 'retrace',\n 'retract',\n 'retrain',\n 'retread',\n 'retreat',\n 'retrial',\n 'retrieval',\n 'retriever',\n 'retry',\n 'return',\n 'retying',\n 'retype',\n 'reunion',\n 'reunite',\n 'reusable',\n 'reuse',\n 'reveal',\n 'reveler',\n 'revenge',\n 'revenue',\n 'reverb',\n 'revered',\n 'reverence',\n 'reverend',\n 'reversal',\n 'reverse',\n 'reversing',\n 'reversion',\n 'revert',\n 'revisable',\n 'revise',\n 'revision',\n 'revisit',\n 'revivable',\n 'revival',\n 'reviver',\n 'reviving',\n 'revocable',\n 'revoke',\n 'revolt',\n 'revolver',\n 'revolving',\n 'reward',\n 'rewash',\n 'rewind',\n 'rewire',\n 'reword',\n 'rework',\n 'rewrap',\n 'rewrite',\n 'rhyme',\n 'ribbon',\n 'ribcage',\n 'rice',\n 'riches',\n 'richly',\n 'richness',\n 'rickety',\n 'ricotta',\n 'riddance',\n 'ridden',\n 'ride',\n 'riding',\n 'rifling',\n 'rift',\n 'rigging',\n 'rigid',\n 'rigor',\n 'rimless',\n 'rimmed',\n 'rind',\n 'rink',\n 'rinse',\n 'rinsing',\n 'riot',\n 'ripcord',\n 'ripeness',\n 'ripening',\n 'ripping',\n 'ripple',\n 'rippling',\n 'riptide',\n 'rise',\n 'rising',\n 'risk',\n 'risotto',\n 'ritalin',\n 'ritzy',\n 'rival',\n 'riverbank',\n 'riverbed',\n 'riverboat',\n 'riverside',\n 'riveter',\n 'riveting',\n 'roamer',\n 'roaming',\n 'roast',\n 'robbing',\n 'robe',\n 'robin',\n 'robotics',\n 'robust',\n 'rockband',\n 'rocker',\n 'rocket',\n 'rockfish',\n 'rockiness',\n 'rocking',\n 'rocklike',\n 'rockslide',\n 'rockstar',\n 'rocky',\n 'rogue',\n 'roman',\n 'romp',\n 'rope',\n 'roping',\n 'roster',\n 'rosy',\n 'rotten',\n 'rotting',\n 'rotunda',\n 'roulette',\n 'rounding',\n 'roundish',\n 'roundness',\n 'roundup',\n 'roundworm',\n 'routine',\n 'routing',\n 'rover',\n 'roving',\n 'royal',\n 'rubbed',\n 'rubber',\n 'rubbing',\n 'rubble',\n 'rubdown',\n 'ruby',\n 'ruckus',\n 'rudder',\n 'rug',\n 'ruined',\n 'rule',\n 'rumble',\n 'rumbling',\n 'rummage',\n 'rumor',\n 'runaround',\n 'rundown',\n 'runner',\n 'running',\n 'runny',\n 'runt',\n 'runway',\n 'rupture',\n 'rural',\n 'ruse',\n 'rush',\n 'rust',\n 'rut',\n 'sabbath',\n 'sabotage',\n 'sacrament',\n 'sacred',\n 'sacrifice',\n 'sadden',\n 'saddlebag',\n 'saddled',\n 'saddling',\n 'sadly',\n 'sadness',\n 'safari',\n 'safeguard',\n 'safehouse',\n 'safely',\n 'safeness',\n 'saffron',\n 'saga',\n 'sage',\n 'sagging',\n 'saggy',\n 'said',\n 'saint',\n 'sake',\n 'salad',\n 'salami',\n 'salaried',\n 'salary',\n 'saline',\n 'salon',\n 'saloon',\n 'salsa',\n 'salt',\n 'salutary',\n 'salute',\n 'salvage',\n 'salvaging',\n 'salvation',\n 'same',\n 'sample',\n 'sampling',\n 'sanction',\n 'sanctity',\n 'sanctuary',\n 'sandal',\n 'sandbag',\n 'sandbank',\n 'sandbar',\n 'sandblast',\n 'sandbox',\n 'sanded',\n 'sandfish',\n 'sanding',\n 'sandlot',\n 'sandpaper',\n 'sandpit',\n 'sandstone',\n 'sandstorm',\n 'sandworm',\n 'sandy',\n 'sanitary',\n 'sanitizer',\n 'sank',\n 'santa',\n 'sapling',\n 'sappiness',\n 'sappy',\n 'sarcasm',\n 'sarcastic',\n 'sardine',\n 'sash',\n 'sasquatch',\n 'sassy',\n 'satchel',\n 'satiable',\n 'satin',\n 'satirical',\n 'satisfied',\n 'satisfy',\n 'saturate',\n 'saturday',\n 'sauciness',\n 'saucy',\n 'sauna',\n 'savage',\n 'savanna',\n 'saved',\n 'savings',\n 'savior',\n 'savor',\n 'saxophone',\n 'say',\n 'scabbed',\n 'scabby',\n 'scalded',\n 'scalding',\n 'scale',\n 'scaling',\n 'scallion',\n 'scallop',\n 'scalping',\n 'scam',\n 'scandal',\n 'scanner',\n 'scanning',\n 'scant',\n 'scapegoat',\n 'scarce',\n 'scarcity',\n 'scarecrow',\n 'scared',\n 'scarf',\n 'scarily',\n 'scariness',\n 'scarring',\n 'scary',\n 'scavenger',\n 'scenic',\n 'schedule',\n 'schematic',\n 'scheme',\n 'scheming',\n 'schilling',\n 'schnapps',\n 'scholar',\n 'science',\n 'scientist',\n 'scion',\n 'scoff',\n 'scolding',\n 'scone',\n 'scoop',\n 'scooter',\n 'scope',\n 'scorch',\n 'scorebook',\n 'scorecard',\n 'scored',\n 'scoreless',\n 'scorer',\n 'scoring',\n 'scorn',\n 'scorpion',\n 'scotch',\n 'scoundrel',\n 'scoured',\n 'scouring',\n 'scouting',\n 'scouts',\n 'scowling',\n 'scrabble',\n 'scraggly',\n 'scrambled',\n 'scrambler',\n 'scrap',\n 'scratch',\n 'scrawny',\n 'screen',\n 'scribble',\n 'scribe',\n 'scribing',\n 'scrimmage',\n 'script',\n 'scroll',\n 'scrooge',\n 'scrounger',\n 'scrubbed',\n 'scrubber',\n 'scruffy',\n 'scrunch',\n 'scrutiny',\n 'scuba',\n 'scuff',\n 'sculptor',\n 'sculpture',\n 'scurvy',\n 'scuttle',\n 'secluded',\n 'secluding',\n 'seclusion',\n 'second',\n 'secrecy',\n 'secret',\n 'sectional',\n 'sector',\n 'secular',\n 'securely',\n 'security',\n 'sedan',\n 'sedate',\n 'sedation',\n 'sedative',\n 'sediment',\n 'seduce',\n 'seducing',\n 'segment',\n 'seismic',\n 'seizing',\n 'seldom',\n 'selected',\n 'selection',\n 'selective',\n 'selector',\n 'self',\n 'seltzer',\n 'semantic',\n 'semester',\n 'semicolon',\n 'semifinal',\n 'seminar',\n 'semisoft',\n 'semisweet',\n 'senate',\n 'senator',\n 'send',\n 'senior',\n 'senorita',\n 'sensation',\n 'sensitive',\n 'sensitize',\n 'sensually',\n 'sensuous',\n 'sepia',\n 'september',\n 'septic',\n 'septum',\n 'sequel',\n 'sequence',\n 'sequester',\n 'series',\n 'sermon',\n 'serotonin',\n 'serpent',\n 'serrated',\n 'serve',\n 'service',\n 'serving',\n 'sesame',\n 'sessions',\n 'setback',\n 'setting',\n 'settle',\n 'settling',\n 'setup',\n 'sevenfold',\n 'seventeen',\n 'seventh',\n 'seventy',\n 'severity',\n 'shabby',\n 'shack',\n 'shaded',\n 'shadily',\n 'shadiness',\n 'shading',\n 'shadow',\n 'shady',\n 'shaft',\n 'shakable',\n 'shakily',\n 'shakiness',\n 'shaking',\n 'shaky',\n 'shale',\n 'shallot',\n 'shallow',\n 'shame',\n 'shampoo',\n 'shamrock',\n 'shank',\n 'shanty',\n 'shape',\n 'shaping',\n 'share',\n 'sharpener',\n 'sharper',\n 'sharpie',\n 'sharply',\n 'sharpness',\n 'shawl',\n 'sheath',\n 'shed',\n 'sheep',\n 'sheet',\n 'shelf',\n 'shell',\n 'shelter',\n 'shelve',\n 'shelving',\n 'sherry',\n 'shield',\n 'shifter',\n 'shifting',\n 'shiftless',\n 'shifty',\n 'shimmer',\n 'shimmy',\n 'shindig',\n 'shine',\n 'shingle',\n 'shininess',\n 'shining',\n 'shiny',\n 'ship',\n 'shirt',\n 'shivering',\n 'shock',\n 'shone',\n 'shoplift',\n 'shopper',\n 'shopping',\n 'shoptalk',\n 'shore',\n 'shortage',\n 'shortcake',\n 'shortcut',\n 'shorten',\n 'shorter',\n 'shorthand',\n 'shortlist',\n 'shortly',\n 'shortness',\n 'shorts',\n 'shortwave',\n 'shorty',\n 'shout',\n 'shove',\n 'showbiz',\n 'showcase',\n 'showdown',\n 'shower',\n 'showgirl',\n 'showing',\n 'showman',\n 'shown',\n 'showoff',\n 'showpiece',\n 'showplace',\n 'showroom',\n 'showy',\n 'shrank',\n 'shrapnel',\n 'shredder',\n 'shredding',\n 'shrewdly',\n 'shriek',\n 'shrill',\n 'shrimp',\n 'shrine',\n 'shrink',\n 'shrivel',\n 'shrouded',\n 'shrubbery',\n 'shrubs',\n 'shrug',\n 'shrunk',\n 'shucking',\n 'shudder',\n 'shuffle',\n 'shuffling',\n 'shun',\n 'shush',\n 'shut',\n 'shy',\n 'siamese',\n 'siberian',\n 'sibling',\n 'siding',\n 'sierra',\n 'siesta',\n 'sift',\n 'sighing',\n 'silenced',\n 'silencer',\n 'silent',\n 'silica',\n 'silicon',\n 'silk',\n 'silliness',\n 'silly',\n 'silo',\n 'silt',\n 'silver',\n 'similarly',\n 'simile',\n 'simmering',\n 'simple',\n 'simplify',\n 'simply',\n 'sincere',\n 'sincerity',\n 'singer',\n 'singing',\n 'single',\n 'singular',\n 'sinister',\n 'sinless',\n 'sinner',\n 'sinuous',\n 'sip',\n 'siren',\n 'sister',\n 'sitcom',\n 'sitter',\n 'sitting',\n 'situated',\n 'situation',\n 'sixfold',\n 'sixteen',\n 'sixth',\n 'sixties',\n 'sixtieth',\n 'sixtyfold',\n 'sizable',\n 'sizably',\n 'size',\n 'sizing',\n 'sizzle',\n 'sizzling',\n 'skater',\n 'skating',\n 'skedaddle',\n 'skeletal',\n 'skeleton',\n 'skeptic',\n 'sketch',\n 'skewed',\n 'skewer',\n 'skid',\n 'skied',\n 'skier',\n 'skies',\n 'skiing',\n 'skilled',\n 'skillet',\n 'skillful',\n 'skimmed',\n 'skimmer',\n 'skimming',\n 'skimpily',\n 'skincare',\n 'skinhead',\n 'skinless',\n 'skinning',\n 'skinny',\n 'skintight',\n 'skipper',\n 'skipping',\n 'skirmish',\n 'skirt',\n 'skittle',\n 'skydiver',\n 'skylight',\n 'skyline',\n 'skype',\n 'skyrocket',\n 'skyward',\n 'slab',\n 'slacked',\n 'slacker',\n 'slacking',\n 'slackness',\n 'slacks',\n 'slain',\n 'slam',\n 'slander',\n 'slang',\n 'slapping',\n 'slapstick',\n 'slashed',\n 'slashing',\n 'slate',\n 'slather',\n 'slaw',\n 'sled',\n 'sleek',\n 'sleep',\n 'sleet',\n 'sleeve',\n 'slept',\n 'sliceable',\n 'sliced',\n 'slicer',\n 'slicing',\n 'slick',\n 'slider',\n 'slideshow',\n 'sliding',\n 'slighted',\n 'slighting',\n 'slightly',\n 'slimness',\n 'slimy',\n 'slinging',\n 'slingshot',\n 'slinky',\n 'slip',\n 'slit',\n 'sliver',\n 'slobbery',\n 'slogan',\n 'sloped',\n 'sloping',\n 'sloppily',\n 'sloppy',\n 'slot',\n 'slouching',\n 'slouchy',\n 'sludge',\n 'slug',\n 'slum',\n 'slurp',\n 'slush',\n 'sly',\n 'small',\n 'smartly',\n 'smartness',\n 'smasher',\n 'smashing',\n 'smashup',\n 'smell',\n 'smelting',\n 'smile',\n 'smilingly',\n 'smirk',\n 'smite',\n 'smith',\n 'smitten',\n 'smock',\n 'smog',\n 'smoked',\n 'smokeless',\n 'smokiness',\n 'smoking',\n 'smoky',\n 'smolder',\n 'smooth',\n 'smother',\n 'smudge',\n 'smudgy',\n 'smuggler',\n 'smuggling',\n 'smugly',\n 'smugness',\n 'snack',\n 'snagged',\n 'snaking',\n 'snap',\n 'snare',\n 'snarl',\n 'snazzy',\n 'sneak',\n 'sneer',\n 'sneeze',\n 'sneezing',\n 'snide',\n 'sniff',\n 'snippet',\n 'snipping',\n 'snitch',\n 'snooper',\n 'snooze',\n 'snore',\n 'snoring',\n 'snorkel',\n 'snort',\n 'snout',\n 'snowbird',\n 'snowboard',\n 'snowbound',\n 'snowcap',\n 'snowdrift',\n 'snowdrop',\n 'snowfall',\n 'snowfield',\n 'snowflake',\n 'snowiness',\n 'snowless',\n 'snowman',\n 'snowplow',\n 'snowshoe',\n 'snowstorm',\n 'snowsuit',\n 'snowy',\n 'snub',\n 'snuff',\n 'snuggle',\n 'snugly',\n 'snugness',\n 'speak',\n 'spearfish',\n 'spearhead',\n 'spearman',\n 'spearmint',\n 'species',\n 'specimen',\n 'specked',\n 'speckled',\n 'specks',\n 'spectacle',\n 'spectator',\n 'spectrum',\n 'speculate',\n 'speech',\n 'speed',\n 'spellbind',\n 'speller',\n 'spelling',\n 'spendable',\n 'spender',\n 'spending',\n 'spent',\n 'spew',\n 'sphere',\n 'spherical',\n 'sphinx',\n 'spider',\n 'spied',\n 'spiffy',\n 'spill',\n 'spilt',\n 'spinach',\n 'spinal',\n 'spindle',\n 'spinner',\n 'spinning',\n 'spinout',\n 'spinster',\n 'spiny',\n 'spiral',\n 'spirited',\n 'spiritism',\n 'spirits',\n 'spiritual',\n 'splashed',\n 'splashing',\n 'splashy',\n 'splatter',\n 'spleen',\n 'splendid',\n 'splendor',\n 'splice',\n 'splicing',\n 'splinter',\n 'splotchy',\n 'splurge',\n 'spoilage',\n 'spoiled',\n 'spoiler',\n 'spoiling',\n 'spoils',\n 'spoken',\n 'spokesman',\n 'sponge',\n 'spongy',\n 'sponsor',\n 'spoof',\n 'spookily',\n 'spooky',\n 'spool',\n 'spoon',\n 'spore',\n 'sporting',\n 'sports',\n 'sporty',\n 'spotless',\n 'spotlight',\n 'spotted',\n 'spotter',\n 'spotting',\n 'spotty',\n 'spousal',\n 'spouse',\n 'spout',\n 'sprain',\n 'sprang',\n 'sprawl',\n 'spray',\n 'spree',\n 'sprig',\n 'spring',\n 'sprinkled',\n 'sprinkler',\n 'sprint',\n 'sprite',\n 'sprout',\n 'spruce',\n 'sprung',\n 'spry',\n 'spud',\n 'spur',\n 'sputter',\n 'spyglass',\n 'squabble',\n 'squad',\n 'squall',\n 'squander',\n 'squash',\n 'squatted',\n 'squatter',\n 'squatting',\n 'squeak',\n 'squealer',\n 'squealing',\n 'squeamish',\n 'squeegee',\n 'squeeze',\n 'squeezing',\n 'squid',\n 'squiggle',\n 'squiggly',\n 'squint',\n 'squire',\n 'squirt',\n 'squishier',\n 'squishy',\n 'stability',\n 'stabilize',\n 'stable',\n 'stack',\n 'stadium',\n 'staff',\n 'stage',\n 'staging',\n 'stagnant',\n 'stagnate',\n 'stainable',\n 'stained',\n 'staining',\n 'stainless',\n 'stalemate',\n 'staleness',\n 'stalling',\n 'stallion',\n 'stamina',\n 'stammer',\n 'stamp',\n 'stand',\n 'stank',\n 'staple',\n 'stapling',\n 'starboard',\n 'starch',\n 'stardom',\n 'stardust',\n 'starfish',\n 'stargazer',\n 'staring',\n 'stark',\n 'starless',\n 'starlet',\n 'starlight',\n 'starlit',\n 'starring',\n 'starry',\n 'starship',\n 'starter',\n 'starting',\n 'startle',\n 'startling',\n 'startup',\n 'starved',\n 'starving',\n 'stash',\n 'state',\n 'static',\n 'statistic',\n 'statue',\n 'stature',\n 'status',\n 'statute',\n 'statutory',\n 'staunch',\n 'stays',\n 'steadfast',\n 'steadier',\n 'steadily',\n 'steadying',\n 'steam',\n 'steed',\n 'steep',\n 'steerable',\n 'steering',\n 'steersman',\n 'stegosaur',\n 'stellar',\n 'stem',\n 'stench',\n 'stencil',\n 'step',\n 'stereo',\n 'sterile',\n 'sterility',\n 'sterilize',\n 'sterling',\n 'sternness',\n 'sternum',\n 'stew',\n 'stick',\n 'stiffen',\n 'stiffly',\n 'stiffness',\n 'stifle',\n 'stifling',\n 'stillness',\n 'stilt',\n 'stimulant',\n 'stimulate',\n 'stimuli',\n 'stimulus',\n 'stinger',\n 'stingily',\n 'stinging',\n 'stingray',\n 'stingy',\n 'stinking',\n 'stinky',\n 'stipend',\n 'stipulate',\n 'stir',\n 'stitch',\n 'stock',\n 'stoic',\n 'stoke',\n 'stole',\n 'stomp',\n 'stonewall',\n 'stoneware',\n 'stonework',\n 'stoning',\n 'stony',\n 'stood',\n 'stooge',\n 'stool',\n 'stoop',\n 'stoplight',\n 'stoppable',\n 'stoppage',\n 'stopped',\n 'stopper',\n 'stopping',\n 'stopwatch',\n 'storable',\n 'storage',\n 'storeroom',\n 'storewide',\n 'storm',\n 'stout',\n 'stove',\n 'stowaway',\n 'stowing',\n 'straddle',\n 'straggler',\n 'strained',\n 'strainer',\n 'straining',\n 'strangely',\n 'stranger',\n 'strangle',\n 'strategic',\n 'strategy',\n 'stratus',\n 'straw',\n 'stray',\n 'streak',\n 'stream',\n 'street',\n 'strength',\n 'strenuous',\n 'strep',\n 'stress',\n 'stretch',\n 'strewn',\n 'stricken',\n 'strict',\n 'stride',\n 'strife',\n 'strike',\n 'striking',\n 'strive',\n 'striving',\n 'strobe',\n 'strode',\n 'stroller',\n 'strongbox',\n 'strongly',\n 'strongman',\n 'struck',\n 'structure',\n 'strudel',\n 'struggle',\n 'strum',\n 'strung',\n 'strut',\n 'stubbed',\n 'stubble',\n 'stubbly',\n 'stubborn',\n 'stucco',\n 'stuck',\n 'student',\n 'studied',\n 'studio',\n 'study',\n 'stuffed',\n 'stuffing',\n 'stuffy',\n 'stumble',\n 'stumbling',\n 'stump',\n 'stung',\n 'stunned',\n 'stunner',\n 'stunning',\n 'stunt',\n 'stupor',\n 'sturdily',\n 'sturdy',\n 'styling',\n 'stylishly',\n 'stylist',\n 'stylized',\n 'stylus',\n 'suave',\n 'subarctic',\n 'subatomic',\n 'subdivide',\n 'subdued',\n 'subduing',\n 'subfloor',\n 'subgroup',\n 'subheader',\n 'subject',\n 'sublease',\n 'sublet',\n 'sublevel',\n 'sublime',\n 'submarine',\n 'submerge',\n 'submersed',\n 'submitter',\n 'subpanel',\n 'subpar',\n 'subplot',\n 'subprime',\n 'subscribe',\n 'subscript',\n 'subsector',\n 'subside',\n 'subsiding',\n 'subsidize',\n 'subsidy',\n 'subsoil',\n 'subsonic',\n 'substance',\n 'subsystem',\n 'subtext',\n 'subtitle',\n 'subtly',\n 'subtotal',\n 'subtract',\n 'subtype',\n 'suburb',\n 'subway',\n 'subwoofer',\n 'subzero',\n 'succulent',\n 'such',\n 'suction',\n 'sudden',\n 'sudoku',\n 'suds',\n 'sufferer',\n 'suffering',\n 'suffice',\n 'suffix',\n 'suffocate',\n 'suffrage',\n 'sugar',\n 'suggest',\n 'suing',\n 'suitable',\n 'suitably',\n 'suitcase',\n 'suitor',\n 'sulfate',\n 'sulfide',\n 'sulfite',\n 'sulfur',\n 'sulk',\n 'sullen',\n 'sulphate',\n 'sulphuric',\n 'sultry',\n 'superbowl',\n 'superglue',\n 'superhero',\n 'superior',\n 'superjet',\n 'superman',\n 'supermom',\n 'supernova',\n 'supervise',\n 'supper',\n 'supplier',\n 'supply',\n 'support',\n 'supremacy',\n 'supreme',\n 'surcharge',\n 'surely',\n 'sureness',\n 'surface',\n 'surfacing',\n 'surfboard',\n 'surfer',\n 'surgery',\n 'surgical',\n 'surging',\n 'surname',\n 'surpass',\n 'surplus',\n 'surprise',\n 'surreal',\n 'surrender',\n 'surrogate',\n 'surround',\n 'survey',\n 'survival',\n 'survive',\n 'surviving',\n 'survivor',\n 'sushi',\n 'suspect',\n 'suspend',\n 'suspense',\n 'sustained',\n 'sustainer',\n 'swab',\n 'swaddling',\n 'swagger',\n 'swampland',\n 'swan',\n 'swapping',\n 'swarm',\n 'sway',\n 'swear',\n 'sweat',\n 'sweep',\n 'swell',\n 'swept',\n 'swerve',\n 'swifter',\n 'swiftly',\n 'swiftness',\n 'swimmable',\n 'swimmer',\n 'swimming',\n 'swimsuit',\n 'swimwear',\n 'swinger',\n 'swinging',\n 'swipe',\n 'swirl',\n 'switch',\n 'swivel',\n 'swizzle',\n 'swooned',\n 'swoop',\n 'swoosh',\n 'swore',\n 'sworn',\n 'swung',\n 'sycamore',\n 'sympathy',\n 'symphonic',\n 'symphony',\n 'symptom',\n 'synapse',\n 'syndrome',\n 'synergy',\n 'synopses',\n 'synopsis',\n 'synthesis',\n 'synthetic',\n 'syrup',\n 'system',\n 't-shirt',\n 'tabasco',\n 'tabby',\n 'tableful',\n 'tables',\n 'tablet',\n 'tableware',\n 'tabloid',\n 'tackiness',\n 'tacking',\n 'tackle',\n 'tackling',\n 'tacky',\n 'taco',\n 'tactful',\n 'tactical',\n 'tactics',\n 'tactile',\n 'tactless',\n 'tadpole',\n 'taekwondo',\n 'tag',\n 'tainted',\n 'take',\n 'taking',\n 'talcum',\n 'talisman',\n 'tall',\n 'talon',\n 'tamale',\n 'tameness',\n 'tamer',\n 'tamper',\n 'tank',\n 'tanned',\n 'tannery',\n 'tanning',\n 'tantrum',\n 'tapeless',\n 'tapered',\n 'tapering',\n 'tapestry',\n 'tapioca',\n 'tapping',\n 'taps',\n 'tarantula',\n 'target',\n 'tarmac',\n 'tarnish',\n 'tarot',\n 'tartar',\n 'tartly',\n 'tartness',\n 'task',\n 'tassel',\n 'taste',\n 'tastiness',\n 'tasting',\n 'tasty',\n 'tattered',\n 'tattle',\n 'tattling',\n 'tattoo',\n 'taunt',\n 'tavern',\n 'thank',\n 'that',\n 'thaw',\n 'theater',\n 'theatrics',\n 'thee',\n 'theft',\n 'theme',\n 'theology',\n 'theorize',\n 'thermal',\n 'thermos',\n 'thesaurus',\n 'these',\n 'thesis',\n 'thespian',\n 'thicken',\n 'thicket',\n 'thickness',\n 'thieving',\n 'thievish',\n 'thigh',\n 'thimble',\n 'thing',\n 'think',\n 'thinly',\n 'thinner',\n 'thinness',\n 'thinning',\n 'thirstily',\n 'thirsting',\n 'thirsty',\n 'thirteen',\n 'thirty',\n 'thong',\n 'thorn',\n 'those',\n 'thousand',\n 'thrash',\n 'thread',\n 'threaten',\n 'threefold',\n 'thrift',\n 'thrill',\n 'thrive',\n 'thriving',\n 'throat',\n 'throbbing',\n 'throng',\n 'throttle',\n 'throwaway',\n 'throwback',\n 'thrower',\n 'throwing',\n 'thud',\n 'thumb',\n 'thumping',\n 'thursday',\n 'thus',\n 'thwarting',\n 'thyself',\n 'tiara',\n 'tibia',\n 'tidal',\n 'tidbit',\n 'tidiness',\n 'tidings',\n 'tidy',\n 'tiger',\n 'tighten',\n 'tightly',\n 'tightness',\n 'tightrope',\n 'tightwad',\n 'tigress',\n 'tile',\n 'tiling',\n 'till',\n 'tilt',\n 'timid',\n 'timing',\n 'timothy',\n 'tinderbox',\n 'tinfoil',\n 'tingle',\n 'tingling',\n 'tingly',\n 'tinker',\n 'tinkling',\n 'tinsel',\n 'tinsmith',\n 'tint',\n 'tinwork',\n 'tiny',\n 'tipoff',\n 'tipped',\n 'tipper',\n 'tipping',\n 'tiptoeing',\n 'tiptop',\n 'tiring',\n 'tissue',\n 'trace',\n 'tracing',\n 'track',\n 'traction',\n 'tractor',\n 'trade',\n 'trading',\n 'tradition',\n 'traffic',\n 'tragedy',\n 'trailing',\n 'trailside',\n 'train',\n 'traitor',\n 'trance',\n 'tranquil',\n 'transfer',\n 'transform',\n 'translate',\n 'transpire',\n 'transport',\n 'transpose',\n 'trapdoor',\n 'trapeze',\n 'trapezoid',\n 'trapped',\n 'trapper',\n 'trapping',\n 'traps',\n 'trash',\n 'travel',\n 'traverse',\n 'travesty',\n 'tray',\n 'treachery',\n 'treading',\n 'treadmill',\n 'treason',\n 'treat',\n 'treble',\n 'tree',\n 'trekker',\n 'tremble',\n 'trembling',\n 'tremor',\n 'trench',\n 'trend',\n 'trespass',\n 'triage',\n 'trial',\n 'triangle',\n 'tribesman',\n 'tribunal',\n 'tribune',\n 'tributary',\n 'tribute',\n 'triceps',\n 'trickery',\n 'trickily',\n 'tricking',\n 'trickle',\n 'trickster',\n 'tricky',\n 'tricolor',\n 'tricycle',\n 'trident',\n 'tried',\n 'trifle',\n 'trifocals',\n 'trillion',\n 'trilogy',\n 'trimester',\n 'trimmer',\n 'trimming',\n 'trimness',\n 'trinity',\n 'trio',\n 'tripod',\n 'tripping',\n 'triumph',\n 'trivial',\n 'trodden',\n 'trolling',\n 'trombone',\n 'trophy',\n 'tropical',\n 'tropics',\n 'trouble',\n 'troubling',\n 'trough',\n 'trousers',\n 'trout',\n 'trowel',\n 'truce',\n 'truck',\n 'truffle',\n 'trump',\n 'trunks',\n 'trustable',\n 'trustee',\n 'trustful',\n 'trusting',\n 'trustless',\n 'truth',\n 'try',\n 'tubby',\n 'tubeless',\n 'tubular',\n 'tucking',\n 'tuesday',\n 'tug',\n 'tuition',\n 'tulip',\n 'tumble',\n 'tumbling',\n 'tummy',\n 'turban',\n 'turbine',\n 'turbofan',\n 'turbojet',\n 'turbulent',\n 'turf',\n 'turkey',\n 'turmoil',\n 'turret',\n 'turtle',\n 'tusk',\n 'tutor',\n 'tutu',\n 'tux',\n 'tweak',\n 'tweed',\n 'tweet',\n 'tweezers',\n 'twelve',\n 'twentieth',\n 'twenty',\n 'twerp',\n 'twice',\n 'twiddle',\n 'twiddling',\n 'twig',\n 'twilight',\n 'twine',\n 'twins',\n 'twirl',\n 'twistable',\n 'twisted',\n 'twister',\n 'twisting',\n 'twisty',\n 'twitch',\n 'twitter',\n 'tycoon',\n 'tying',\n 'tyke',\n 'udder',\n 'ultimate',\n 'ultimatum',\n 'ultra',\n 'umbilical',\n 'umbrella',\n 'umpire',\n 'unabashed',\n 'unable',\n 'unadorned',\n 'unadvised',\n 'unafraid',\n 'unaired',\n 'unaligned',\n 'unaltered',\n 'unarmored',\n 'unashamed',\n 'unaudited',\n 'unawake',\n 'unaware',\n 'unbaked',\n 'unbalance',\n 'unbeaten',\n 'unbend',\n 'unbent',\n 'unbiased',\n 'unbitten',\n 'unblended',\n 'unblessed',\n 'unblock',\n 'unbolted',\n 'unbounded',\n 'unboxed',\n 'unbraided',\n 'unbridle',\n 'unbroken',\n 'unbuckled',\n 'unbundle',\n 'unburned',\n 'unbutton',\n 'uncanny',\n 'uncapped',\n 'uncaring',\n 'uncertain',\n 'unchain',\n 'unchanged',\n 'uncharted',\n 'uncheck',\n 'uncivil',\n 'unclad',\n 'unclaimed',\n 'unclamped',\n 'unclasp',\n 'uncle',\n 'unclip',\n 'uncloak',\n 'unclog',\n 'unclothed',\n 'uncoated',\n 'uncoiled',\n 'uncolored',\n 'uncombed',\n 'uncommon',\n 'uncooked',\n 'uncork',\n 'uncorrupt',\n 'uncounted',\n 'uncouple',\n 'uncouth',\n 'uncover',\n 'uncross',\n 'uncrown',\n 'uncrushed',\n 'uncured',\n 'uncurious',\n 'uncurled',\n 'uncut',\n 'undamaged',\n 'undated',\n 'undaunted',\n 'undead',\n 'undecided',\n 'undefined',\n 'underage',\n 'underarm',\n 'undercoat',\n 'undercook',\n 'undercut',\n 'underdog',\n 'underdone',\n 'underfed',\n 'underfeed',\n 'underfoot',\n 'undergo',\n 'undergrad',\n 'underhand',\n 'underline',\n 'underling',\n 'undermine',\n 'undermost',\n 'underpaid',\n 'underpass',\n 'underpay',\n 'underrate',\n 'undertake',\n 'undertone',\n 'undertook',\n 'undertow',\n 'underuse',\n 'underwear',\n 'underwent',\n 'underwire',\n 'undesired',\n 'undiluted',\n 'undivided',\n 'undocked',\n 'undoing',\n 'undone',\n 'undrafted',\n 'undress',\n 'undrilled',\n 'undusted',\n 'undying',\n 'unearned',\n 'unearth',\n 'unease',\n 'uneasily',\n 'uneasy',\n 'uneatable',\n 'uneaten',\n 'unedited',\n 'unelected',\n 'unending',\n 'unengaged',\n 'unenvied',\n 'unequal',\n 'unethical',\n 'uneven',\n 'unexpired',\n 'unexposed',\n 'unfailing',\n 'unfair',\n 'unfasten',\n 'unfazed',\n 'unfeeling',\n 'unfiled',\n 'unfilled',\n 'unfitted',\n 'unfitting',\n 'unfixable',\n 'unfixed',\n 'unflawed',\n 'unfocused',\n 'unfold',\n 'unfounded',\n 'unframed',\n 'unfreeze',\n 'unfrosted',\n 'unfrozen',\n 'unfunded',\n 'unglazed',\n 'ungloved',\n 'unglue',\n 'ungodly',\n 'ungraded',\n 'ungreased',\n 'unguarded',\n 'unguided',\n 'unhappily',\n 'unhappy',\n 'unharmed',\n 'unhealthy',\n 'unheard',\n 'unhearing',\n 'unheated',\n 'unhelpful',\n 'unhidden',\n 'unhinge',\n 'unhitched',\n 'unholy',\n 'unhook',\n 'unicorn',\n 'unicycle',\n 'unified',\n 'unifier',\n 'uniformed',\n 'uniformly',\n 'unify',\n 'unimpeded',\n 'uninjured',\n 'uninstall',\n 'uninsured',\n 'uninvited',\n 'union',\n 'uniquely',\n 'unisexual',\n 'unison',\n 'unissued',\n 'unit',\n 'universal',\n 'universe',\n 'unjustly',\n 'unkempt',\n 'unkind',\n 'unknotted',\n 'unknowing',\n 'unknown',\n 'unlaced',\n 'unlatch',\n 'unlawful',\n 'unleaded',\n 'unlearned',\n 'unleash',\n 'unless',\n 'unleveled',\n 'unlighted',\n 'unlikable',\n 'unlimited',\n 'unlined',\n 'unlinked',\n 'unlisted',\n 'unlit',\n 'unlivable',\n 'unloaded',\n 'unloader',\n 'unlocked',\n 'unlocking',\n 'unlovable',\n 'unloved',\n 'unlovely',\n 'unloving',\n 'unluckily',\n 'unlucky',\n 'unmade',\n 'unmanaged',\n 'unmanned',\n 'unmapped',\n 'unmarked',\n 'unmasked',\n 'unmasking',\n 'unmatched',\n 'unmindful',\n 'unmixable',\n 'unmixed',\n 'unmolded',\n 'unmoral',\n 'unmovable',\n 'unmoved',\n 'unmoving',\n 'unnamable',\n 'unnamed',\n 'unnatural',\n 'unneeded',\n 'unnerve',\n 'unnerving',\n 'unnoticed',\n 'unopened',\n 'unopposed',\n 'unpack',\n 'unpadded',\n 'unpaid',\n 'unpainted',\n 'unpaired',\n 'unpaved',\n 'unpeeled',\n 'unpicked',\n 'unpiloted',\n 'unpinned',\n 'unplanned',\n 'unplanted',\n 'unpleased',\n 'unpledged',\n 'unplowed',\n 'unplug',\n 'unpopular',\n 'unproven',\n 'unquote',\n 'unranked',\n 'unrated',\n 'unraveled',\n 'unreached',\n 'unread',\n 'unreal',\n 'unreeling',\n 'unrefined',\n 'unrelated',\n 'unrented',\n 'unrest',\n 'unretired',\n 'unrevised',\n 'unrigged',\n 'unripe',\n 'unrivaled',\n 'unroasted',\n 'unrobed',\n 'unroll',\n 'unruffled',\n 'unruly',\n 'unrushed',\n 'unsaddle',\n 'unsafe',\n 'unsaid',\n 'unsalted',\n 'unsaved',\n 'unsavory',\n 'unscathed',\n 'unscented',\n 'unscrew',\n 'unsealed',\n 'unseated',\n 'unsecured',\n 'unseeing',\n 'unseemly',\n 'unseen',\n 'unselect',\n 'unselfish',\n 'unsent',\n 'unsettled',\n 'unshackle',\n 'unshaken',\n 'unshaved',\n 'unshaven',\n 'unsheathe',\n 'unshipped',\n 'unsightly',\n 'unsigned',\n 'unskilled',\n 'unsliced',\n 'unsmooth',\n 'unsnap',\n 'unsocial',\n 'unsoiled',\n 'unsold',\n 'unsolved',\n 'unsorted',\n 'unspoiled',\n 'unspoken',\n 'unstable',\n 'unstaffed',\n 'unstamped',\n 'unsteady',\n 'unsterile',\n 'unstirred',\n 'unstitch',\n 'unstopped',\n 'unstuck',\n 'unstuffed',\n 'unstylish',\n 'unsubtle',\n 'unsubtly',\n 'unsuited',\n 'unsure',\n 'unsworn',\n 'untagged',\n 'untainted',\n 'untaken',\n 'untamed',\n 'untangled',\n 'untapped',\n 'untaxed',\n 'unthawed',\n 'unthread',\n 'untidy',\n 'untie',\n 'until',\n 'untimed',\n 'untimely',\n 'untitled',\n 'untoasted',\n 'untold',\n 'untouched',\n 'untracked',\n 'untrained',\n 'untreated',\n 'untried',\n 'untrimmed',\n 'untrue',\n 'untruth',\n 'unturned',\n 'untwist',\n 'untying',\n 'unusable',\n 'unused',\n 'unusual',\n 'unvalued',\n 'unvaried',\n 'unvarying',\n 'unveiled',\n 'unveiling',\n 'unvented',\n 'unviable',\n 'unvisited',\n 'unvocal',\n 'unwanted',\n 'unwarlike',\n 'unwary',\n 'unwashed',\n 'unwatched',\n 'unweave',\n 'unwed',\n 'unwelcome',\n 'unwell',\n 'unwieldy',\n 'unwilling',\n 'unwind',\n 'unwired',\n 'unwitting',\n 'unwomanly',\n 'unworldly',\n 'unworn',\n 'unworried',\n 'unworthy',\n 'unwound',\n 'unwoven',\n 'unwrapped',\n 'unwritten',\n 'unzip',\n 'upbeat',\n 'upchuck',\n 'upcoming',\n 'upcountry',\n 'update',\n 'upfront',\n 'upgrade',\n 'upheaval',\n 'upheld',\n 'uphill',\n 'uphold',\n 'uplifted',\n 'uplifting',\n 'upload',\n 'upon',\n 'upper',\n 'upright',\n 'uprising',\n 'upriver',\n 'uproar',\n 'uproot',\n 'upscale',\n 'upside',\n 'upstage',\n 'upstairs',\n 'upstart',\n 'upstate',\n 'upstream',\n 'upstroke',\n 'upswing',\n 'uptake',\n 'uptight',\n 'uptown',\n 'upturned',\n 'upward',\n 'upwind',\n 'uranium',\n 'urban',\n 'urchin',\n 'urethane',\n 'urgency',\n 'urgent',\n 'urging',\n 'urologist',\n 'urology',\n 'usable',\n 'usage',\n 'useable',\n 'used',\n 'uselessly',\n 'user',\n 'usher',\n 'usual',\n 'utensil',\n 'utility',\n 'utilize',\n 'utmost',\n 'utopia',\n 'utter',\n 'vacancy',\n 'vacant',\n 'vacate',\n 'vacation',\n 'vagabond',\n 'vagrancy',\n 'vagrantly',\n 'vaguely',\n 'vagueness',\n 'valiant',\n 'valid',\n 'valium',\n 'valley',\n 'valuables',\n 'value',\n 'vanilla',\n 'vanish',\n 'vanity',\n 'vanquish',\n 'vantage',\n 'vaporizer',\n 'variable',\n 'variably',\n 'varied',\n 'variety',\n 'various',\n 'varmint',\n 'varnish',\n 'varsity',\n 'varying',\n 'vascular',\n 'vaseline',\n 'vastly',\n 'vastness',\n 'veal',\n 'vegan',\n 'veggie',\n 'vehicular',\n 'velcro',\n 'velocity',\n 'velvet',\n 'vendetta',\n 'vending',\n 'vendor',\n 'veneering',\n 'vengeful',\n 'venomous',\n 'ventricle',\n 'venture',\n 'venue',\n 'venus',\n 'verbalize',\n 'verbally',\n 'verbose',\n 'verdict',\n 'verify',\n 'verse',\n 'version',\n 'versus',\n 'vertebrae',\n 'vertical',\n 'vertigo',\n 'very',\n 'vessel',\n 'vest',\n 'veteran',\n 'veto',\n 'vexingly',\n 'viability',\n 'viable',\n 'vibes',\n 'vice',\n 'vicinity',\n 'victory',\n 'video',\n 'viewable',\n 'viewer',\n 'viewing',\n 'viewless',\n 'viewpoint',\n 'vigorous',\n 'village',\n 'villain',\n 'vindicate',\n 'vineyard',\n 'vintage',\n 'violate',\n 'violation',\n 'violator',\n 'violet',\n 'violin',\n 'viper',\n 'viral',\n 'virtual',\n 'virtuous',\n 'virus',\n 'visa',\n 'viscosity',\n 'viscous',\n 'viselike',\n 'visible',\n 'visibly',\n 'vision',\n 'visiting',\n 'visitor',\n 'visor',\n 'vista',\n 'vitality',\n 'vitalize',\n 'vitally',\n 'vitamins',\n 'vivacious',\n 'vividly',\n 'vividness',\n 'vixen',\n 'vocalist',\n 'vocalize',\n 'vocally',\n 'vocation',\n 'voice',\n 'voicing',\n 'void',\n 'volatile',\n 'volley',\n 'voltage',\n 'volumes',\n 'voter',\n 'voting',\n 'voucher',\n 'vowed',\n 'vowel',\n 'voyage',\n 'wackiness',\n 'wad',\n 'wafer',\n 'waffle',\n 'waged',\n 'wager',\n 'wages',\n 'waggle',\n 'wagon',\n 'wake',\n 'waking',\n 'walk',\n 'walmart',\n 'walnut',\n 'walrus',\n 'waltz',\n 'wand',\n 'wannabe',\n 'wanted',\n 'wanting',\n 'wasabi',\n 'washable',\n 'washbasin',\n 'washboard',\n 'washbowl',\n 'washcloth',\n 'washday',\n 'washed',\n 'washer',\n 'washhouse',\n 'washing',\n 'washout',\n 'washroom',\n 'washstand',\n 'washtub',\n 'wasp',\n 'wasting',\n 'watch',\n 'water',\n 'waviness',\n 'waving',\n 'wavy',\n 'whacking',\n 'whacky',\n 'wham',\n 'wharf',\n 'wheat',\n 'whenever',\n 'whiff',\n 'whimsical',\n 'whinny',\n 'whiny',\n 'whisking',\n 'whoever',\n 'whole',\n 'whomever',\n 'whoopee',\n 'whooping',\n 'whoops',\n 'why',\n 'wick',\n 'widely',\n 'widen',\n 'widget',\n 'widow',\n 'width',\n 'wieldable',\n 'wielder',\n 'wife',\n 'wifi',\n 'wikipedia',\n 'wildcard',\n 'wildcat',\n 'wilder',\n 'wildfire',\n 'wildfowl',\n 'wildland',\n 'wildlife',\n 'wildly',\n 'wildness',\n 'willed',\n 'willfully',\n 'willing',\n 'willow',\n 'willpower',\n 'wilt',\n 'wimp',\n 'wince',\n 'wincing',\n 'wind',\n 'wing',\n 'winking',\n 'winner',\n 'winnings',\n 'winter',\n 'wipe',\n 'wired',\n 'wireless',\n 'wiring',\n 'wiry',\n 'wisdom',\n 'wise',\n 'wish',\n 'wisplike',\n 'wispy',\n 'wistful',\n 'wizard',\n 'wobble',\n 'wobbling',\n 'wobbly',\n 'wok',\n 'wolf',\n 'wolverine',\n 'womanhood',\n 'womankind',\n 'womanless',\n 'womanlike',\n 'womanly',\n 'womb',\n 'woof',\n 'wooing',\n 'wool',\n 'woozy',\n 'word',\n 'work',\n 'worried',\n 'worrier',\n 'worrisome',\n 'worry',\n 'worsening',\n 'worshiper',\n 'worst',\n 'wound',\n 'woven',\n 'wow',\n 'wrangle',\n 'wrath',\n 'wreath',\n 'wreckage',\n 'wrecker',\n 'wrecking',\n 'wrench',\n 'wriggle',\n 'wriggly',\n 'wrinkle',\n 'wrinkly',\n 'wrist',\n 'writing',\n 'written',\n 'wrongdoer',\n 'wronged',\n 'wrongful',\n 'wrongly',\n 'wrongness',\n 'wrought',\n 'xbox',\n 'xerox',\n 'yahoo',\n 'yam',\n 'yanking',\n 'yapping',\n 'yard',\n 'yarn',\n 'yeah',\n 'yearbook',\n 'yearling',\n 'yearly',\n 'yearning',\n 'yeast',\n 'yelling',\n 'yelp',\n 'yen',\n 'yesterday',\n 'yiddish',\n 'yield',\n 'yin',\n 'yippee',\n 'yo-yo',\n 'yodel',\n 'yoga',\n 'yogurt',\n 'yonder',\n 'yoyo',\n 'yummy',\n 'zap',\n 'zealous',\n 'zebra',\n 'zen',\n 'zeppelin',\n 'zero',\n 'zestfully',\n 'zesty',\n 'zigzagged',\n 'zipfile',\n 'zipping',\n 'zippy',\n 'zips',\n 'zit',\n 'zodiac',\n 'zombie',\n 'zone',\n 'zoning',\n 'zookeeper',\n 'zoologist',\n 'zoology',\n 'zoom',\n];\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newSecureWords = void 0;\nconst getSecureRandom_1 = require(\"../primitives/getSecureRandom\");\nconst wordlist_1 = require(\"./wordlist\");\nasync function newSecureWords(size = 6) {\n let words = [];\n for (let i = 0; i < size; i++) {\n words.push(wordlist_1.wordlist[await (0, getSecureRandom_1.getSecureRandomNumber)(0, wordlist_1.wordlist.length)]);\n }\n return words;\n}\nexports.newSecureWords = newSecureWords;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newSecurePassphrase = void 0;\nconst __1 = require(\"..\");\nasync function newSecurePassphrase(size = 6) {\n return (await (0, __1.newSecureWords)(size)).join('-');\n}\nexports.newSecurePassphrase = newSecurePassphrase;\n", "export default {};\n", "(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitsToBytes = exports.bytesToBits = exports.lpad = void 0;\nfunction lpad(str, padString, length) {\n while (str.length < length) {\n str = padString + str;\n }\n return str;\n}\nexports.lpad = lpad;\nfunction bytesToBits(bytes) {\n let res = '';\n for (let i = 0; i < bytes.length; i++) {\n let x = bytes.at(i);\n res += lpad(x.toString(2), '0', 8);\n }\n return res;\n}\nexports.bytesToBits = bytesToBits;\nfunction bitsToBytes(src) {\n if (src.length % 8 !== 0) {\n throw Error('Uneven bits');\n }\n let res = [];\n while (src.length > 0) {\n res.push(parseInt(src.slice(0, 8), 2));\n src = src.slice(8);\n }\n return Buffer.from(res);\n}\nexports.bitsToBytes = bitsToBytes;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordlist = void 0;\nconst EN = ['abandon', 'ability', 'able', 'about', 'above', 'absent', 'absorb', 'abstract', 'absurd', 'abuse', 'access', 'accident', 'account', 'accuse', 'achieve', 'acid', 'acoustic', 'acquire', 'across', 'act', 'action', 'actor', 'actress', 'actual', 'adapt', 'add', 'addict', 'address', 'adjust', 'admit', 'adult', 'advance', 'advice', 'aerobic', 'affair', 'afford', 'afraid', 'again', 'age', 'agent', 'agree', 'ahead', 'aim', 'air', 'airport', 'aisle', 'alarm', 'album', 'alcohol', 'alert', 'alien', 'all', 'alley', 'allow', 'almost', 'alone', 'alpha', 'already', 'also', 'alter', 'always', 'amateur', 'amazing', 'among', 'amount', 'amused', 'analyst', 'anchor', 'ancient', 'anger', 'angle', 'angry', 'animal', 'ankle', 'announce', 'annual', 'another', 'answer', 'antenna', 'antique', 'anxiety', 'any', 'apart', 'apology', 'appear', 'apple', 'approve', 'april', 'arch', 'arctic', 'area', 'arena', 'argue', 'arm', 'armed', 'armor', 'army', 'around', 'arrange', 'arrest', 'arrive', 'arrow', 'art', 'artefact', 'artist', 'artwork', 'ask', 'aspect', 'assault', 'asset', 'assist', 'assume', 'asthma', 'athlete', 'atom', 'attack', 'attend', 'attitude', 'attract', 'auction', 'audit', 'august', 'aunt', 'author', 'auto', 'autumn', 'average', 'avocado', 'avoid', 'awake', 'aware', 'away', 'awesome', 'awful', 'awkward', 'axis',\n 'baby', 'bachelor', 'bacon', 'badge', 'bag', 'balance', 'balcony', 'ball', 'bamboo', 'banana', 'banner', 'bar', 'barely', 'bargain', 'barrel', 'base', 'basic', 'basket', 'battle', 'beach', 'bean', 'beauty', 'because', 'become', 'beef', 'before', 'begin', 'behave', 'behind', 'believe', 'below', 'belt', 'bench', 'benefit', 'best', 'betray', 'better', 'between', 'beyond', 'bicycle', 'bid', 'bike', 'bind', 'biology', 'bird', 'birth', 'bitter', 'black', 'blade', 'blame', 'blanket', 'blast', 'bleak', 'bless', 'blind', 'blood', 'blossom', 'blouse', 'blue', 'blur', 'blush', 'board', 'boat', 'body', 'boil', 'bomb', 'bone', 'bonus', 'book', 'boost', 'border', 'boring', 'borrow', 'boss', 'bottom', 'bounce', 'box', 'boy', 'bracket', 'brain', 'brand', 'brass', 'brave', 'bread', 'breeze', 'brick', 'bridge', 'brief', 'bright', 'bring', 'brisk', 'broccoli', 'broken', 'bronze', 'broom', 'brother', 'brown', 'brush', 'bubble', 'buddy', 'budget', 'buffalo', 'build', 'bulb', 'bulk', 'bullet', 'bundle', 'bunker', 'burden', 'burger', 'burst', 'bus', 'business', 'busy', 'butter', 'buyer', 'buzz',\n 'cabbage', 'cabin', 'cable', 'cactus', 'cage', 'cake', 'call', 'calm', 'camera', 'camp', 'can', 'canal', 'cancel', 'candy', 'cannon', 'canoe', 'canvas', 'canyon', 'capable', 'capital', 'captain', 'car', 'carbon', 'card', 'cargo', 'carpet', 'carry', 'cart', 'case', 'cash', 'casino', 'castle', 'casual', 'cat', 'catalog', 'catch', 'category', 'cattle', 'caught', 'cause', 'caution', 'cave', 'ceiling', 'celery', 'cement', 'census', 'century', 'cereal', 'certain', 'chair', 'chalk', 'champion', 'change', 'chaos', 'chapter', 'charge', 'chase', 'chat', 'cheap', 'check', 'cheese', 'chef', 'cherry', 'chest', 'chicken', 'chief', 'child', 'chimney', 'choice', 'choose', 'chronic', 'chuckle', 'chunk', 'churn', 'cigar', 'cinnamon', 'circle', 'citizen', 'city', 'civil', 'claim', 'clap', 'clarify', 'claw', 'clay', 'clean', 'clerk', 'clever', 'click', 'client', 'cliff', 'climb', 'clinic', 'clip', 'clock', 'clog', 'close', 'cloth', 'cloud', 'clown', 'club', 'clump', 'cluster', 'clutch', 'coach', 'coast', 'coconut', 'code', 'coffee', 'coil', 'coin', 'collect', 'color', 'column', 'combine', 'come', 'comfort', 'comic', 'common', 'company', 'concert', 'conduct', 'confirm', 'congress', 'connect', 'consider', 'control', 'convince', 'cook', 'cool', 'copper', 'copy', 'coral', 'core', 'corn', 'correct', 'cost', 'cotton', 'couch', 'country', 'couple', 'course', 'cousin', 'cover', 'coyote', 'crack', 'cradle', 'craft', 'cram', 'crane', 'crash', 'crater', 'crawl', 'crazy', 'cream', 'credit', 'creek', 'crew', 'cricket', 'crime', 'crisp', 'critic', 'crop', 'cross', 'crouch', 'crowd', 'crucial', 'cruel', 'cruise', 'crumble', 'crunch', 'crush', 'cry', 'crystal', 'cube', 'culture', 'cup', 'cupboard', 'curious', 'current', 'curtain', 'curve', 'cushion', 'custom', 'cute', 'cycle',\n 'dad', 'damage', 'damp', 'dance', 'danger', 'daring', 'dash', 'daughter', 'dawn', 'day', 'deal', 'debate', 'debris', 'decade', 'december', 'decide', 'decline', 'decorate', 'decrease', 'deer', 'defense', 'define', 'defy', 'degree', 'delay', 'deliver', 'demand', 'demise', 'denial', 'dentist', 'deny', 'depart', 'depend', 'deposit', 'depth', 'deputy', 'derive', 'describe', 'desert', 'design', 'desk', 'despair', 'destroy', 'detail', 'detect', 'develop', 'device', 'devote', 'diagram', 'dial', 'diamond', 'diary', 'dice', 'diesel', 'diet', 'differ', 'digital', 'dignity', 'dilemma', 'dinner', 'dinosaur', 'direct', 'dirt', 'disagree', 'discover', 'disease', 'dish', 'dismiss', 'disorder', 'display', 'distance', 'divert', 'divide', 'divorce', 'dizzy', 'doctor', 'document', 'dog', 'doll', 'dolphin', 'domain', 'donate', 'donkey', 'donor', 'door', 'dose', 'double', 'dove', 'draft', 'dragon', 'drama', 'drastic', 'draw', 'dream', 'dress', 'drift', 'drill', 'drink', 'drip', 'drive', 'drop', 'drum', 'dry', 'duck', 'dumb', 'dune', 'during', 'dust', 'dutch', 'duty', 'dwarf', 'dynamic',\n 'eager', 'eagle', 'early', 'earn', 'earth', 'easily', 'east', 'easy', 'echo', 'ecology', 'economy', 'edge', 'edit', 'educate', 'effort', 'egg', 'eight', 'either', 'elbow', 'elder', 'electric', 'elegant', 'element', 'elephant', 'elevator', 'elite', 'else', 'embark', 'embody', 'embrace', 'emerge', 'emotion', 'employ', 'empower', 'empty', 'enable', 'enact', 'end', 'endless', 'endorse', 'enemy', 'energy', 'enforce', 'engage', 'engine', 'enhance', 'enjoy', 'enlist', 'enough', 'enrich', 'enroll', 'ensure', 'enter', 'entire', 'entry', 'envelope', 'episode', 'equal', 'equip', 'era', 'erase', 'erode', 'erosion', 'error', 'erupt', 'escape', 'essay', 'essence', 'estate', 'eternal', 'ethics', 'evidence', 'evil', 'evoke', 'evolve', 'exact', 'example', 'excess', 'exchange', 'excite', 'exclude', 'excuse', 'execute', 'exercise', 'exhaust', 'exhibit', 'exile', 'exist', 'exit', 'exotic', 'expand', 'expect', 'expire', 'explain', 'expose', 'express', 'extend', 'extra', 'eye', 'eyebrow',\n 'fabric', 'face', 'faculty', 'fade', 'faint', 'faith', 'fall', 'false', 'fame', 'family', 'famous', 'fan', 'fancy', 'fantasy', 'farm', 'fashion', 'fat', 'fatal', 'father', 'fatigue', 'fault', 'favorite', 'feature', 'february', 'federal', 'fee', 'feed', 'feel', 'female', 'fence', 'festival', 'fetch', 'fever', 'few', 'fiber', 'fiction', 'field', 'figure', 'file', 'film', 'filter', 'final', 'find', 'fine', 'finger', 'finish', 'fire', 'firm', 'first', 'fiscal', 'fish', 'fit', 'fitness', 'fix', 'flag', 'flame', 'flash', 'flat', 'flavor', 'flee', 'flight', 'flip', 'float', 'flock', 'floor', 'flower', 'fluid', 'flush', 'fly', 'foam', 'focus', 'fog', 'foil', 'fold', 'follow', 'food', 'foot', 'force', 'forest', 'forget', 'fork', 'fortune', 'forum', 'forward', 'fossil', 'foster', 'found', 'fox', 'fragile', 'frame', 'frequent', 'fresh', 'friend', 'fringe', 'frog', 'front', 'frost', 'frown', 'frozen', 'fruit', 'fuel', 'fun', 'funny', 'furnace', 'fury', 'future',\n 'gadget', 'gain', 'galaxy', 'gallery', 'game', 'gap', 'garage', 'garbage', 'garden', 'garlic', 'garment', 'gas', 'gasp', 'gate', 'gather', 'gauge', 'gaze', 'general', 'genius', 'genre', 'gentle', 'genuine', 'gesture', 'ghost', 'giant', 'gift', 'giggle', 'ginger', 'giraffe', 'girl', 'give', 'glad', 'glance', 'glare', 'glass', 'glide', 'glimpse', 'globe', 'gloom', 'glory', 'glove', 'glow', 'glue', 'goat', 'goddess', 'gold', 'good', 'goose', 'gorilla', 'gospel', 'gossip', 'govern', 'gown', 'grab', 'grace', 'grain', 'grant', 'grape', 'grass', 'gravity', 'great', 'green', 'grid', 'grief', 'grit', 'grocery', 'group', 'grow', 'grunt', 'guard', 'guess', 'guide', 'guilt', 'guitar', 'gun', 'gym',\n 'habit', 'hair', 'half', 'hammer', 'hamster', 'hand', 'happy', 'harbor', 'hard', 'harsh', 'harvest', 'hat', 'have', 'hawk', 'hazard', 'head', 'health', 'heart', 'heavy', 'hedgehog', 'height', 'hello', 'helmet', 'help', 'hen', 'hero', 'hidden', 'high', 'hill', 'hint', 'hip', 'hire', 'history', 'hobby', 'hockey', 'hold', 'hole', 'holiday', 'hollow', 'home', 'honey', 'hood', 'hope', 'horn', 'horror', 'horse', 'hospital', 'host', 'hotel', 'hour', 'hover', 'hub', 'huge', 'human', 'humble', 'humor', 'hundred', 'hungry', 'hunt', 'hurdle', 'hurry', 'hurt', 'husband', 'hybrid',\n 'ice', 'icon', 'idea', 'identify', 'idle', 'ignore', 'ill', 'illegal', 'illness', 'image', 'imitate', 'immense', 'immune', 'impact', 'impose', 'improve', 'impulse', 'inch', 'include', 'income', 'increase', 'index', 'indicate', 'indoor', 'industry', 'infant', 'inflict', 'inform', 'inhale', 'inherit', 'initial', 'inject', 'injury', 'inmate', 'inner', 'innocent', 'input', 'inquiry', 'insane', 'insect', 'inside', 'inspire', 'install', 'intact', 'interest', 'into', 'invest', 'invite', 'involve', 'iron', 'island', 'isolate', 'issue', 'item', 'ivory',\n 'jacket', 'jaguar', 'jar', 'jazz', 'jealous', 'jeans', 'jelly', 'jewel', 'job', 'join', 'joke', 'journey', 'joy', 'judge', 'juice', 'jump', 'jungle', 'junior', 'junk', 'just',\n 'kangaroo', 'keen', 'keep', 'ketchup', 'key', 'kick', 'kid', 'kidney', 'kind', 'kingdom', 'kiss', 'kit', 'kitchen', 'kite', 'kitten', 'kiwi', 'knee', 'knife', 'knock', 'know',\n 'lab', 'label', 'labor', 'ladder', 'lady', 'lake', 'lamp', 'language', 'laptop', 'large', 'later', 'latin', 'laugh', 'laundry', 'lava', 'law', 'lawn', 'lawsuit', 'layer', 'lazy', 'leader', 'leaf', 'learn', 'leave', 'lecture', 'left', 'leg', 'legal', 'legend', 'leisure', 'lemon', 'lend', 'length', 'lens', 'leopard', 'lesson', 'letter', 'level', 'liar', 'liberty', 'library', 'license', 'life', 'lift', 'light', 'like', 'limb', 'limit', 'link', 'lion', 'liquid', 'list', 'little', 'live', 'lizard', 'load', 'loan', 'lobster', 'local', 'lock', 'logic', 'lonely', 'long', 'loop', 'lottery', 'loud', 'lounge', 'love', 'loyal', 'lucky', 'luggage', 'lumber', 'lunar', 'lunch', 'luxury', 'lyrics',\n 'machine', 'mad', 'magic', 'magnet', 'maid', 'mail', 'main', 'major', 'make', 'mammal', 'man', 'manage', 'mandate', 'mango', 'mansion', 'manual', 'maple', 'marble', 'march', 'margin', 'marine', 'market', 'marriage', 'mask', 'mass', 'master', 'match', 'material', 'math', 'matrix', 'matter', 'maximum', 'maze', 'meadow', 'mean', 'measure', 'meat', 'mechanic', 'medal', 'media', 'melody', 'melt', 'member', 'memory', 'mention', 'menu', 'mercy', 'merge', 'merit', 'merry', 'mesh', 'message', 'metal', 'method', 'middle', 'midnight', 'milk', 'million', 'mimic', 'mind', 'minimum', 'minor', 'minute', 'miracle', 'mirror', 'misery', 'miss', 'mistake', 'mix', 'mixed', 'mixture', 'mobile', 'model', 'modify', 'mom', 'moment', 'monitor', 'monkey', 'monster', 'month', 'moon', 'moral', 'more', 'morning', 'mosquito', 'mother', 'motion', 'motor', 'mountain', 'mouse', 'move', 'movie', 'much', 'muffin', 'mule', 'multiply', 'muscle', 'museum', 'mushroom', 'music', 'must', 'mutual', 'myself', 'mystery', 'myth',\n 'naive', 'name', 'napkin', 'narrow', 'nasty', 'nation', 'nature', 'near', 'neck', 'need', 'negative', 'neglect', 'neither', 'nephew', 'nerve', 'nest', 'net', 'network', 'neutral', 'never', 'news', 'next', 'nice', 'night', 'noble', 'noise', 'nominee', 'noodle', 'normal', 'north', 'nose', 'notable', 'note', 'nothing', 'notice', 'novel', 'now', 'nuclear', 'number', 'nurse', 'nut',\n 'oak', 'obey', 'object', 'oblige', 'obscure', 'observe', 'obtain', 'obvious', 'occur', 'ocean', 'october', 'odor', 'off', 'offer', 'office', 'often', 'oil', 'okay', 'old', 'olive', 'olympic', 'omit', 'once', 'one', 'onion', 'online', 'only', 'open', 'opera', 'opinion', 'oppose', 'option', 'orange', 'orbit', 'orchard', 'order', 'ordinary', 'organ', 'orient', 'original', 'orphan', 'ostrich', 'other', 'outdoor', 'outer', 'output', 'outside', 'oval', 'oven', 'over', 'own', 'owner', 'oxygen', 'oyster', 'ozone',\n 'pact', 'paddle', 'page', 'pair', 'palace', 'palm', 'panda', 'panel', 'panic', 'panther', 'paper', 'parade', 'parent', 'park', 'parrot', 'party', 'pass', 'patch', 'path', 'patient', 'patrol', 'pattern', 'pause', 'pave', 'payment', 'peace', 'peanut', 'pear', 'peasant', 'pelican', 'pen', 'penalty', 'pencil', 'people', 'pepper', 'perfect', 'permit', 'person', 'pet', 'phone', 'photo', 'phrase', 'physical', 'piano', 'picnic', 'picture', 'piece', 'pig', 'pigeon', 'pill', 'pilot', 'pink', 'pioneer', 'pipe', 'pistol', 'pitch', 'pizza', 'place', 'planet', 'plastic', 'plate', 'play', 'please', 'pledge', 'pluck', 'plug', 'plunge', 'poem', 'poet', 'point', 'polar', 'pole', 'police', 'pond', 'pony', 'pool', 'popular', 'portion', 'position', 'possible', 'post', 'potato', 'pottery', 'poverty', 'powder', 'power', 'practice', 'praise', 'predict', 'prefer', 'prepare', 'present', 'pretty', 'prevent', 'price', 'pride', 'primary', 'print', 'priority', 'prison', 'private', 'prize', 'problem', 'process', 'produce', 'profit', 'program', 'project', 'promote', 'proof', 'property', 'prosper', 'protect', 'proud', 'provide', 'public', 'pudding', 'pull', 'pulp', 'pulse', 'pumpkin', 'punch', 'pupil', 'puppy', 'purchase', 'purity', 'purpose', 'purse', 'push', 'put', 'puzzle', 'pyramid',\n 'quality', 'quantum', 'quarter', 'question', 'quick', 'quit', 'quiz', 'quote',\n 'rabbit', 'raccoon', 'race', 'rack', 'radar', 'radio', 'rail', 'rain', 'raise', 'rally', 'ramp', 'ranch', 'random', 'range', 'rapid', 'rare', 'rate', 'rather', 'raven', 'raw', 'razor', 'ready', 'real', 'reason', 'rebel', 'rebuild', 'recall', 'receive', 'recipe', 'record', 'recycle', 'reduce', 'reflect', 'reform', 'refuse', 'region', 'regret', 'regular', 'reject', 'relax', 'release', 'relief', 'rely', 'remain', 'remember', 'remind', 'remove', 'render', 'renew', 'rent', 'reopen', 'repair', 'repeat', 'replace', 'report', 'require', 'rescue', 'resemble', 'resist', 'resource', 'response', 'result', 'retire', 'retreat', 'return', 'reunion', 'reveal', 'review', 'reward', 'rhythm', 'rib', 'ribbon', 'rice', 'rich', 'ride', 'ridge', 'rifle', 'right', 'rigid', 'ring', 'riot', 'ripple', 'risk', 'ritual', 'rival', 'river', 'road', 'roast', 'robot', 'robust', 'rocket', 'romance', 'roof', 'rookie', 'room', 'rose', 'rotate', 'rough', 'round', 'route', 'royal', 'rubber', 'rude', 'rug', 'rule', 'run', 'runway', 'rural',\n 'sad', 'saddle', 'sadness', 'safe', 'sail', 'salad', 'salmon', 'salon', 'salt', 'salute', 'same', 'sample', 'sand', 'satisfy', 'satoshi', 'sauce', 'sausage', 'save', 'say', 'scale', 'scan', 'scare', 'scatter', 'scene', 'scheme', 'school', 'science', 'scissors', 'scorpion', 'scout', 'scrap', 'screen', 'script', 'scrub', 'sea', 'search', 'season', 'seat', 'second', 'secret', 'section', 'security', 'seed', 'seek', 'segment', 'select', 'sell', 'seminar', 'senior', 'sense', 'sentence', 'series', 'service', 'session', 'settle', 'setup', 'seven', 'shadow', 'shaft', 'shallow', 'share', 'shed', 'shell', 'sheriff', 'shield', 'shift', 'shine', 'ship', 'shiver', 'shock', 'shoe', 'shoot', 'shop', 'short', 'shoulder', 'shove', 'shrimp', 'shrug', 'shuffle', 'shy', 'sibling', 'sick', 'side', 'siege', 'sight', 'sign', 'silent', 'silk', 'silly', 'silver', 'similar', 'simple', 'since', 'sing', 'siren', 'sister', 'situate', 'six', 'size', 'skate', 'sketch', 'ski', 'skill', 'skin', 'skirt', 'skull', 'slab', 'slam', 'sleep', 'slender', 'slice', 'slide', 'slight', 'slim', 'slogan', 'slot', 'slow', 'slush', 'small', 'smart', 'smile', 'smoke', 'smooth', 'snack', 'snake', 'snap', 'sniff', 'snow', 'soap', 'soccer', 'social', 'sock', 'soda', 'soft', 'solar', 'soldier', 'solid', 'solution', 'solve', 'someone', 'song', 'soon', 'sorry', 'sort', 'soul', 'sound', 'soup', 'source', 'south', 'space', 'spare', 'spatial', 'spawn', 'speak', 'special', 'speed', 'spell', 'spend', 'sphere', 'spice', 'spider', 'spike', 'spin', 'spirit', 'split', 'spoil', 'sponsor', 'spoon', 'sport', 'spot', 'spray', 'spread', 'spring', 'spy', 'square', 'squeeze', 'squirrel', 'stable', 'stadium', 'staff', 'stage', 'stairs', 'stamp', 'stand', 'start', 'state', 'stay', 'steak', 'steel', 'stem', 'step', 'stereo', 'stick', 'still', 'sting', 'stock', 'stomach', 'stone', 'stool', 'story', 'stove', 'strategy', 'street', 'strike', 'strong', 'struggle', 'student', 'stuff', 'stumble', 'style', 'subject', 'submit', 'subway', 'success', 'such', 'sudden', 'suffer', 'sugar', 'suggest', 'suit', 'summer', 'sun', 'sunny', 'sunset', 'super', 'supply', 'supreme', 'sure', 'surface', 'surge', 'surprise', 'surround', 'survey', 'suspect', 'sustain', 'swallow', 'swamp', 'swap', 'swarm', 'swear', 'sweet', 'swift', 'swim', 'swing', 'switch', 'sword', 'symbol', 'symptom', 'syrup', 'system',\n 'table', 'tackle', 'tag', 'tail', 'talent', 'talk', 'tank', 'tape', 'target', 'task', 'taste', 'tattoo', 'taxi', 'teach', 'team', 'tell', 'ten', 'tenant', 'tennis', 'tent', 'term', 'test', 'text', 'thank', 'that', 'theme', 'then', 'theory', 'there', 'they', 'thing', 'this', 'thought', 'three', 'thrive', 'throw', 'thumb', 'thunder', 'ticket', 'tide', 'tiger', 'tilt', 'timber', 'time', 'tiny', 'tip', 'tired', 'tissue', 'title', 'toast', 'tobacco', 'today', 'toddler', 'toe', 'together', 'toilet', 'token', 'tomato', 'tomorrow', 'tone', 'tongue', 'tonight', 'tool', 'tooth', 'top', 'topic', 'topple', 'torch', 'tornado', 'tortoise', 'toss', 'total', 'tourist', 'toward', 'tower', 'town', 'toy', 'track', 'trade', 'traffic', 'tragic', 'train', 'transfer', 'trap', 'trash', 'travel', 'tray', 'treat', 'tree', 'trend', 'trial', 'tribe', 'trick', 'trigger', 'trim', 'trip', 'trophy', 'trouble', 'truck', 'true', 'truly', 'trumpet', 'trust', 'truth', 'try', 'tube', 'tuition', 'tumble', 'tuna', 'tunnel', 'turkey', 'turn', 'turtle', 'twelve', 'twenty', 'twice', 'twin', 'twist', 'two', 'type', 'typical',\n 'ugly', 'umbrella', 'unable', 'unaware', 'uncle', 'uncover', 'under', 'undo', 'unfair', 'unfold', 'unhappy', 'uniform', 'unique', 'unit', 'universe', 'unknown', 'unlock', 'until', 'unusual', 'unveil', 'update', 'upgrade', 'uphold', 'upon', 'upper', 'upset', 'urban', 'urge', 'usage', 'use', 'used', 'useful', 'useless', 'usual', 'utility',\n 'vacant', 'vacuum', 'vague', 'valid', 'valley', 'valve', 'van', 'vanish', 'vapor', 'various', 'vast', 'vault', 'vehicle', 'velvet', 'vendor', 'venture', 'venue', 'verb', 'verify', 'version', 'very', 'vessel', 'veteran', 'viable', 'vibrant', 'vicious', 'victory', 'video', 'view', 'village', 'vintage', 'violin', 'virtual', 'virus', 'visa', 'visit', 'visual', 'vital', 'vivid', 'vocal', 'voice', 'void', 'volcano', 'volume', 'vote', 'voyage',\n 'wage', 'wagon', 'wait', 'walk', 'wall', 'walnut', 'want', 'warfare', 'warm', 'warrior', 'wash', 'wasp', 'waste', 'water', 'wave', 'way', 'wealth', 'weapon', 'wear', 'weasel', 'weather', 'web', 'wedding', 'weekend', 'weird', 'welcome', 'west', 'wet', 'whale', 'what', 'wheat', 'wheel', 'when', 'where', 'whip', 'whisper', 'wide', 'width', 'wife', 'wild', 'will', 'win', 'window', 'wine', 'wing', 'wink', 'winner', 'winter', 'wire', 'wisdom', 'wise', 'wish', 'witness', 'wolf', 'woman', 'wonder', 'wood', 'wool', 'word', 'work', 'world', 'worry', 'worth', 'wrap', 'wreck', 'wrestle', 'wrist', 'write', 'wrong',\n 'yard', 'year', 'yellow', 'you', 'young', 'youth',\n 'zebra', 'zero', 'zone', 'zoo'];\nexports.wordlist = EN;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mnemonicFromRandomSeed = exports.mnemonicIndexesToBytes = exports.bytesToMnemonics = exports.bytesToMnemonicIndexes = exports.mnemonicNew = exports.mnemonicValidate = exports.mnemonicToHDSeed = exports.mnemonicToWalletKey = exports.mnemonicToPrivateKey = exports.mnemonicToSeed = exports.mnemonicToEntropy = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nconst getSecureRandom_1 = require(\"../primitives/getSecureRandom\");\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst pbkdf2_sha512_1 = require(\"../primitives/pbkdf2_sha512\");\nconst binary_1 = require(\"../utils/binary\");\nconst wordlist_1 = require(\"./wordlist\");\nconst PBKDF_ITERATIONS = 100000;\nasync function isPasswordNeeded(mnemonicArray) {\n const passlessEntropy = await mnemonicToEntropy(mnemonicArray);\n return (await isPasswordSeed(passlessEntropy)) && !(await isBasicSeed(passlessEntropy));\n}\nfunction normalizeMnemonic(src) {\n return src.map((v) => v.toLowerCase().trim());\n}\nasync function isBasicSeed(entropy) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L68\n // bool Mnemonic::is_basic_seed() {\n // td::SecureString hash(64);\n // td::pbkdf2_sha512(as_slice(to_entropy()), \"TON seed version\", td::max(1, PBKDF_ITERATIONS / 256),\n // hash.as_mutable_slice());\n // return hash.as_slice()[0] == 0;\n // }\n const seed = await (0, pbkdf2_sha512_1.pbkdf2_sha512)(entropy, 'TON seed version', Math.max(1, Math.floor(PBKDF_ITERATIONS / 256)), 64);\n return seed[0] == 0;\n}\nasync function isPasswordSeed(entropy) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L75\n // bool Mnemonic::is_password_seed() {\n // td::SecureString hash(64);\n // td::pbkdf2_sha512(as_slice(to_entropy()), \"TON fast seed version\", 1, hash.as_mutable_slice());\n // return hash.as_slice()[0] == 1;\n // }\n const seed = await (0, pbkdf2_sha512_1.pbkdf2_sha512)(entropy, 'TON fast seed version', 1, 64);\n return seed[0] == 1;\n}\nasync function mnemonicToEntropy(mnemonicArray, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L52\n // td::SecureString Mnemonic::to_entropy() const {\n // td::SecureString res(64);\n // td::hmac_sha512(join(words_), password_, res.as_mutable_slice());\n // return res;\n // }\n return await (0, hmac_sha512_1.hmac_sha512)(mnemonicArray.join(' '), password && password.length > 0 ? password : '');\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nasync function mnemonicToSeed(mnemonicArray, seed, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L58\n // td::SecureString Mnemonic::to_seed() const {\n // td::SecureString hash(64);\n // td::pbkdf2_sha512(as_slice(to_entropy()), \"TON default seed\", PBKDF_ITERATIONS, hash.as_mutable_slice());\n // return hash;\n // }\n const entropy = await mnemonicToEntropy(mnemonicArray, password);\n return await (0, pbkdf2_sha512_1.pbkdf2_sha512)(entropy, seed, PBKDF_ITERATIONS, 64);\n}\nexports.mnemonicToSeed = mnemonicToSeed;\n/**\n * Extract private key from mnemonic\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns Key Pair\n */\nasync function mnemonicToPrivateKey(mnemonicArray, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L64\n // td::Ed25519::PrivateKey Mnemonic::to_private_key() const {\n // return td::Ed25519::PrivateKey(td::SecureString(as_slice(to_seed()).substr(0, td::Ed25519::PrivateKey::LENGTH)));\n // }\n mnemonicArray = normalizeMnemonic(mnemonicArray);\n const seed = (await mnemonicToSeed(mnemonicArray, 'TON default seed', password));\n let keyPair = tweetnacl_1.default.sign.keyPair.fromSeed(seed.slice(0, 32));\n return {\n publicKey: Buffer.from(keyPair.publicKey),\n secretKey: Buffer.from(keyPair.secretKey)\n };\n}\nexports.mnemonicToPrivateKey = mnemonicToPrivateKey;\n/**\n * Convert mnemonic to wallet key pair\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns Key Pair\n */\nasync function mnemonicToWalletKey(mnemonicArray, password) {\n let seedPk = await mnemonicToPrivateKey(mnemonicArray, password);\n let seedSecret = seedPk.secretKey.slice(0, 32);\n const keyPair = tweetnacl_1.default.sign.keyPair.fromSeed(seedSecret);\n return {\n publicKey: Buffer.from(keyPair.publicKey),\n secretKey: Buffer.from(keyPair.secretKey)\n };\n}\nexports.mnemonicToWalletKey = mnemonicToWalletKey;\n/**\n * Convert mnemonics to HD seed\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns 64 byte seed\n */\nasync function mnemonicToHDSeed(mnemonicArray, password) {\n mnemonicArray = normalizeMnemonic(mnemonicArray);\n return (await mnemonicToSeed(mnemonicArray, 'TON HD Keys seed', password));\n}\nexports.mnemonicToHDSeed = mnemonicToHDSeed;\n/**\n * Validate Mnemonic\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns true for valid mnemonic\n */\nasync function mnemonicValidate(mnemonicArray, password) {\n // Normalize\n mnemonicArray = normalizeMnemonic(mnemonicArray);\n // Validate mnemonic words\n for (let word of mnemonicArray) {\n if (wordlist_1.wordlist.indexOf(word) < 0) {\n return false;\n }\n }\n // Check password\n if (password && password.length > 0) {\n if (!await isPasswordNeeded(mnemonicArray)) {\n return false;\n }\n }\n // Validate seed\n return await isBasicSeed(await mnemonicToEntropy(mnemonicArray, password));\n}\nexports.mnemonicValidate = mnemonicValidate;\n/**\n * Generate new Mnemonic\n * @param wordsCount number of words to generate\n * @param password mnemonic password\n * @returns\n */\nasync function mnemonicNew(wordsCount = 24, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L159\n let mnemonicArray = [];\n while (true) {\n // Regenerate new mnemonics\n mnemonicArray = [];\n for (let i = 0; i < wordsCount; i++) {\n let ind = await (0, getSecureRandom_1.getSecureRandomNumber)(0, wordlist_1.wordlist.length);\n mnemonicArray.push(wordlist_1.wordlist[ind]);\n }\n // Chek password conformance\n if (password && password.length > 0) {\n if (!await isPasswordNeeded(mnemonicArray)) {\n continue;\n }\n }\n // Check if basic seed correct\n if (!(await isBasicSeed(await mnemonicToEntropy(mnemonicArray, password)))) {\n continue;\n }\n break;\n }\n return mnemonicArray;\n}\nexports.mnemonicNew = mnemonicNew;\n/**\n * Converts bytes to mnemonics array (could be invalid for TON)\n * @param src source buffer\n * @param wordsCount number of words\n */\nfunction bytesToMnemonicIndexes(src, wordsCount) {\n let bits = (0, binary_1.bytesToBits)(src);\n let indexes = [];\n for (let i = 0; i < wordsCount; i++) {\n let sl = bits.slice(i * 11, i * 11 + 11);\n indexes.push(parseInt(sl, 2));\n }\n return indexes;\n}\nexports.bytesToMnemonicIndexes = bytesToMnemonicIndexes;\nfunction bytesToMnemonics(src, wordsCount) {\n let mnemonics = bytesToMnemonicIndexes(src, wordsCount);\n let res = [];\n for (let m of mnemonics) {\n res.push(wordlist_1.wordlist[m]);\n }\n return res;\n}\nexports.bytesToMnemonics = bytesToMnemonics;\n/**\n * Converts mnemonics indexes to buffer with zero padding in the end\n * @param src source indexes\n * @returns Buffer\n */\nfunction mnemonicIndexesToBytes(src) {\n let res = '';\n for (let s of src) {\n if (!Number.isSafeInteger(s)) {\n throw Error('Invalid input');\n }\n if (s < 0 || s >= 2028) {\n throw Error('Invalid input');\n }\n res += (0, binary_1.lpad)(s.toString(2), '0', 11);\n }\n while (res.length % 8 !== 0) {\n res = res + '0';\n }\n return (0, binary_1.bitsToBytes)(res);\n}\nexports.mnemonicIndexesToBytes = mnemonicIndexesToBytes;\n/**\n * Generates deterministically mnemonics\n * @param seed\n * @param wordsCount\n * @param password\n */\nasync function mnemonicFromRandomSeed(seed, wordsCount = 24, password) {\n const bytesLength = Math.ceil(wordsCount * 11 / 8);\n let currentSeed = seed;\n while (true) {\n // Create entropy\n let entropy = await (0, pbkdf2_sha512_1.pbkdf2_sha512)(currentSeed, 'TON mnemonic seed', Math.max(1, Math.floor(PBKDF_ITERATIONS / 256)), bytesLength);\n // Create mnemonics\n let mnemonics = bytesToMnemonics(entropy, wordsCount);\n // Check if mnemonics are valid\n if (await mnemonicValidate(mnemonics, password)) {\n return mnemonics;\n }\n currentSeed = entropy;\n }\n}\nexports.mnemonicFromRandomSeed = mnemonicFromRandomSeed;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.openBox = exports.sealBox = exports.signVerify = exports.sign = exports.keyPairFromSeed = exports.keyPairFromSecretKey = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nfunction keyPairFromSecretKey(secretKey) {\n let res = tweetnacl_1.default.sign.keyPair.fromSecretKey(new Uint8Array(secretKey));\n return {\n publicKey: Buffer.from(res.publicKey),\n secretKey: Buffer.from(res.secretKey),\n };\n}\nexports.keyPairFromSecretKey = keyPairFromSecretKey;\nfunction keyPairFromSeed(secretKey) {\n let res = tweetnacl_1.default.sign.keyPair.fromSeed(new Uint8Array(secretKey));\n return {\n publicKey: Buffer.from(res.publicKey),\n secretKey: Buffer.from(res.secretKey),\n };\n}\nexports.keyPairFromSeed = keyPairFromSeed;\nfunction sign(data, secretKey) {\n return Buffer.from(tweetnacl_1.default.sign.detached(new Uint8Array(data), new Uint8Array(secretKey)));\n}\nexports.sign = sign;\nfunction signVerify(data, signature, publicKey) {\n return tweetnacl_1.default.sign.detached.verify(new Uint8Array(data), new Uint8Array(signature), new Uint8Array(publicKey));\n}\nexports.signVerify = signVerify;\nfunction sealBox(data, nonce, key) {\n return Buffer.from(tweetnacl_1.default.secretbox(data, nonce, key));\n}\nexports.sealBox = sealBox;\nfunction openBox(data, nonce, key) {\n let res = tweetnacl_1.default.secretbox.open(data, nonce, key);\n if (!res) {\n return null;\n }\n return Buffer.from(res);\n}\nexports.openBox = openBox;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveEd25519Path = exports.deriveED25519HardenedKey = exports.getED25519MasterKeyFromSeed = void 0;\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst ED25519_CURVE = 'ed25519 seed';\nconst HARDENED_OFFSET = 0x80000000;\nasync function getED25519MasterKeyFromSeed(seed) {\n const I = await (0, hmac_sha512_1.hmac_sha512)(ED25519_CURVE, seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.getED25519MasterKeyFromSeed = getED25519MasterKeyFromSeed;\n;\nasync function deriveED25519HardenedKey(parent, index) {\n if (index >= HARDENED_OFFSET) {\n throw Error('Key index must be less than offset');\n }\n // Key Derive Path: 0x00 + parent.key + index;\n const indexBuffer = Buffer.alloc(4);\n indexBuffer.writeUInt32BE(index + HARDENED_OFFSET, 0);\n const data = Buffer.concat([Buffer.alloc(1, 0), parent.key, indexBuffer]);\n // Derive key\n const I = await (0, hmac_sha512_1.hmac_sha512)(parent.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.deriveED25519HardenedKey = deriveED25519HardenedKey;\n;\nasync function deriveEd25519Path(seed, path) {\n let state = await getED25519MasterKeyFromSeed(seed);\n let remaining = [...path];\n while (remaining.length > 0) {\n let index = remaining[0];\n remaining = remaining.slice(1);\n state = await deriveED25519HardenedKey(state, index);\n }\n return state.key;\n}\nexports.deriveEd25519Path = deriveEd25519Path;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveSymmetricPath = exports.deriveSymmetricHardenedKey = exports.getSymmetricMasterKeyFromSeed = void 0;\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst SYMMETRIC_SEED = 'Symmetric key seed';\nasync function getSymmetricMasterKeyFromSeed(seed) {\n const I = await (0, hmac_sha512_1.hmac_sha512)(SYMMETRIC_SEED, seed);\n const IL = I.slice(32);\n const IR = I.slice(0, 32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.getSymmetricMasterKeyFromSeed = getSymmetricMasterKeyFromSeed;\n;\nasync function deriveSymmetricHardenedKey(parent, offset) {\n // Prepare data\n const data = Buffer.concat([Buffer.alloc(1, 0), Buffer.from(offset)]);\n // Derive key\n const I = await (0, hmac_sha512_1.hmac_sha512)(parent.chainCode, data);\n const IL = I.slice(32);\n const IR = I.slice(0, 32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.deriveSymmetricHardenedKey = deriveSymmetricHardenedKey;\nasync function deriveSymmetricPath(seed, path) {\n let state = await getSymmetricMasterKeyFromSeed(seed);\n let remaining = [...path];\n while (remaining.length > 0) {\n let index = remaining[0];\n remaining = remaining.slice(1);\n state = await deriveSymmetricHardenedKey(state, index);\n }\n return state.key;\n}\nexports.deriveSymmetricPath = deriveSymmetricPath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveMnemonicsPath = exports.deriveMnemonicHardenedKey = exports.getMnemonicsMasterKeyFromSeed = void 0;\nconst mnemonic_1 = require(\"../mnemonic/mnemonic\");\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst HARDENED_OFFSET = 0x80000000;\nconst MNEMONICS_SEED = 'TON Mnemonics HD seed';\nasync function getMnemonicsMasterKeyFromSeed(seed) {\n const I = await (0, hmac_sha512_1.hmac_sha512)(MNEMONICS_SEED, seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.getMnemonicsMasterKeyFromSeed = getMnemonicsMasterKeyFromSeed;\n;\nasync function deriveMnemonicHardenedKey(parent, index) {\n if (index >= HARDENED_OFFSET) {\n throw Error('Key index must be less than offset');\n }\n // Key Derive Path: 0x00 + parent.key + index;\n const indexBuffer = Buffer.alloc(4);\n indexBuffer.writeUInt32BE(index + HARDENED_OFFSET, 0);\n const data = Buffer.concat([Buffer.alloc(1, 0), parent.key, indexBuffer]);\n // Derive key\n const I = await (0, hmac_sha512_1.hmac_sha512)(parent.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.deriveMnemonicHardenedKey = deriveMnemonicHardenedKey;\nasync function deriveMnemonicsPath(seed, path, wordsCount = 24, password) {\n let state = await getMnemonicsMasterKeyFromSeed(seed);\n let remaining = [...path];\n while (remaining.length > 0) {\n let index = remaining[0];\n remaining = remaining.slice(1);\n state = await deriveMnemonicHardenedKey(state, index);\n }\n return await (0, mnemonic_1.mnemonicFromRandomSeed)(state.key, wordsCount, password);\n}\nexports.deriveMnemonicsPath = deriveMnemonicsPath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMnemonicsMasterKeyFromSeed = exports.deriveMnemonicHardenedKey = exports.deriveMnemonicsPath = exports.deriveSymmetricPath = exports.deriveSymmetricHardenedKey = exports.getSymmetricMasterKeyFromSeed = exports.deriveEd25519Path = exports.deriveED25519HardenedKey = exports.getED25519MasterKeyFromSeed = exports.signVerify = exports.sign = exports.keyPairFromSecretKey = exports.keyPairFromSeed = exports.openBox = exports.sealBox = exports.mnemonicWordList = exports.mnemonicToHDSeed = exports.mnemonicToSeed = exports.mnemonicToWalletKey = exports.mnemonicToPrivateKey = exports.mnemonicValidate = exports.mnemonicNew = exports.newSecurePassphrase = exports.newSecureWords = exports.getSecureRandomNumber = exports.getSecureRandomWords = exports.getSecureRandomBytes = exports.hmac_sha512 = exports.pbkdf2_sha512 = exports.sha512_sync = exports.sha512 = exports.sha256_sync = exports.sha256 = void 0;\nvar sha256_1 = require(\"./primitives/sha256\");\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha256_1.sha256; } });\nObject.defineProperty(exports, \"sha256_sync\", { enumerable: true, get: function () { return sha256_1.sha256_sync; } });\nvar sha512_1 = require(\"./primitives/sha512\");\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha512_1.sha512; } });\nObject.defineProperty(exports, \"sha512_sync\", { enumerable: true, get: function () { return sha512_1.sha512_sync; } });\nvar pbkdf2_sha512_1 = require(\"./primitives/pbkdf2_sha512\");\nObject.defineProperty(exports, \"pbkdf2_sha512\", { enumerable: true, get: function () { return pbkdf2_sha512_1.pbkdf2_sha512; } });\nvar hmac_sha512_1 = require(\"./primitives/hmac_sha512\");\nObject.defineProperty(exports, \"hmac_sha512\", { enumerable: true, get: function () { return hmac_sha512_1.hmac_sha512; } });\nvar getSecureRandom_1 = require(\"./primitives/getSecureRandom\");\nObject.defineProperty(exports, \"getSecureRandomBytes\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomBytes; } });\nObject.defineProperty(exports, \"getSecureRandomWords\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomWords; } });\nObject.defineProperty(exports, \"getSecureRandomNumber\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomNumber; } });\nvar newSecureWords_1 = require(\"./passwords/newSecureWords\");\nObject.defineProperty(exports, \"newSecureWords\", { enumerable: true, get: function () { return newSecureWords_1.newSecureWords; } });\nvar newSecurePassphrase_1 = require(\"./passwords/newSecurePassphrase\");\nObject.defineProperty(exports, \"newSecurePassphrase\", { enumerable: true, get: function () { return newSecurePassphrase_1.newSecurePassphrase; } });\nvar mnemonic_1 = require(\"./mnemonic/mnemonic\");\nObject.defineProperty(exports, \"mnemonicNew\", { enumerable: true, get: function () { return mnemonic_1.mnemonicNew; } });\nObject.defineProperty(exports, \"mnemonicValidate\", { enumerable: true, get: function () { return mnemonic_1.mnemonicValidate; } });\nObject.defineProperty(exports, \"mnemonicToPrivateKey\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToPrivateKey; } });\nObject.defineProperty(exports, \"mnemonicToWalletKey\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToWalletKey; } });\nObject.defineProperty(exports, \"mnemonicToSeed\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToSeed; } });\nObject.defineProperty(exports, \"mnemonicToHDSeed\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToHDSeed; } });\nvar wordlist_1 = require(\"./mnemonic/wordlist\");\nObject.defineProperty(exports, \"mnemonicWordList\", { enumerable: true, get: function () { return wordlist_1.wordlist; } });\nvar nacl_1 = require(\"./primitives/nacl\");\nObject.defineProperty(exports, \"sealBox\", { enumerable: true, get: function () { return nacl_1.sealBox; } });\nObject.defineProperty(exports, \"openBox\", { enumerable: true, get: function () { return nacl_1.openBox; } });\nvar nacl_2 = require(\"./primitives/nacl\");\nObject.defineProperty(exports, \"keyPairFromSeed\", { enumerable: true, get: function () { return nacl_2.keyPairFromSeed; } });\nObject.defineProperty(exports, \"keyPairFromSecretKey\", { enumerable: true, get: function () { return nacl_2.keyPairFromSecretKey; } });\nObject.defineProperty(exports, \"sign\", { enumerable: true, get: function () { return nacl_2.sign; } });\nObject.defineProperty(exports, \"signVerify\", { enumerable: true, get: function () { return nacl_2.signVerify; } });\nvar ed25519_1 = require(\"./hd/ed25519\");\nObject.defineProperty(exports, \"getED25519MasterKeyFromSeed\", { enumerable: true, get: function () { return ed25519_1.getED25519MasterKeyFromSeed; } });\nObject.defineProperty(exports, \"deriveED25519HardenedKey\", { enumerable: true, get: function () { return ed25519_1.deriveED25519HardenedKey; } });\nObject.defineProperty(exports, \"deriveEd25519Path\", { enumerable: true, get: function () { return ed25519_1.deriveEd25519Path; } });\nvar symmetric_1 = require(\"./hd/symmetric\");\nObject.defineProperty(exports, \"getSymmetricMasterKeyFromSeed\", { enumerable: true, get: function () { return symmetric_1.getSymmetricMasterKeyFromSeed; } });\nObject.defineProperty(exports, \"deriveSymmetricHardenedKey\", { enumerable: true, get: function () { return symmetric_1.deriveSymmetricHardenedKey; } });\nObject.defineProperty(exports, \"deriveSymmetricPath\", { enumerable: true, get: function () { return symmetric_1.deriveSymmetricPath; } });\nvar mnemonics_1 = require(\"./hd/mnemonics\");\nObject.defineProperty(exports, \"deriveMnemonicsPath\", { enumerable: true, get: function () { return mnemonics_1.deriveMnemonicsPath; } });\nObject.defineProperty(exports, \"deriveMnemonicHardenedKey\", { enumerable: true, get: function () { return mnemonics_1.deriveMnemonicHardenedKey; } });\nObject.defineProperty(exports, \"getMnemonicsMasterKeyFromSeed\", { enumerable: true, get: function () { return mnemonics_1.getMnemonicsMasterKeyFromSeed; } });\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wonderCalculator = void 0;\nconst BitString_1 = require(\"../BitString\");\nconst CellType_1 = require(\"../CellType\");\nconst LevelMask_1 = require(\"./LevelMask\");\nconst exoticPruned_1 = require(\"./exoticPruned\");\nconst exoticMerkleProof_1 = require(\"./exoticMerkleProof\");\nconst descriptor_1 = require(\"./descriptor\");\nconst ton_crypto_1 = require(\"ton-crypto\");\nconst exoticMerkleUpdate_1 = require(\"./exoticMerkleUpdate\");\nconst exoticLibrary_1 = require(\"./exoticLibrary\");\n//\n// This function replicates unknown logic of resolving cell data\n// https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/crypto/vm/cells/DataCell.cpp#L214\n//\nfunction wonderCalculator(type, bits, refs) {\n //\n // Resolving level mask\n //\n let levelMask;\n let pruned = null;\n if (type === CellType_1.CellType.Ordinary) {\n let mask = 0;\n for (let r of refs) {\n mask = mask | r.mask.value;\n }\n levelMask = new LevelMask_1.LevelMask(mask);\n }\n else if (type === CellType_1.CellType.PrunedBranch) {\n // Parse pruned\n pruned = (0, exoticPruned_1.exoticPruned)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask(pruned.mask);\n }\n else if (type === CellType_1.CellType.MerkleProof) {\n // Parse proof\n let loaded = (0, exoticMerkleProof_1.exoticMerkleProof)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask(refs[0].mask.value >> 1);\n }\n else if (type === CellType_1.CellType.MerkleUpdate) {\n // Parse update\n let loaded = (0, exoticMerkleUpdate_1.exoticMerkleUpdate)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask((refs[0].mask.value | refs[1].mask.value) >> 1);\n }\n else if (type === CellType_1.CellType.Library) {\n // Parse library\n let loaded = (0, exoticLibrary_1.exoticLibrary)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask();\n }\n else {\n throw new Error(\"Unsupported exotic type\");\n }\n //\n // Calculate hashes and depths\n // NOTE: https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/crypto/vm/cells/DataCell.cpp#L214\n //\n let depths = [];\n let hashes = [];\n let hashCount = type === CellType_1.CellType.PrunedBranch ? 1 : levelMask.hashCount;\n let totalHashCount = levelMask.hashCount;\n let hashIOffset = totalHashCount - hashCount;\n for (let levelI = 0, hashI = 0; levelI <= levelMask.level; levelI++) {\n if (!levelMask.isSignificant(levelI)) {\n continue;\n }\n if (hashI < hashIOffset) {\n hashI++;\n continue;\n }\n //\n // Bits\n //\n let currentBits;\n if (hashI === hashIOffset) {\n if (!(levelI === 0 || type === CellType_1.CellType.PrunedBranch)) {\n throw Error('Invalid');\n }\n currentBits = bits;\n }\n else {\n if (!(levelI !== 0 && type !== CellType_1.CellType.PrunedBranch)) {\n throw Error('Invalid: ' + levelI + ', ' + type);\n }\n currentBits = new BitString_1.BitString(hashes[hashI - hashIOffset - 1], 0, 256);\n }\n //\n // Depth\n //\n let currentDepth = 0;\n for (let c of refs) {\n let childDepth;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childDepth = c.depth(levelI + 1);\n }\n else {\n childDepth = c.depth(levelI);\n }\n currentDepth = Math.max(currentDepth, childDepth);\n }\n if (refs.length > 0) {\n currentDepth++;\n }\n //\n // Hash\n //\n let repr = (0, descriptor_1.getRepr)(currentBits, refs, levelI, type);\n let hash = (0, ton_crypto_1.sha256_sync)(repr);\n //\n // Persist next\n //\n let destI = hashI - hashIOffset;\n depths[destI] = currentDepth;\n hashes[destI] = hash;\n //\n // Next\n //\n hashI++;\n }\n //\n // Calculate hash and depth for all levels\n //\n let resolvedHashes = [];\n let resolvedDepths = [];\n if (pruned) {\n for (let i = 0; i < 4; i++) {\n const { hashIndex } = levelMask.apply(i);\n const { hashIndex: thisHashIndex } = levelMask;\n if (hashIndex !== thisHashIndex) {\n resolvedHashes.push(pruned.pruned[hashIndex].hash);\n resolvedDepths.push(pruned.pruned[hashIndex].depth);\n }\n else {\n resolvedHashes.push(hashes[0]);\n resolvedDepths.push(depths[0]);\n }\n }\n }\n else {\n for (let i = 0; i < 4; i++) {\n resolvedHashes.push(hashes[levelMask.apply(i).hashIndex]);\n resolvedDepths.push(depths[levelMask.apply(i).hashIndex]);\n }\n }\n //\n // Result\n //\n return {\n mask: levelMask,\n hashes: resolvedHashes,\n depths: resolvedDepths\n };\n}\nexports.wonderCalculator = wonderCalculator;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = void 0;\nfunction topologicalSort(src) {\n let pending = [src];\n let allCells = new Map();\n let notPermCells = new Set();\n let sorted = [];\n while (pending.length > 0) {\n const cells = [...pending];\n pending = [];\n for (let cell of cells) {\n const hash = cell.hash().toString('hex');\n if (allCells.has(hash)) {\n continue;\n }\n notPermCells.add(hash);\n allCells.set(hash, { cell: cell, refs: cell.refs.map((v) => v.hash().toString('hex')) });\n for (let r of cell.refs) {\n pending.push(r);\n }\n }\n }\n let tempMark = new Set();\n function visit(hash) {\n if (!notPermCells.has(hash)) {\n return;\n }\n if (tempMark.has(hash)) {\n throw Error('Not a DAG');\n }\n tempMark.add(hash);\n for (let c of allCells.get(hash).refs) {\n visit(c);\n }\n sorted.unshift(hash);\n tempMark.delete(hash);\n notPermCells.delete(hash);\n }\n while (notPermCells.size > 0) {\n const id = Array.from(notPermCells)[0];\n visit(id);\n }\n let indexes = new Map();\n for (let i = 0; i < sorted.length; i++) {\n indexes.set(sorted[i], i);\n }\n let result = [];\n for (let ent of sorted) {\n const rrr = allCells.get(ent);\n result.push({ cell: rrr.cell, refs: rrr.refs.map((v) => indexes.get(v)) });\n }\n return result;\n}\nexports.topologicalSort = topologicalSort;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitsForNumber = void 0;\nfunction bitsForNumber(src, mode) {\n let v = BigInt(src);\n // Handle negative values\n if (mode === 'int') {\n // Corner case for zero or -1 value\n if (v === 0n || v === -1n) {\n return 1;\n }\n let v2 = v > 0 ? v : -v;\n return (v2.toString(2).length + 1 /* Sign bit */);\n }\n else if (mode === 'uint') {\n if (v < 0) {\n throw Error(`value is negative. Got ${src}`);\n }\n return (v.toString(2).length);\n }\n else {\n throw Error(`invalid mode. Got ${mode}`);\n }\n}\nexports.bitsForNumber = bitsForNumber;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc32c = void 0;\nconst POLY = 0x82f63b78;\nfunction crc32c(source) {\n let crc = 0 ^ 0xffffffff;\n for (let n = 0; n < source.length; n++) {\n crc ^= source[n];\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n }\n crc = crc ^ 0xffffffff;\n // Convert endianness\n let res = Buffer.alloc(4);\n res.writeInt32LE(crc);\n return res;\n}\nexports.crc32c = crc32c;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeBoc = exports.deserializeBoc = exports.parseBoc = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst BitString_1 = require(\"../BitString\");\nconst Cell_1 = require(\"../Cell\");\nconst topologicalSort_1 = require(\"./utils/topologicalSort\");\nconst bitsForNumber_1 = require(\"../../utils/bitsForNumber\");\nconst BitBuilder_1 = require(\"../BitBuilder\");\nconst descriptor_1 = require(\"./descriptor\");\nconst paddedBits_1 = require(\"../utils/paddedBits\");\nconst crc32c_1 = require(\"../../utils/crc32c\");\nfunction readCell(reader, sizeBytes) {\n // D1\n const d1 = reader.loadUint(8);\n const refsCount = d1 % 8;\n const exotic = !!(d1 & 8);\n // D2\n const d2 = reader.loadUint(8);\n const dataBytesize = Math.ceil(d2 / 2);\n const paddingAdded = !!(d2 % 2);\n // Bits\n let bits = BitString_1.BitString.EMPTY;\n if (dataBytesize > 0) {\n if (paddingAdded) {\n bits = reader.loadPaddedBits(dataBytesize * 8);\n }\n else {\n bits = reader.loadBits(dataBytesize * 8);\n }\n }\n // Refs\n let refs = [];\n for (let i = 0; i < refsCount; i++) {\n refs.push(reader.loadUint(sizeBytes * 8));\n }\n // Result\n return {\n bits,\n refs,\n exotic\n };\n}\nfunction calcCellSize(cell, sizeBytes) {\n return 2 /* D1+D2 */ + Math.ceil(cell.bits.length / 8) + cell.refs.length * sizeBytes;\n}\nfunction parseBoc(src) {\n let reader = new BitReader_1.BitReader(new BitString_1.BitString(src, 0, src.length * 8));\n let magic = reader.loadUint(32);\n if (magic === 0x68ff65f3) {\n let size = reader.loadUint(8);\n let offBytes = reader.loadUint(8);\n let cells = reader.loadUint(size * 8);\n let roots = reader.loadUint(size * 8); // Must be 1\n let absent = reader.loadUint(size * 8);\n let totalCellSize = reader.loadUint(offBytes * 8);\n let index = reader.loadBuffer(cells * offBytes);\n let cellData = reader.loadBuffer(totalCellSize);\n return {\n size,\n offBytes,\n cells,\n roots,\n absent,\n totalCellSize,\n index,\n cellData,\n root: [0]\n };\n }\n else if (magic === 0xacc3a728) {\n let size = reader.loadUint(8);\n let offBytes = reader.loadUint(8);\n let cells = reader.loadUint(size * 8);\n let roots = reader.loadUint(size * 8); // Must be 1\n let absent = reader.loadUint(size * 8);\n let totalCellSize = reader.loadUint(offBytes * 8);\n let index = reader.loadBuffer(cells * offBytes);\n let cellData = reader.loadBuffer(totalCellSize);\n let crc32 = reader.loadBuffer(4);\n if (!(0, crc32c_1.crc32c)(src.subarray(0, src.length - 4)).equals(crc32)) {\n throw Error('Invalid CRC32C');\n }\n return {\n size,\n offBytes,\n cells,\n roots,\n absent,\n totalCellSize,\n index,\n cellData,\n root: [0]\n };\n }\n else if (magic === 0xb5ee9c72) {\n let hasIdx = reader.loadUint(1);\n let hasCrc32c = reader.loadUint(1);\n let hasCacheBits = reader.loadUint(1);\n let flags = reader.loadUint(2); // Must be 0\n let size = reader.loadUint(3);\n let offBytes = reader.loadUint(8);\n let cells = reader.loadUint(size * 8);\n let roots = reader.loadUint(size * 8);\n let absent = reader.loadUint(size * 8);\n let totalCellSize = reader.loadUint(offBytes * 8);\n let root = [];\n for (let i = 0; i < roots; i++) {\n root.push(reader.loadUint(size * 8));\n }\n let index = null;\n if (hasIdx) {\n index = reader.loadBuffer(cells * offBytes);\n }\n let cellData = reader.loadBuffer(totalCellSize);\n if (hasCrc32c) {\n let crc32 = reader.loadBuffer(4);\n if (!(0, crc32c_1.crc32c)(src.subarray(0, src.length - 4)).equals(crc32)) {\n throw Error('Invalid CRC32C');\n }\n }\n return {\n size,\n offBytes,\n cells,\n roots,\n absent,\n totalCellSize,\n index,\n cellData,\n root\n };\n }\n else {\n throw Error('Invalid magic');\n }\n}\nexports.parseBoc = parseBoc;\nfunction deserializeBoc(src) {\n //\n // Parse BOC\n //\n let boc = parseBoc(src);\n let reader = new BitReader_1.BitReader(new BitString_1.BitString(boc.cellData, 0, boc.cellData.length * 8));\n //\n // Load cells\n //\n let cells = [];\n for (let i = 0; i < boc.cells; i++) {\n let cll = readCell(reader, boc.size);\n cells.push({ ...cll, result: null });\n }\n //\n // Build cells\n //\n for (let i = cells.length - 1; i >= 0; i--) {\n if (cells[i].result) {\n throw Error('Impossible');\n }\n let refs = [];\n for (let r of cells[i].refs) {\n if (!cells[r].result) {\n throw Error('Invalid BOC file');\n }\n refs.push(cells[r].result);\n }\n cells[i].result = new Cell_1.Cell({ bits: cells[i].bits, refs, exotic: cells[i].exotic });\n }\n //\n // Load roots\n //\n let roots = [];\n for (let i = 0; i < boc.root.length; i++) {\n roots.push(cells[boc.root[i]].result);\n }\n //\n // Return\n //\n return roots;\n}\nexports.deserializeBoc = deserializeBoc;\nfunction writeCellToBuilder(cell, refs, sizeBytes, to) {\n let d1 = (0, descriptor_1.getRefsDescriptor)(cell.refs, cell.level(), cell.type);\n let d2 = (0, descriptor_1.getBitsDescriptor)(cell.bits);\n to.writeUint(d1, 8);\n to.writeUint(d2, 8);\n to.writeBuffer((0, paddedBits_1.bitsToPaddedBuffer)(cell.bits));\n for (let r of refs) {\n to.writeUint(r, sizeBytes * 8);\n }\n}\nfunction serializeBoc(root, opts) {\n // Sort cells\n let allCells = (0, topologicalSort_1.topologicalSort)(root);\n // Calculcate parameters\n let cellsNum = allCells.length;\n let has_idx = opts.idx;\n let has_crc32c = opts.crc32;\n let has_cache_bits = false;\n let flags = 0;\n let sizeBytes = Math.max(Math.ceil((0, bitsForNumber_1.bitsForNumber)(cellsNum, 'uint') / 8), 1);\n let totalCellSize = 0;\n let index = [];\n for (let c of allCells) {\n let sz = calcCellSize(c.cell, sizeBytes);\n index.push(totalCellSize);\n totalCellSize += sz;\n }\n let offsetBytes = Math.max(Math.ceil((0, bitsForNumber_1.bitsForNumber)(totalCellSize, 'uint') / 8), 1);\n let totalSize = (4 + // magic\n 1 + // flags and s_bytes\n 1 + // offset_bytes\n 3 * sizeBytes + // cells_num, roots, complete\n offsetBytes + // full_size\n 1 * sizeBytes + // root_idx\n (has_idx ? cellsNum * offsetBytes : 0) +\n totalCellSize +\n (has_crc32c ? 4 : 0)) * 8;\n // Serialize\n let builder = new BitBuilder_1.BitBuilder(totalSize);\n builder.writeUint(0xb5ee9c72, 32); // Magic\n builder.writeBit(has_idx); // Has index\n builder.writeBit(has_crc32c); // Has crc32c\n builder.writeBit(has_cache_bits); // Has cache bits\n builder.writeUint(flags, 2); // Flags\n builder.writeUint(sizeBytes, 3); // Size bytes\n builder.writeUint(offsetBytes, 8); // Offset bytes\n builder.writeUint(cellsNum, sizeBytes * 8); // Cells num\n builder.writeUint(1, sizeBytes * 8); // Roots num\n builder.writeUint(0, sizeBytes * 8); // Absent num\n builder.writeUint(totalCellSize, offsetBytes * 8); // Total cell size\n builder.writeUint(0, sizeBytes * 8); // Root id == 0\n if (has_idx) { // Index\n for (let i = 0; i < cellsNum; i++) {\n builder.writeUint(index[i], offsetBytes * 8);\n }\n }\n for (let i = 0; i < cellsNum; i++) { // Cells\n writeCellToBuilder(allCells[i].cell, allCells[i].refs, sizeBytes, builder);\n }\n if (has_crc32c) {\n let crc32 = (0, crc32c_1.crc32c)(builder.buffer()); // builder.buffer() is fast since it doesn't allocate new memory\n builder.writeBuffer(crc32);\n }\n // Sanity Check\n let res = builder.buffer();\n if (res.length !== totalSize / 8) {\n throw Error('Internal error');\n }\n return res;\n}\nexports.serializeBoc = serializeBoc;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cell = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst BitString_1 = require(\"./BitString\");\nconst CellType_1 = require(\"./CellType\");\nconst Slice_1 = require(\"./Slice\");\nconst resolveExotic_1 = require(\"./cell/resolveExotic\");\nconst wonderCalculator_1 = require(\"./cell/wonderCalculator\");\nconst serialization_1 = require(\"./cell/serialization\");\nconst BitReader_1 = require(\"./BitReader\");\nconst Builder_1 = require(\"./Builder\");\n/**\n * Cell as described in TVM spec\n */\nclass Cell {\n /**\n * Deserialize cells from BOC\n * @param src source buffer\n * @returns array of cells\n */\n static fromBoc(src) {\n return (0, serialization_1.deserializeBoc)(src);\n }\n /**\n * Helper class that deserializes a single cell from BOC in base64\n * @param src source string\n */\n static fromBase64(src) {\n let parsed = Cell.fromBoc(Buffer.from(src, 'base64'));\n if (parsed.length !== 1) {\n throw new Error(\"Deserialized more than one cell\");\n }\n return parsed[0];\n }\n constructor(opts) {\n // Level and depth information\n this._hashes = [];\n this._depths = [];\n /**\n * Beging cell parsing\n * @returns a new slice\n */\n this.beginParse = (allowExotic = false) => {\n if (this.isExotic && !allowExotic) {\n throw new Error(\"Exotic cells cannot be parsed\");\n }\n return new Slice_1.Slice(new BitReader_1.BitReader(this.bits), this.refs);\n };\n /**\n * Get cell hash\n * @param level level\n * @returns cell hash\n */\n this.hash = (level = 3) => {\n return this._hashes[Math.min(this._hashes.length - 1, level)];\n };\n /**\n * Get cell depth\n * @param level level\n * @returns cell depth\n */\n this.depth = (level = 3) => {\n return this._depths[Math.min(this._depths.length - 1, level)];\n };\n /**\n * Get cell level\n * @returns cell level\n */\n this.level = () => {\n return this.mask.level;\n };\n /**\n * Checks cell to be euqal to another cell\n * @param other other cell\n * @returns true if cells are equal\n */\n this.equals = (other) => {\n return this.hash().equals(other.hash());\n };\n this[_a] = () => this.toString();\n // Resolve bits\n let bits = BitString_1.BitString.EMPTY;\n if (opts && opts.bits) {\n bits = opts.bits;\n }\n // Resolve refs\n let refs = [];\n if (opts && opts.refs) {\n refs = [...opts.refs];\n }\n // Resolve type\n let hashes;\n let depths;\n let mask;\n let type = CellType_1.CellType.Ordinary;\n if (opts && opts.exotic) {\n // Resolve exotic cell\n let resolved = (0, resolveExotic_1.resolveExotic)(bits, refs);\n // Perform wonders\n let wonders = (0, wonderCalculator_1.wonderCalculator)(resolved.type, bits, refs);\n // Copy results\n mask = wonders.mask;\n depths = wonders.depths;\n hashes = wonders.hashes;\n type = resolved.type;\n }\n else {\n // Check correctness\n if (refs.length > 4) {\n throw new Error(\"Invalid number of references\");\n }\n if (bits.length > 1023) {\n throw new Error(`Bits overflow: ${bits.length} > 1023`);\n }\n // Perform wonders\n let wonders = (0, wonderCalculator_1.wonderCalculator)(CellType_1.CellType.Ordinary, bits, refs);\n // Copy results\n mask = wonders.mask;\n depths = wonders.depths;\n hashes = wonders.hashes;\n type = CellType_1.CellType.Ordinary;\n }\n // Set fields\n this.type = type;\n this.bits = bits;\n this.refs = refs;\n this.mask = mask;\n this._depths = depths;\n this._hashes = hashes;\n Object.freeze(this);\n Object.freeze(this.refs);\n Object.freeze(this.bits);\n Object.freeze(this.mask);\n Object.freeze(this._depths);\n Object.freeze(this._hashes);\n }\n /**\n * Check if cell is exotic\n */\n get isExotic() {\n return this.type !== CellType_1.CellType.Ordinary;\n }\n /**\n * Serializes cell to BOC\n * @param opts options\n */\n toBoc(opts) {\n let idx = (opts && opts.idx !== null && opts.idx !== undefined) ? opts.idx : false;\n let crc32 = (opts && opts.crc32 !== null && opts.crc32 !== undefined) ? opts.crc32 : true;\n return (0, serialization_1.serializeBoc)(this, { idx, crc32 });\n }\n /**\n * Format cell to string\n * @param indent indentation\n * @returns string representation\n */\n toString(indent) {\n let id = indent || '';\n let t = 'x';\n if (this.isExotic) {\n if (this.type === CellType_1.CellType.MerkleProof) {\n t = 'p';\n }\n else if (this.type === CellType_1.CellType.MerkleUpdate) {\n t = 'u';\n }\n else if (this.type === CellType_1.CellType.PrunedBranch) {\n t = 'p';\n }\n }\n let s = id + (this.isExotic ? t : 'x') + '{' + this.bits.toString() + '}';\n for (let k in this.refs) {\n const i = this.refs[k];\n s += '\\n' + i.toString(id + ' ');\n }\n return s;\n }\n /**\n * Covnert cell to slice\n * @returns slice\n */\n asSlice() {\n return this.beginParse();\n }\n /**\n * Convert cell to a builder that has this cell stored\n * @returns builder\n */\n asBuilder() {\n return (0, Builder_1.beginCell)().storeSlice(this.asSlice());\n }\n}\nexports.Cell = Cell;\n_a = symbol_inspect_1.default;\nCell.EMPTY = new Cell();\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Builder = exports.beginCell = void 0;\nconst BitBuilder_1 = require(\"./BitBuilder\");\nconst Cell_1 = require(\"./Cell\");\nconst strings_1 = require(\"./utils/strings\");\n/**\n * Start building a cell\n * @returns a new builder\n */\nfunction beginCell() {\n return new Builder();\n}\nexports.beginCell = beginCell;\n/**\n * Builder for Cells\n */\nclass Builder {\n constructor() {\n this._bits = new BitBuilder_1.BitBuilder();\n this._refs = [];\n }\n /**\n * Bits written so far\n */\n get bits() {\n return this._bits.length;\n }\n /**\n * References written so far\n */\n get refs() {\n return this._refs.length;\n }\n /**\n * Available bits\n */\n get availableBits() {\n return 1023 - this.bits;\n }\n /**\n * Available references\n */\n get availableRefs() {\n return 4 - this.refs;\n }\n /**\n * Write a single bit\n * @param value bit to write, true or positive number for 1, false or zero or negative for 0\n * @returns this builder\n */\n storeBit(value) {\n this._bits.writeBit(value);\n return this;\n }\n /**\n * Write bits from BitString\n * @param src source bits\n * @returns this builder\n */\n storeBits(src) {\n this._bits.writeBits(src);\n return this;\n }\n /**\n * Store Buffer\n * @param src source buffer\n * @param bytes optional number of bytes to write\n * @returns this builder\n */\n storeBuffer(src, bytes) {\n if (bytes !== undefined && bytes !== null) {\n if (src.length !== bytes) {\n throw Error(`Buffer length ${src.length} is not equal to ${bytes}`);\n }\n }\n this._bits.writeBuffer(src);\n return this;\n }\n /**\n * Store Maybe Buffer\n * @param src source buffer or null\n * @param bytes optional number of bytes to write\n * @returns this builder\n */\n storeMaybeBuffer(src, bytes) {\n if (src !== null) {\n this.storeBit(1);\n this.storeBuffer(src, bytes);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store uint value\n * @param value value as bigint or number\n * @param bits number of bits to write\n * @returns this builder\n */\n storeUint(value, bits) {\n this._bits.writeUint(value, bits);\n return this;\n }\n /**\n * Store maybe uint value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write\n * @returns this builder\n */\n storeMaybeUint(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeUint(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store int value\n * @param value value as bigint or number\n * @param bits number of bits to write\n * @returns this builder\n */\n storeInt(value, bits) {\n this._bits.writeInt(value, bits);\n return this;\n }\n /**\n * Store maybe int value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write\n * @returns this builder\n */\n storeMaybeInt(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeInt(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store varuint value\n * @param value value as bigint or number\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeVarUint(value, bits) {\n this._bits.writeVarUint(value, bits);\n return this;\n }\n /**\n * Store maybe varuint value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeMaybeVarUint(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeVarUint(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store varint value\n * @param value value as bigint or number\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeVarInt(value, bits) {\n this._bits.writeVarInt(value, bits);\n return this;\n }\n /**\n * Store maybe varint value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeMaybeVarInt(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeVarInt(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store coins value\n * @param amount amount of coins\n * @returns this builder\n */\n storeCoins(amount) {\n this._bits.writeCoins(amount);\n return this;\n }\n /**\n * Store maybe coins value\n * @param amount amount of coins, null or undefined\n * @returns this builder\n */\n storeMaybeCoins(amount) {\n if (amount !== null && amount !== undefined) {\n this.storeBit(1);\n this.storeCoins(amount);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store address\n * @param addres address to store\n * @returns this builder\n */\n storeAddress(address) {\n this._bits.writeAddress(address);\n return this;\n }\n /**\n * Store reference\n * @param cell cell or builder to store\n * @returns this builder\n */\n storeRef(cell) {\n // Check refs\n if (this._refs.length >= 4) {\n throw new Error(\"Too many references\");\n }\n // Store reference\n if (cell instanceof Cell_1.Cell) {\n this._refs.push(cell);\n }\n else if (cell instanceof Builder) {\n this._refs.push(cell.endCell());\n }\n else {\n throw new Error(\"Invalid argument\");\n }\n return this;\n }\n /**\n * Store reference if not null\n * @param cell cell or builder to store\n * @returns this builder\n */\n storeMaybeRef(cell) {\n if (cell) {\n this.storeBit(1);\n this.storeRef(cell);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store slice it in this builder\n * @param src source slice\n */\n storeSlice(src) {\n let c = src.clone();\n if (c.remainingBits > 0) {\n this.storeBits(c.loadBits(c.remainingBits));\n }\n while (c.remainingRefs > 0) {\n this.storeRef(c.loadRef());\n }\n return this;\n }\n /**\n * Store slice in this builder if not null\n * @param src source slice\n */\n storeMaybeSlice(src) {\n if (src) {\n this.storeBit(1);\n this.storeSlice(src);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store builder\n * @param src builder to store\n * @returns this builder\n */\n storeBuilder(src) {\n return this.storeSlice(src.endCell().beginParse());\n }\n /**\n * Store builder if not null\n * @param src builder to store\n * @returns this builder\n */\n storeMaybeBuilder(src) {\n if (src) {\n this.storeBit(1);\n this.storeBuilder(src);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store writer or builder\n * @param writer writer or builder to store\n * @returns this builder\n */\n storeWritable(writer) {\n if (typeof writer === 'object') {\n writer.writeTo(this);\n }\n else {\n writer(this);\n }\n return this;\n }\n /**\n * Store writer or builder if not null\n * @param writer writer or builder to store\n * @returns this builder\n */\n storeMaybeWritable(writer) {\n if (writer) {\n this.storeBit(1);\n this.storeWritable(writer);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store object in this builder\n * @param writer Writable or writer functuin\n */\n store(writer) {\n this.storeWritable(writer);\n return this;\n }\n /**\n * Store string tail\n * @param src source string\n * @returns this builder\n */\n storeStringTail(src) {\n (0, strings_1.writeString)(src, this);\n return this;\n }\n /**\n * Store string tail\n * @param src source string\n * @returns this builder\n */\n storeMaybeStringTail(src) {\n if (src !== null && src !== undefined) {\n this.storeBit(1);\n (0, strings_1.writeString)(src, this);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store string tail in ref\n * @param src source string\n * @returns this builder\n */\n storeStringRefTail(src) {\n this.storeRef(beginCell()\n .storeStringTail(src));\n return this;\n }\n /**\n * Store maybe string tail in ref\n * @param src source string\n * @returns this builder\n */\n storeMaybeStringRefTail(src) {\n if (src !== null && src !== undefined) {\n this.storeBit(1);\n this.storeStringRefTail(src);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store dictionary in this builder\n * @param dict dictionary to store\n * @returns this builder\n */\n storeDict(dict, key, value) {\n if (dict) {\n dict.store(this, key, value);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store dictionary in this builder directly\n * @param dict dictionary to store\n * @returns this builder\n */\n storeDictDirect(dict, key, value) {\n dict.storeDirect(this, key, value);\n return this;\n }\n /**\n * Complete cell\n * @returns cell\n */\n endCell() {\n return new Cell_1.Cell({\n bits: this._bits.build(),\n refs: this._refs\n });\n }\n /**\n * Convert to cell\n * @returns cell\n */\n asCell() {\n return this.endCell();\n }\n /**\n * Convert to slice\n * @returns slice\n */\n asSlice() {\n return this.endCell().beginParse();\n }\n}\nexports.Builder = Builder;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleLibraryValue = exports.storeSimpleLibrary = exports.loadSimpleLibrary = void 0;\nfunction loadSimpleLibrary(slice) {\n return {\n public: slice.loadBit(),\n root: slice.loadRef()\n };\n}\nexports.loadSimpleLibrary = loadSimpleLibrary;\nfunction storeSimpleLibrary(src) {\n return (builder) => {\n builder.storeBit(src.public);\n builder.storeRef(src.root);\n };\n}\nexports.storeSimpleLibrary = storeSimpleLibrary;\nexports.SimpleLibraryValue = {\n serialize(src, builder) {\n storeSimpleLibrary(src)(builder);\n },\n parse(src) {\n return loadSimpleLibrary(src);\n },\n};\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTickTock = exports.loadTickTock = void 0;\nfunction loadTickTock(slice) {\n return {\n tick: slice.loadBit(),\n tock: slice.loadBit()\n };\n}\nexports.loadTickTock = loadTickTock;\nfunction storeTickTock(src) {\n return (builder) => {\n builder.storeBit(src.tick);\n builder.storeBit(src.tock);\n };\n}\nexports.storeTickTock = storeTickTock;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStateInit = exports.loadStateInit = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst SimpleLibrary_1 = require(\"./SimpleLibrary\");\nconst TickTock_1 = require(\"./TickTock\");\n;\nfunction loadStateInit(slice) {\n // Split Depth\n let splitDepth;\n if (slice.loadBit()) {\n splitDepth = slice.loadUint(5);\n }\n // TickTock\n let special;\n if (slice.loadBit()) {\n special = (0, TickTock_1.loadTickTock)(slice);\n }\n // Code and Data\n let code = slice.loadMaybeRef();\n let data = slice.loadMaybeRef();\n // Libs\n let libraries = slice.loadDict(Dictionary_1.Dictionary.Keys.BigUint(256), SimpleLibrary_1.SimpleLibraryValue);\n if (libraries.size === 0) {\n libraries = undefined;\n }\n return {\n splitDepth,\n special,\n code,\n data,\n libraries\n };\n}\nexports.loadStateInit = loadStateInit;\nfunction storeStateInit(src) {\n return (builder) => {\n if (src.splitDepth !== null && src.splitDepth !== undefined) {\n builder.storeBit(true);\n builder.storeUint(src.splitDepth, 5);\n }\n else {\n builder.storeBit(false);\n }\n if (src.special !== null && src.special !== undefined) {\n builder.storeBit(true);\n builder.store((0, TickTock_1.storeTickTock)(src.special));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeMaybeRef(src.code);\n builder.storeMaybeRef(src.data);\n builder.storeDict(src.libraries);\n };\n}\nexports.storeStateInit = storeStateInit;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contractAddress = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst StateInit_1 = require(\"../types/StateInit\");\nconst Address_1 = require(\"./Address\");\nfunction contractAddress(workchain, init) {\n let hash = (0, Builder_1.beginCell)()\n .store((0, StateInit_1.storeStateInit)(init))\n .endCell()\n .hash();\n return new Address_1.Address(workchain, hash);\n}\nexports.contractAddress = contractAddress;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseTuple = exports.serializeTuple = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst INT64_MIN = BigInt('-9223372036854775808');\nconst INT64_MAX = BigInt('9223372036854775807');\n// vm_stk_null#00 = VmStackValue;\n// vm_stk_tinyint#01 value:int64 = VmStackValue;\n// vm_stk_int#0201_ value:int257 = VmStackValue;\n// vm_stk_nan#02ff = VmStackValue;\n// vm_stk_cell#03 cell:^Cell = VmStackValue;\n//_ cell:^Cell st_bits:(## 10) end_bits:(## 10) { st_bits <= end_bits }\n// st_ref:(#<= 4) end_ref:(#<= 4) { st_ref <= end_ref } = VmCellSlice;\n// vm_stk_slice#04 _:VmCellSlice = VmStackValue;\n// vm_stk_builder#05 cell:^Cell = VmStackValue;\n// vm_stk_cont#06 cont:VmCont = VmStackValue;\n// vm_tupref_nil$_ = VmTupleRef 0;\n// vm_tupref_single$_ entry:^VmStackValue = VmTupleRef 1;\n// vm_tupref_any$_ {n:#} ref:^(VmTuple (n + 2)) = VmTupleRef (n + 2);\n// vm_tuple_nil$_ = VmTuple 0;\n// vm_tuple_tcons$_ {n:#} head:(VmTupleRef n) tail:^VmStackValue = VmTuple (n + 1);\n// vm_stk_tuple#07 len:(## 16) data:(VmTuple len) = VmStackValue;\nfunction serializeTupleItem(src, builder) {\n if (src.type === 'null') {\n builder.storeUint(0x00, 8);\n }\n else if (src.type === 'int') {\n if (src.value <= INT64_MAX && src.value >= INT64_MIN) {\n builder.storeUint(0x01, 8);\n builder.storeInt(src.value, 64);\n }\n else {\n builder.storeUint(0x0100, 15);\n builder.storeInt(src.value, 257);\n }\n }\n else if (src.type === 'nan') {\n builder.storeInt(0x02ff, 16);\n }\n else if (src.type === 'cell') {\n builder.storeUint(0x03, 8);\n builder.storeRef(src.cell);\n }\n else if (src.type === 'slice') {\n builder.storeUint(0x04, 8);\n builder.storeUint(0, 10);\n builder.storeUint(src.cell.bits.length, 10);\n builder.storeUint(0, 3);\n builder.storeUint(src.cell.refs.length, 3);\n builder.storeRef(src.cell);\n }\n else if (src.type === 'builder') {\n builder.storeUint(0x05, 8);\n builder.storeRef(src.cell);\n }\n else if (src.type === 'tuple') {\n let head = null;\n let tail = null;\n for (let i = 0; i < src.items.length; i++) {\n // Swap\n let s = head;\n head = tail;\n tail = s;\n if (i > 1) {\n head = (0, Builder_1.beginCell)()\n .storeRef(tail)\n .storeRef(head)\n .endCell();\n }\n let bc = (0, Builder_1.beginCell)();\n serializeTupleItem(src.items[i], bc);\n tail = bc.endCell();\n }\n builder.storeUint(0x07, 8);\n builder.storeUint(src.items.length, 16);\n if (head) {\n builder.storeRef(head);\n }\n if (tail) {\n builder.storeRef(tail);\n }\n }\n else {\n throw Error('Invalid value');\n }\n}\nfunction parseStackItem(cs) {\n let kind = cs.loadUint(8);\n if (kind === 0) {\n return { type: 'null' };\n }\n else if (kind === 1) {\n return { type: 'int', value: cs.loadIntBig(64) };\n }\n else if (kind === 2) {\n if (cs.loadUint(7) === 0) {\n return { type: 'int', value: cs.loadIntBig(257) };\n }\n else {\n cs.loadBit(); // must eq 1\n return { type: 'nan' };\n }\n }\n else if (kind === 3) {\n return { type: 'cell', cell: cs.loadRef() };\n }\n else if (kind === 4) {\n let startBits = cs.loadUint(10);\n let endBits = cs.loadUint(10);\n let startRefs = cs.loadUint(3);\n let endRefs = cs.loadUint(3);\n // Copy to new cell\n let rs = cs.loadRef().beginParse();\n rs.skip(startBits);\n let dt = rs.loadBits(endBits - startBits);\n let builder = (0, Builder_1.beginCell)()\n .storeBits(dt);\n // Copy refs if exist\n if (startRefs < endRefs) {\n for (let i = 0; i < startRefs; i++) {\n rs.loadRef();\n }\n for (let i = 0; i < endRefs - startRefs; i++) {\n builder.storeRef(rs.loadRef());\n }\n }\n return { type: 'slice', cell: builder.endCell() };\n }\n else if (kind === 5) {\n return { type: 'builder', cell: cs.loadRef() };\n }\n else if (kind === 7) {\n let length = cs.loadUint(16);\n let items = [];\n if (length > 1) {\n let head = cs.loadRef().beginParse();\n let tail = cs.loadRef().beginParse();\n items.unshift(parseStackItem(tail));\n for (let i = 0; i < length - 2; i++) {\n let ohead = head;\n head = ohead.loadRef().beginParse();\n tail = ohead.loadRef().beginParse();\n items.unshift(parseStackItem(tail));\n }\n items.unshift(parseStackItem(head));\n }\n else if (length === 1) {\n items.push(parseStackItem(cs.loadRef().beginParse()));\n }\n return { type: 'tuple', items };\n }\n else {\n throw Error('Unsupported stack item');\n }\n}\n//\n// Stack parsing\n// Source: https://github.com/ton-foundation/ton/blob/ae5c0720143e231c32c3d2034cfe4e533a16d969/crypto/block/block.tlb#L783\n//\n// vm_stack#_ depth:(## 24) stack:(VmStackList depth) = VmStack;\n// vm_stk_cons#_ {n:#} rest:^(VmStackList n) tos:VmStackValue = VmStackList (n + 1);\n// vm_stk_nil#_ = VmStackList 0;\n//\nfunction serializeTupleTail(src, builder) {\n if (src.length > 0) {\n // rest:^(VmStackList n)\n let tail = (0, Builder_1.beginCell)();\n serializeTupleTail(src.slice(0, src.length - 1), tail);\n builder.storeRef(tail.endCell());\n // tos\n serializeTupleItem(src[src.length - 1], builder);\n }\n}\nfunction serializeTuple(src) {\n let builder = (0, Builder_1.beginCell)();\n builder.storeUint(src.length, 24);\n let r = [...src];\n serializeTupleTail(r, builder);\n return builder.endCell();\n}\nexports.serializeTuple = serializeTuple;\nfunction parseTuple(src) {\n let res = [];\n let cs = src.beginParse();\n let size = cs.loadUint(24);\n for (let i = 0; i < size; i++) {\n let next = cs.loadRef();\n res.unshift(parseStackItem(cs));\n cs = next.beginParse();\n }\n return res;\n}\nexports.parseTuple = parseTuple;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TupleReader = void 0;\nclass TupleReader {\n constructor(items) {\n this.items = [...items];\n }\n get remaining() {\n return this.items.length;\n }\n peek() {\n if (this.items.length === 0) {\n throw Error('EOF');\n }\n return this.items[0];\n }\n pop() {\n if (this.items.length === 0) {\n throw Error('EOF');\n }\n let res = this.items[0];\n this.items.splice(0, 1);\n return res;\n }\n skip(num = 1) {\n for (let i = 0; i < num; i++) {\n this.pop();\n }\n return this;\n }\n readBigNumber() {\n let popped = this.pop();\n if (popped.type !== 'int') {\n throw Error('Not a number');\n }\n return popped.value;\n }\n readBigNumberOpt() {\n let popped = this.pop();\n if (popped.type === 'null') {\n return null;\n }\n if (popped.type !== 'int') {\n throw Error('Not a number');\n }\n return popped.value;\n }\n readNumber() {\n return Number(this.readBigNumber());\n }\n readNumberOpt() {\n let r = this.readBigNumberOpt();\n if (r !== null) {\n return Number(r);\n }\n else {\n return null;\n }\n }\n readBoolean() {\n let res = this.readNumber();\n return res === 0 ? false : true;\n }\n readBooleanOpt() {\n let res = this.readNumberOpt();\n if (res !== null) {\n return res === 0 ? false : true;\n }\n else {\n return null;\n }\n }\n readAddress() {\n let r = this.readCell().beginParse().loadAddress();\n if (r !== null) {\n return r;\n }\n else {\n throw Error('Not an address');\n }\n }\n readAddressOpt() {\n let r = this.readCellOpt();\n if (r !== null) {\n return r.beginParse().loadMaybeAddress();\n }\n else {\n return null;\n }\n }\n readCell() {\n let popped = this.pop();\n if (popped.type !== 'cell' && popped.type !== 'slice' && popped.type !== 'builder') {\n throw Error('Not a cell: ' + popped.type);\n }\n return popped.cell;\n }\n readCellOpt() {\n let popped = this.pop();\n if (popped.type === 'null') {\n return null;\n }\n if (popped.type !== 'cell' && popped.type !== 'slice' && popped.type !== 'builder') {\n throw Error('Not a cell');\n }\n return popped.cell;\n }\n readTuple() {\n let popped = this.pop();\n if (popped.type !== 'tuple') {\n throw Error('Not a number');\n }\n return new TupleReader(popped.items);\n }\n readTupleOpt() {\n let popped = this.pop();\n if (popped.type === 'null') {\n return null;\n }\n if (popped.type !== 'tuple') {\n throw Error('Not a number');\n }\n return new TupleReader(popped.items);\n }\n readBuffer() {\n let s = this.readCell().beginParse();\n if (s.remainingRefs !== 0) {\n throw Error('Not a buffer');\n }\n if (s.remainingBits % 8 !== 0) {\n throw Error('Not a buffer');\n }\n return s.loadBuffer(s.remainingBits / 8);\n }\n readBufferOpt() {\n let popped = this.peek();\n if (popped.type === 'null') {\n return null;\n }\n let s = this.readCell().beginParse();\n if (s.remainingRefs !== 0) {\n throw Error('Not a buffer');\n }\n if (s.remainingBits % 8 !== 0) {\n throw Error('Not a buffer');\n }\n return s.loadBuffer(s.remainingBits / 8);\n }\n readString() {\n let s = this.readCell().beginParse();\n return s.loadStringTail();\n }\n readStringOpt() {\n let popped = this.peek();\n if (popped.type === 'null') {\n return null;\n }\n let s = this.readCell().beginParse();\n return s.loadStringTail();\n }\n}\nexports.TupleReader = TupleReader;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TupleBuilder = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst Slice_1 = require(\"../boc/Slice\");\nclass TupleBuilder {\n constructor() {\n this._tuple = [];\n }\n writeNumber(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'int', value: BigInt(v) });\n }\n }\n writeBoolean(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'int', value: v ? -1n : 0n });\n }\n }\n writeBuffer(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'slice', cell: (0, Builder_1.beginCell)().storeBuffer(v).endCell() });\n }\n }\n writeString(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'slice', cell: (0, Builder_1.beginCell)().storeStringTail(v).endCell() });\n }\n }\n writeCell(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n if (v instanceof Cell_1.Cell) {\n this._tuple.push({ type: 'cell', cell: v });\n }\n else if (v instanceof Slice_1.Slice) {\n this._tuple.push({ type: 'cell', cell: v.asCell() });\n }\n }\n }\n writeSlice(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n if (v instanceof Cell_1.Cell) {\n this._tuple.push({ type: 'slice', cell: v });\n }\n else if (v instanceof Slice_1.Slice) {\n this._tuple.push({ type: 'slice', cell: v.asCell() });\n }\n }\n }\n writeBuilder(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n if (v instanceof Cell_1.Cell) {\n this._tuple.push({ type: 'builder', cell: v });\n }\n else if (v instanceof Slice_1.Slice) {\n this._tuple.push({ type: 'builder', cell: v.asCell() });\n }\n }\n }\n writeTuple(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'tuple', items: v });\n }\n }\n writeAddress(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'slice', cell: (0, Builder_1.beginCell)().storeAddress(v).endCell() });\n }\n }\n build() {\n return [...this._tuple];\n }\n}\nexports.TupleBuilder = TupleBuilder;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromNano = exports.toNano = void 0;\nfunction toNano(src) {\n if (typeof src === 'bigint') {\n return src * 1000000000n;\n }\n else if (typeof src === 'number') {\n return BigInt(src) * 1000000000n;\n }\n else {\n // Check sign\n let neg = false;\n while (src.startsWith('-')) {\n neg = !neg;\n src = src.slice(1);\n }\n // Split string\n if (src === '.') {\n throw Error('Invalid number');\n }\n let parts = src.split('.');\n if (parts.length > 2) {\n throw Error('Invalid number');\n }\n // Prepare parts\n let whole = parts[0];\n let frac = parts[1];\n if (!whole) {\n whole = '0';\n }\n if (!frac) {\n frac = '0';\n }\n if (frac.length > 9) {\n throw Error('Invalid number');\n }\n while (frac.length < 9) {\n frac += '0';\n }\n // Convert\n let r = BigInt(whole) * 1000000000n + BigInt(frac);\n if (neg) {\n r = -r;\n }\n return r;\n }\n}\nexports.toNano = toNano;\nfunction fromNano(src) {\n let v = BigInt(src);\n let neg = false;\n if (v < 0) {\n neg = true;\n v = -v;\n }\n // Convert fraction\n let frac = v % 1000000000n;\n let facStr = frac.toString();\n while (facStr.length < 9) {\n facStr = '0' + facStr;\n }\n facStr = facStr.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n // Convert whole\n let whole = v / 1000000000n;\n let wholeStr = whole.toString();\n // Value\n let value = `${wholeStr}${facStr === '0' ? '' : `.${facStr}`}`;\n if (neg) {\n value = '-' + value;\n }\n return value;\n}\nexports.fromNano = fromNano;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.comment = exports.external = exports.internal = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst Builder_1 = require(\"../boc/Builder\");\nconst convert_1 = require(\"../utils/convert\");\nfunction internal(src) {\n // Resolve bounce\n let bounce = true;\n if (src.bounce !== null && src.bounce !== undefined) {\n bounce = src.bounce;\n }\n // Resolve address\n let to;\n if (typeof src.to === 'string') {\n to = Address_1.Address.parse(src.to);\n }\n else if (Address_1.Address.isAddress(src.to)) {\n to = src.to;\n }\n else {\n throw new Error(`Invalid address ${src.to}`);\n }\n // Resolve value\n let value;\n if (typeof src.value === 'string') {\n value = (0, convert_1.toNano)(src.value);\n }\n else {\n value = src.value;\n }\n // Resolve body\n let body = Cell_1.Cell.EMPTY;\n if (typeof src.body === 'string') {\n body = (0, Builder_1.beginCell)().storeUint(0, 32).storeStringTail(src.body).endCell();\n }\n else if (src.body) {\n body = src.body;\n }\n // Create message\n return {\n info: {\n type: 'internal',\n dest: to,\n value: { coins: value },\n bounce,\n ihrDisabled: true,\n bounced: false,\n ihrFee: 0n,\n forwardFee: 0n,\n createdAt: 0,\n createdLt: 0n\n },\n init: src.init ? { code: src.init.code, data: src.init.data } : undefined,\n body: body\n };\n}\nexports.internal = internal;\nfunction external(src) {\n // Resolve address\n let to;\n if (typeof src.to === 'string') {\n to = Address_1.Address.parse(src.to);\n }\n else if (Address_1.Address.isAddress(src.to)) {\n to = src.to;\n }\n else {\n throw new Error(`Invalid address ${src.to}`);\n }\n return {\n info: {\n type: 'external-in',\n dest: to,\n importFee: 0n\n },\n init: src.init ? { code: src.init.code, data: src.init.data } : undefined,\n body: src.body || Cell_1.Cell.EMPTY\n };\n}\nexports.external = external;\nfunction comment(src) {\n return (0, Builder_1.beginCell)()\n .storeUint(0, 32)\n .storeStringTail(src)\n .endCell();\n}\nexports.comment = comment;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountState = exports.loadAccountState = void 0;\nconst StateInit_1 = require(\"./StateInit\");\nfunction loadAccountState(cs) {\n if (cs.loadBit()) {\n return { type: 'active', state: (0, StateInit_1.loadStateInit)(cs) };\n }\n else if (cs.loadBit()) {\n return { type: 'frozen', stateHash: cs.loadUintBig(256) };\n }\n else {\n return { type: 'uninit' };\n }\n}\nexports.loadAccountState = loadAccountState;\nfunction storeAccountState(src) {\n return (builder) => {\n if (src.type === 'active') {\n builder.storeBit(true);\n builder.store((0, StateInit_1.storeStateInit)(src.state));\n }\n else if (src.type === 'frozen') {\n builder.storeBit(false);\n builder.storeBit(true);\n builder.storeUint(src.stateHash, 256);\n }\n else if (src.type === 'uninit') {\n builder.storeBit(false);\n builder.storeBit(false);\n }\n };\n}\nexports.storeAccountState = storeAccountState;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeCurrencyCollection = exports.loadCurrencyCollection = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\n;\nfunction loadCurrencyCollection(slice) {\n const coins = slice.loadCoins();\n const other = slice.loadDict(Dictionary_1.Dictionary.Keys.Uint(32), Dictionary_1.Dictionary.Values.BigVarUint(5 /* log2(32) */));\n if (other.size === 0) {\n return { coins };\n }\n else {\n return { other, coins };\n }\n}\nexports.loadCurrencyCollection = loadCurrencyCollection;\nfunction storeCurrencyCollection(collection) {\n return (builder) => {\n builder.storeCoins(collection.coins);\n if (collection.other) {\n builder.storeDict(collection.other);\n }\n else {\n builder.storeBit(0);\n }\n };\n}\nexports.storeCurrencyCollection = storeCurrencyCollection;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountStorage = exports.loadAccountStorage = void 0;\nconst AccountState_1 = require(\"./AccountState\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadAccountStorage(slice) {\n return {\n lastTransLt: slice.loadUintBig(64),\n balance: (0, CurrencyCollection_1.loadCurrencyCollection)(slice),\n state: (0, AccountState_1.loadAccountState)(slice)\n };\n}\nexports.loadAccountStorage = loadAccountStorage;\nfunction storeAccountStorage(src) {\n return (builder) => {\n builder.storeUint(src.lastTransLt, 64);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.balance));\n builder.store((0, AccountState_1.storeAccountState)(src.state));\n };\n}\nexports.storeAccountStorage = storeAccountStorage;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStorageUsed = exports.loadStorageUsed = void 0;\nfunction loadStorageUsed(cs) {\n return {\n cells: cs.loadVarUintBig(3),\n bits: cs.loadVarUintBig(3),\n publicCells: cs.loadVarUintBig(3),\n };\n}\nexports.loadStorageUsed = loadStorageUsed;\nfunction storeStorageUsed(src) {\n return (builder) => {\n builder.storeVarUint(src.cells, 3);\n builder.storeVarUint(src.bits, 3);\n builder.storeVarUint(src.publicCells, 3);\n };\n}\nexports.storeStorageUsed = storeStorageUsed;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStorageInfo = exports.loadStorageInfo = void 0;\nconst StorageUsed_1 = require(\"./StorageUsed\");\nfunction loadStorageInfo(slice) {\n return {\n used: (0, StorageUsed_1.loadStorageUsed)(slice),\n lastPaid: slice.loadUint(32),\n duePayment: slice.loadMaybeCoins()\n };\n}\nexports.loadStorageInfo = loadStorageInfo;\nfunction storeStorageInfo(src) {\n return (builder) => {\n builder.store((0, StorageUsed_1.storeStorageUsed)(src.used));\n builder.storeUint(src.lastPaid, 32);\n builder.storeMaybeCoins(src.duePayment);\n };\n}\nexports.storeStorageInfo = storeStorageInfo;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccount = exports.loadAccount = void 0;\nconst AccountStorage_1 = require(\"./AccountStorage\");\nconst StorageInto_1 = require(\"./StorageInto\");\nfunction loadAccount(slice) {\n return {\n addr: slice.loadAddress(),\n storageStats: (0, StorageInto_1.loadStorageInfo)(slice),\n storage: (0, AccountStorage_1.loadAccountStorage)(slice)\n };\n}\nexports.loadAccount = loadAccount;\nfunction storeAccount(src) {\n return (builder) => {\n builder.storeAddress(src.addr);\n builder.store((0, StorageInto_1.storeStorageInfo)(src.storageStats));\n builder.store((0, AccountStorage_1.storeAccountStorage)(src.storage));\n };\n}\nexports.storeAccount = storeAccount;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountStatus = exports.loadAccountStatus = void 0;\n/**\n * Load account state from slice\n * @param slice\n * @returns AccountState\n */\nfunction loadAccountStatus(slice) {\n const status = slice.loadUint(2);\n if (status === 0x00) {\n return 'uninitialized';\n }\n if (status === 0x01) {\n return 'frozen';\n }\n if (status === 0x02) {\n return 'active';\n }\n if (status === 0x03) {\n return 'non-existing';\n }\n throw Error('Invalid data');\n}\nexports.loadAccountStatus = loadAccountStatus;\n/**\n * Store account state to builder\n * @param src account state\n * @param builder buidler\n */\nfunction storeAccountStatus(src) {\n return (builder) => {\n if (src === 'uninitialized') {\n builder.storeUint(0x00, 2);\n }\n else if (src === 'frozen') {\n builder.storeUint(0x01, 2);\n }\n else if (src === 'active') {\n builder.storeUint(0x02, 2);\n }\n else if (src === 'non-existing') {\n builder.storeUint(0x03, 2);\n }\n else {\n throw Error('Invalid data');\n }\n return builder;\n };\n}\nexports.storeAccountStatus = storeAccountStatus;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountStatusChange = exports.loadAccountStatusChange = void 0;\nfunction loadAccountStatusChange(slice) {\n if (!slice.loadBit()) {\n return 'unchanged';\n }\n if (slice.loadBit()) {\n return 'frozen';\n }\n else {\n return 'deleted';\n }\n}\nexports.loadAccountStatusChange = loadAccountStatusChange;\nfunction storeAccountStatusChange(src) {\n return (builder) => {\n if (src == 'unchanged') {\n builder.storeBit(0);\n }\n else if (src === 'frozen') {\n builder.storeBit(1);\n builder.storeBit(0);\n }\n else if (src === 'deleted') {\n builder.storeBit(1);\n builder.storeBit(1);\n }\n else {\n throw Error('Invalid account status change');\n }\n };\n}\nexports.storeAccountStatusChange = storeAccountStatusChange;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeCommonMessageInfo = exports.loadCommonMessageInfo = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadCommonMessageInfo(slice) {\n // Internal message\n if (!slice.loadBit()) {\n const ihrDisabled = slice.loadBit();\n const bounce = slice.loadBit();\n const bounced = slice.loadBit();\n const src = slice.loadAddress();\n const dest = slice.loadAddress();\n const value = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n const ihrFee = slice.loadCoins();\n const forwardFee = slice.loadCoins();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'internal',\n ihrDisabled,\n bounce,\n bounced,\n src,\n dest,\n value,\n ihrFee,\n forwardFee,\n createdLt,\n createdAt,\n };\n }\n // External In mesage\n if (!slice.loadBit()) {\n const src = slice.loadMaybeExternalAddress();\n const dest = slice.loadAddress();\n const importFee = slice.loadCoins();\n return {\n type: 'external-in',\n src,\n dest,\n importFee,\n };\n }\n // External Out message\n const src = slice.loadAddress();\n const dest = slice.loadMaybeExternalAddress();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'external-out',\n src,\n dest,\n createdLt,\n createdAt,\n };\n}\nexports.loadCommonMessageInfo = loadCommonMessageInfo;\nfunction storeCommonMessageInfo(source) {\n return (builder) => {\n if (source.type === 'internal') {\n builder.storeBit(0);\n builder.storeBit(source.ihrDisabled);\n builder.storeBit(source.bounce);\n builder.storeBit(source.bounced);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(source.value));\n builder.storeCoins(source.ihrFee);\n builder.storeCoins(source.forwardFee);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else if (source.type === 'external-in') {\n builder.storeBit(1);\n builder.storeBit(0);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.storeCoins(source.importFee);\n }\n else if (source.type === 'external-out') {\n builder.storeBit(1);\n builder.storeBit(1);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else {\n throw new Error('Unknown CommonMessageInfo type');\n }\n };\n}\nexports.storeCommonMessageInfo = storeCommonMessageInfo;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeCommonMessageInfoRelaxed = exports.loadCommonMessageInfoRelaxed = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadCommonMessageInfoRelaxed(slice) {\n // Internal message\n if (!slice.loadBit()) {\n const ihrDisabled = slice.loadBit();\n const bounce = slice.loadBit();\n const bounced = slice.loadBit();\n const src = slice.loadMaybeAddress();\n const dest = slice.loadAddress();\n const value = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n const ihrFee = slice.loadCoins();\n const forwardFee = slice.loadCoins();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'internal',\n ihrDisabled,\n bounce,\n bounced,\n src,\n dest,\n value,\n ihrFee,\n forwardFee,\n createdLt,\n createdAt,\n };\n }\n // External In mesage\n if (!slice.loadBit()) {\n throw Error('External In message is not possible for CommonMessageInfoRelaxed');\n }\n // External Out message\n const src = slice.loadMaybeAddress();\n const dest = slice.loadMaybeExternalAddress();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'external-out',\n src,\n dest,\n createdLt,\n createdAt,\n };\n}\nexports.loadCommonMessageInfoRelaxed = loadCommonMessageInfoRelaxed;\nfunction storeCommonMessageInfoRelaxed(source) {\n return (builder) => {\n if (source.type === 'internal') {\n builder.storeBit(0);\n builder.storeBit(source.ihrDisabled);\n builder.storeBit(source.bounce);\n builder.storeBit(source.bounced);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(source.value));\n builder.storeCoins(source.ihrFee);\n builder.storeCoins(source.forwardFee);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else if (source.type === 'external-out') {\n builder.storeBit(1);\n builder.storeBit(1);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else {\n throw new Error('Unknown CommonMessageInfo type');\n }\n };\n}\nexports.storeCommonMessageInfoRelaxed = storeCommonMessageInfoRelaxed;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeComputeSkipReason = exports.loadComputeSkipReason = void 0;\nfunction loadComputeSkipReason(slice) {\n let reason = slice.loadUint(2);\n if (reason === 0x00) {\n return 'no-state';\n }\n else if (reason === 0x01) {\n return 'bad-state';\n }\n else if (reason === 0x02) {\n return 'no-gas';\n }\n throw new Error(`Unknown ComputeSkipReason: ${reason}`);\n}\nexports.loadComputeSkipReason = loadComputeSkipReason;\nfunction storeComputeSkipReason(src) {\n return (builder) => {\n if (src === 'no-state') {\n builder.storeUint(0x00, 2);\n }\n else if (src === 'bad-state') {\n builder.storeUint(0x01, 2);\n }\n else if (src === 'no-gas') {\n builder.storeUint(0x02, 2);\n }\n else {\n throw new Error(`Unknown ComputeSkipReason: ${src}`);\n }\n };\n}\nexports.storeComputeSkipReason = storeComputeSkipReason;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeDepthBalanceInfo = exports.loadDepthBalanceInfo = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadDepthBalanceInfo(slice) {\n let splitDepth = slice.loadUint(5);\n return {\n splitDepth,\n balance: (0, CurrencyCollection_1.loadCurrencyCollection)(slice)\n };\n}\nexports.loadDepthBalanceInfo = loadDepthBalanceInfo;\nfunction storeDepthBalanceInfo(src) {\n return (builder) => {\n builder.storeUint(src.splitDepth, 5);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.balance));\n };\n}\nexports.storeDepthBalanceInfo = storeDepthBalanceInfo;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeHashUpdate = exports.loadHashUpdate = void 0;\nfunction loadHashUpdate(slice) {\n if (slice.loadUint(8) !== 0x72) {\n throw Error('Invalid data');\n }\n const oldHash = slice.loadBuffer(32);\n const newHash = slice.loadBuffer(32);\n return { oldHash, newHash };\n}\nexports.loadHashUpdate = loadHashUpdate;\nfunction storeHashUpdate(src) {\n return (builder) => {\n builder.storeUint(0x72, 8);\n builder.storeBuffer(src.oldHash);\n builder.storeBuffer(src.newHash);\n };\n}\nexports.storeHashUpdate = storeHashUpdate;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadMasterchainStateExtra = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadMasterchainStateExtra(cs) {\n // Check magic\n if (cs.loadUint(16) !== 0xcc26) {\n throw Error('Invalid data');\n }\n // Skip shard_hashes\n if (cs.loadBit()) {\n cs.loadRef();\n }\n // Read config\n let configAddress = cs.loadUintBig(256);\n let config = Dictionary_1.Dictionary.load(Dictionary_1.Dictionary.Keys.Int(32), Dictionary_1.Dictionary.Values.Cell(), cs);\n // Rad global balance\n const globalBalance = (0, CurrencyCollection_1.loadCurrencyCollection)(cs);\n return {\n config,\n configAddress,\n globalBalance\n };\n}\nexports.loadMasterchainStateExtra = loadMasterchainStateExtra;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MessageValue = exports.storeMessage = exports.loadMessage = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst CommonMessageInfo_1 = require(\"./CommonMessageInfo\");\nconst StateInit_1 = require(\"./StateInit\");\nfunction loadMessage(slice) {\n const info = (0, CommonMessageInfo_1.loadCommonMessageInfo)(slice);\n let init = null;\n if (slice.loadBit()) {\n if (!slice.loadBit()) {\n init = (0, StateInit_1.loadStateInit)(slice);\n }\n else {\n init = (0, StateInit_1.loadStateInit)(slice.loadRef().beginParse());\n }\n }\n const body = slice.loadBit() ? slice.loadRef() : slice.asCell();\n return {\n info,\n init,\n body\n };\n}\nexports.loadMessage = loadMessage;\nfunction storeMessage(message, opts) {\n return (builder) => {\n // Store CommonMsgInfo\n builder.store((0, CommonMessageInfo_1.storeCommonMessageInfo)(message.info));\n // Store init\n if (message.init) {\n builder.storeBit(true);\n let initCell = (0, Builder_1.beginCell)().store((0, StateInit_1.storeStateInit)(message.init));\n // Check if need to store it in ref\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else if (builder.availableBits - 2 /* At least on byte for ref flag */ >= initCell.bits) {\n needRef = false;\n }\n else {\n needRef = true;\n }\n // Persist init\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(initCell);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(initCell);\n }\n }\n else {\n builder.storeBit(false);\n }\n // Store body\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n if (builder.availableBits - 1 /* At least on byte for ref flag */ >= message.body.bits.length &&\n builder.refs + message.body.refs.length <= 4) {\n needRef = false;\n }\n else {\n needRef = true;\n }\n }\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(message.body);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(message.body.asBuilder());\n }\n };\n}\nexports.storeMessage = storeMessage;\nexports.MessageValue = {\n serialize(src, builder) {\n builder.storeRef((0, Builder_1.beginCell)()\n .store(storeMessage(src)));\n },\n parse(slice) {\n return loadMessage(slice.loadRef().beginParse());\n }\n};\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeMessageRelaxed = exports.loadMessageRelaxed = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst CommonMessageInfoRelaxed_1 = require(\"./CommonMessageInfoRelaxed\");\nconst StateInit_1 = require(\"./StateInit\");\nfunction loadMessageRelaxed(slice) {\n const info = (0, CommonMessageInfoRelaxed_1.loadCommonMessageInfoRelaxed)(slice);\n let init = null;\n if (slice.loadBit()) {\n if (!slice.loadBit()) {\n init = (0, StateInit_1.loadStateInit)(slice);\n }\n else {\n init = (0, StateInit_1.loadStateInit)(slice.loadRef().beginParse());\n }\n }\n const body = slice.loadBit() ? slice.loadRef() : slice.asCell();\n return {\n info,\n init,\n body\n };\n}\nexports.loadMessageRelaxed = loadMessageRelaxed;\nfunction storeMessageRelaxed(message, opts) {\n return (builder) => {\n // Store CommonMsgInfo\n builder.store((0, CommonMessageInfoRelaxed_1.storeCommonMessageInfoRelaxed)(message.info));\n // Store init\n if (message.init) {\n builder.storeBit(true);\n let initCell = (0, Builder_1.beginCell)().store((0, StateInit_1.storeStateInit)(message.init));\n // Check if ref is needed\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n if (builder.availableBits - 2 /* At least on byte for ref flag */ >= initCell.bits) {\n needRef = false;\n }\n else {\n needRef = true;\n }\n }\n // Store ref\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(initCell);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(initCell);\n }\n }\n else {\n builder.storeBit(false);\n }\n // Store body\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n if (builder.availableBits - 1 /* At least on byte for ref flag */ >= message.body.bits.length &&\n builder.refs + message.body.refs.length <= 4) {\n needRef = false;\n }\n else {\n needRef = true;\n }\n }\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(message.body);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(message.body.asBuilder());\n }\n };\n}\nexports.storeMessageRelaxed = storeMessageRelaxed;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SendMode = void 0;\nvar SendMode;\n(function (SendMode) {\n SendMode[SendMode[\"CARRY_ALL_REMAINING_BALANCE\"] = 128] = \"CARRY_ALL_REMAINING_BALANCE\";\n SendMode[SendMode[\"CARRY_ALL_REMAINING_INCOMING_VALUE\"] = 64] = \"CARRY_ALL_REMAINING_INCOMING_VALUE\";\n SendMode[SendMode[\"DESTROY_ACCOUNT_IF_ZERO\"] = 32] = \"DESTROY_ACCOUNT_IF_ZERO\";\n SendMode[SendMode[\"PAY_GAS_SEPARATELY\"] = 1] = \"PAY_GAS_SEPARATELY\";\n SendMode[SendMode[\"IGNORE_ERRORS\"] = 2] = \"IGNORE_ERRORS\";\n SendMode[SendMode[\"NONE\"] = 0] = \"NONE\";\n})(SendMode = exports.SendMode || (exports.SendMode = {}));\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeShardAccount = exports.loadShardAccount = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Account_1 = require(\"./Account\");\nfunction loadShardAccount(slice) {\n let accountRef = slice.loadRef();\n let account = undefined;\n if (!accountRef.isExotic) {\n let accountSlice = accountRef.beginParse();\n if (accountSlice.loadBit()) {\n account = (0, Account_1.loadAccount)(accountSlice);\n }\n }\n return {\n account,\n lastTransactionHash: slice.loadUintBig(256),\n lastTransactionLt: slice.loadUintBig(64)\n };\n}\nexports.loadShardAccount = loadShardAccount;\nfunction storeShardAccount(src) {\n return (builder) => {\n if (src.account) {\n builder.storeRef((0, Builder_1.beginCell)()\n .storeBit(true)\n .store((0, Account_1.storeAccount)(src.account)));\n }\n else {\n builder.storeRef((0, Builder_1.beginCell)()\n .storeBit(false));\n }\n builder.storeUint(src.lastTransactionHash, 256);\n builder.storeUint(src.lastTransactionLt, 64);\n };\n}\nexports.storeShardAccount = storeShardAccount;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeShardAccounts = exports.loadShardAccounts = exports.ShardAccountRefValue = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst DepthBalanceInfo_1 = require(\"./DepthBalanceInfo\");\nconst ShardAccount_1 = require(\"./ShardAccount\");\nexports.ShardAccountRefValue = {\n parse: (cs) => {\n let depthBalanceInfo = (0, DepthBalanceInfo_1.loadDepthBalanceInfo)(cs);\n let shardAccount = (0, ShardAccount_1.loadShardAccount)(cs);\n return {\n depthBalanceInfo,\n shardAccount\n };\n },\n serialize(src, builder) {\n builder.store((0, DepthBalanceInfo_1.storeDepthBalanceInfo)(src.depthBalanceInfo));\n builder.store((0, ShardAccount_1.storeShardAccount)(src.shardAccount));\n },\n};\nfunction loadShardAccounts(cs) {\n return Dictionary_1.Dictionary.load(Dictionary_1.Dictionary.Keys.BigUint(256), exports.ShardAccountRefValue, cs);\n}\nexports.loadShardAccounts = loadShardAccounts;\nfunction storeShardAccounts(src) {\n return (Builder) => {\n Builder.storeDict(src);\n };\n}\nexports.storeShardAccounts = storeShardAccounts;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeShardIdent = exports.loadShardIdent = void 0;\nfunction loadShardIdent(slice) {\n if (slice.loadUint(2) !== 0) {\n throw Error('Invalid data');\n }\n return {\n shardPrefixBits: slice.loadUint(6),\n workchainId: slice.loadInt(32),\n shardPrefix: slice.loadUintBig(64)\n };\n}\nexports.loadShardIdent = loadShardIdent;\nfunction storeShardIdent(src) {\n return (builder) => {\n builder.storeUint(0, 2);\n builder.storeUint(src.shardPrefixBits, 6);\n builder.storeInt(src.workchainId, 32);\n builder.storeUint(src.shardPrefix, 64);\n };\n}\nexports.storeShardIdent = storeShardIdent;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadShardStateUnsplit = void 0;\nconst MasterchainStateExtra_1 = require(\"./MasterchainStateExtra\");\nconst ShardAccounts_1 = require(\"./ShardAccounts\");\nconst ShardIdent_1 = require(\"./ShardIdent\");\nfunction loadShardStateUnsplit(cs) {\n if (cs.loadUint(32) !== 0x9023afe2) {\n throw Error('Invalid data');\n }\n let globalId = cs.loadInt(32);\n let shardId = (0, ShardIdent_1.loadShardIdent)(cs);\n let seqno = cs.loadUint(32);\n let vertSeqNo = cs.loadUint(32);\n let genUtime = cs.loadUint(32);\n let genLt = cs.loadUintBig(64);\n let minRefMcSeqno = cs.loadUint(32);\n // Skip OutMsgQueueInfo: usually exotic\n cs.loadRef();\n let beforeSplit = cs.loadBit();\n // Parse accounts\n let shardAccountsRef = cs.loadRef();\n let accounts = undefined;\n if (!shardAccountsRef.isExotic) {\n accounts = (0, ShardAccounts_1.loadShardAccounts)(shardAccountsRef.beginParse());\n }\n // Skip (not used by apps)\n cs.loadRef();\n // Parse extras\n let mcStateExtra = cs.loadBit();\n let extras = null;\n if (mcStateExtra) {\n let cell = cs.loadRef();\n if (!cell.isExotic) {\n extras = (0, MasterchainStateExtra_1.loadMasterchainStateExtra)(cell.beginParse());\n }\n }\n ;\n return {\n globalId,\n shardId,\n seqno,\n vertSeqNo,\n genUtime,\n genLt,\n minRefMcSeqno,\n beforeSplit,\n accounts,\n extras\n };\n}\nexports.loadShardStateUnsplit = loadShardStateUnsplit;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeSplitMergeInfo = exports.loadSplitMergeInfo = void 0;\nfunction loadSplitMergeInfo(slice) {\n let currentShardPrefixLength = slice.loadUint(6);\n let accountSplitDepth = slice.loadUint(6);\n let thisAddress = slice.loadUintBig(256);\n let siblingAddress = slice.loadUintBig(256);\n return {\n currentShardPrefixLength,\n accountSplitDepth,\n thisAddress,\n siblingAddress\n };\n}\nexports.loadSplitMergeInfo = loadSplitMergeInfo;\nfunction storeSplitMergeInfo(src) {\n return (builder) => {\n builder.storeUint(src.currentShardPrefixLength, 6);\n builder.storeUint(src.accountSplitDepth, 6);\n builder.storeUint(src.thisAddress, 256);\n builder.storeUint(src.siblingAddress, 256);\n };\n}\nexports.storeSplitMergeInfo = storeSplitMergeInfo;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStorageUsedShort = exports.loadStorageUsedShort = void 0;\nfunction loadStorageUsedShort(slice) {\n let cells = slice.loadVarUintBig(3);\n let bits = slice.loadVarUintBig(3);\n return {\n cells,\n bits\n };\n}\nexports.loadStorageUsedShort = loadStorageUsedShort;\nfunction storeStorageUsedShort(src) {\n return (builder) => {\n builder.storeVarUint(src.cells, 3);\n builder.storeVarUint(src.bits, 3);\n };\n}\nexports.storeStorageUsedShort = storeStorageUsedShort;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionActionPhase = exports.loadTransactionActionPhase = void 0;\nconst AccountStatusChange_1 = require(\"./AccountStatusChange\");\nconst StorageUsedShort_1 = require(\"./StorageUsedShort\");\nfunction loadTransactionActionPhase(slice) {\n let success = slice.loadBit();\n let valid = slice.loadBit();\n let noFunds = slice.loadBit();\n let statusChange = (0, AccountStatusChange_1.loadAccountStatusChange)(slice);\n let totalFwdFees = slice.loadBit() ? slice.loadCoins() : undefined;\n let totalActionFees = slice.loadBit() ? slice.loadCoins() : undefined;\n let resultCode = slice.loadInt(32);\n let resultArg = slice.loadBit() ? slice.loadInt(32) : undefined;\n let totalActions = slice.loadUint(16);\n let specActions = slice.loadUint(16);\n let skippedActions = slice.loadUint(16);\n let messagesCreated = slice.loadUint(16);\n let actionListHash = slice.loadUintBig(256);\n let totalMessageSize = (0, StorageUsedShort_1.loadStorageUsedShort)(slice);\n return {\n success,\n valid,\n noFunds,\n statusChange,\n totalFwdFees,\n totalActionFees,\n resultCode,\n resultArg,\n totalActions,\n specActions,\n skippedActions,\n messagesCreated,\n actionListHash,\n totalMessageSize\n };\n}\nexports.loadTransactionActionPhase = loadTransactionActionPhase;\nfunction storeTransactionActionPhase(src) {\n return (builder) => {\n builder.storeBit(src.success);\n builder.storeBit(src.valid);\n builder.storeBit(src.noFunds);\n builder.store((0, AccountStatusChange_1.storeAccountStatusChange)(src.statusChange));\n builder.storeMaybeCoins(src.totalFwdFees);\n builder.storeMaybeCoins(src.totalActionFees);\n builder.storeInt(src.resultCode, 32);\n builder.storeMaybeInt(src.resultArg, 32);\n builder.storeUint(src.totalActions, 16);\n builder.storeUint(src.specActions, 16);\n builder.storeUint(src.skippedActions, 16);\n builder.storeUint(src.messagesCreated, 16);\n builder.storeUint(src.actionListHash, 256);\n builder.store((0, StorageUsedShort_1.storeStorageUsedShort)(src.totalMessageSize));\n };\n}\nexports.storeTransactionActionPhase = storeTransactionActionPhase;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionBouncePhase = exports.loadTransactionBouncePhase = void 0;\nconst StorageUsedShort_1 = require(\"./StorageUsedShort\");\nfunction loadTransactionBouncePhase(slice) {\n // Ok\n if (slice.loadBit()) {\n let messageSize = (0, StorageUsedShort_1.loadStorageUsedShort)(slice);\n let messageFees = slice.loadCoins();\n let forwardFees = slice.loadCoins();\n return {\n type: \"ok\",\n messageSize,\n messageFees,\n forwardFees,\n };\n }\n // No funds\n if (slice.loadBit()) {\n let messageSize = (0, StorageUsedShort_1.loadStorageUsedShort)(slice);\n let requiredForwardFees = slice.loadCoins();\n return {\n type: \"no-funds\",\n messageSize,\n requiredForwardFees,\n };\n }\n // Negative funds\n return {\n type: \"negative-funds\",\n };\n}\nexports.loadTransactionBouncePhase = loadTransactionBouncePhase;\nfunction storeTransactionBouncePhase(src) {\n return (builder) => {\n if (src.type === 'ok') {\n builder.storeBit(true);\n builder.store((0, StorageUsedShort_1.storeStorageUsedShort)(src.messageSize));\n builder.storeCoins(src.messageFees);\n builder.storeCoins(src.forwardFees);\n }\n else if (src.type === 'negative-funds') {\n builder.storeBit(false);\n builder.storeBit(false);\n }\n else if (src.type === 'no-funds') {\n builder.storeBit(false);\n builder.storeBit(true);\n builder.store((0, StorageUsedShort_1.storeStorageUsedShort)(src.messageSize));\n builder.storeCoins(src.requiredForwardFees);\n }\n else {\n throw new Error(\"Invalid TransactionBouncePhase type\");\n }\n };\n}\nexports.storeTransactionBouncePhase = storeTransactionBouncePhase;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionComputePhase = exports.loadTransactionComputePhase = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst ComputeSkipReason_1 = require(\"./ComputeSkipReason\");\nfunction loadTransactionComputePhase(slice) {\n // Skipped\n if (!slice.loadBit()) {\n let reason = (0, ComputeSkipReason_1.loadComputeSkipReason)(slice);\n return {\n type: 'skipped',\n reason\n };\n }\n let success = slice.loadBit();\n let messageStateUsed = slice.loadBit();\n let accountActivated = slice.loadBit();\n let gasFees = slice.loadCoins();\n const vmState = slice.loadRef().beginParse();\n let gasUsed = vmState.loadVarUintBig(3);\n let gasLimit = vmState.loadVarUintBig(3);\n let gasCredit = vmState.loadBit() ? vmState.loadVarUintBig(2) : undefined;\n let mode = vmState.loadUint(8);\n let exitCode = vmState.loadUint(32);\n let exitArg = vmState.loadBit() ? vmState.loadInt(32) : undefined;\n let vmSteps = vmState.loadUint(32);\n let vmInitStateHash = vmState.loadUintBig(256);\n let vmFinalStateHash = vmState.loadUintBig(256);\n return {\n type: 'vm',\n success,\n messageStateUsed,\n accountActivated,\n gasFees,\n gasUsed,\n gasLimit,\n gasCredit,\n mode,\n exitCode,\n exitArg,\n vmSteps,\n vmInitStateHash,\n vmFinalStateHash\n };\n}\nexports.loadTransactionComputePhase = loadTransactionComputePhase;\nfunction storeTransactionComputePhase(src) {\n return (builder) => {\n if (src.type === 'skipped') {\n builder.storeBit(0);\n builder.store((0, ComputeSkipReason_1.storeComputeSkipReason)(src.reason));\n return;\n }\n builder.storeBit(1);\n builder.storeBit(src.success);\n builder.storeBit(src.messageStateUsed);\n builder.storeBit(src.accountActivated);\n builder.storeCoins(src.gasFees);\n builder.storeRef((0, Builder_1.beginCell)()\n .storeVarUint(src.gasUsed, 3)\n .storeVarUint(src.gasLimit, 3)\n .store((b) => (src.gasCredit !== undefined && src.gasCredit !== null) ? b.storeBit(1).storeVarUint(src.gasCredit, 2) : b.storeBit(0))\n .storeUint(src.mode, 8)\n .storeUint(src.exitCode, 32)\n .store((b) => (src.exitArg !== undefined && src.exitArg !== null) ? b.storeBit(1).storeInt(src.exitArg, 32) : b.storeBit(0))\n .storeUint(src.vmSteps, 32)\n .storeUint(src.vmInitStateHash, 256)\n .storeUint(src.vmFinalStateHash, 256)\n .endCell());\n };\n}\nexports.storeTransactionComputePhase = storeTransactionComputePhase;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionCreditPhase = exports.loadTransactionCreditPhase = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadTransactionCreditPhase(slice) {\n const dueFeesColelcted = slice.loadBit() ? slice.loadCoins() : undefined;\n const credit = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n return {\n dueFeesColelcted,\n credit\n };\n}\nexports.loadTransactionCreditPhase = loadTransactionCreditPhase;\nfunction storeTransactionCreditPhase(src) {\n return (builder) => {\n if (src.dueFeesColelcted === null || src.dueFeesColelcted === undefined) {\n builder.storeBit(false);\n }\n else {\n builder.storeBit(true);\n builder.storeCoins(src.dueFeesColelcted);\n }\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.credit));\n };\n}\nexports.storeTransactionCreditPhase = storeTransactionCreditPhase;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionsStoragePhase = exports.loadTransactionStoragePhase = void 0;\nconst AccountStatusChange_1 = require(\"./AccountStatusChange\");\nfunction loadTransactionStoragePhase(slice) {\n const storageFeesCollected = slice.loadCoins();\n let storageFeesDue = undefined;\n if (slice.loadBit()) {\n storageFeesDue = slice.loadCoins();\n }\n const statusChange = (0, AccountStatusChange_1.loadAccountStatusChange)(slice);\n return {\n storageFeesCollected,\n storageFeesDue,\n statusChange\n };\n}\nexports.loadTransactionStoragePhase = loadTransactionStoragePhase;\nfunction storeTransactionsStoragePhase(src) {\n return (builder) => {\n builder.storeCoins(src.storageFeesCollected);\n if (src.storageFeesDue === null || src.storageFeesDue === undefined) {\n builder.storeBit(false);\n }\n else {\n builder.storeBit(true);\n builder.storeCoins(src.storageFeesDue);\n }\n builder.store((0, AccountStatusChange_1.storeAccountStatusChange)(src.statusChange));\n };\n}\nexports.storeTransactionsStoragePhase = storeTransactionsStoragePhase;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionDescription = exports.loadTransactionDescription = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst SplitMergeInfo_1 = require(\"./SplitMergeInfo\");\nconst Transaction_1 = require(\"./Transaction\");\nconst TransactionActionPhase_1 = require(\"./TransactionActionPhase\");\nconst TransactionBouncePhase_1 = require(\"./TransactionBouncePhase\");\nconst TransactionComputePhase_1 = require(\"./TransactionComputePhase\");\nconst TransactionCreditPhase_1 = require(\"./TransactionCreditPhase\");\nconst TransactionStoragePhase_1 = require(\"./TransactionStoragePhase\");\nfunction loadTransactionDescription(slice) {\n let type = slice.loadUint(4);\n if (type === 0x00) {\n const creditFirst = slice.loadBit();\n let storagePhase = undefined;\n if (slice.loadBit()) {\n storagePhase = (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice);\n }\n let creditPhase = undefined;\n if (slice.loadBit()) {\n creditPhase = (0, TransactionCreditPhase_1.loadTransactionCreditPhase)(slice);\n }\n let computePhase = (0, TransactionComputePhase_1.loadTransactionComputePhase)(slice);\n let actionPhase = undefined;\n if (slice.loadBit()) {\n actionPhase = (0, TransactionActionPhase_1.loadTransactionActionPhase)(slice.loadRef().beginParse());\n }\n let aborted = slice.loadBit();\n let bouncePhase = undefined;\n if (slice.loadBit()) {\n bouncePhase = (0, TransactionBouncePhase_1.loadTransactionBouncePhase)(slice);\n }\n const destroyed = slice.loadBit();\n return {\n type: 'generic',\n creditFirst,\n storagePhase,\n creditPhase,\n computePhase,\n actionPhase,\n bouncePhase,\n aborted,\n destroyed\n };\n }\n if (type === 0x01) {\n return {\n type: 'storage',\n storagePhase: (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice)\n };\n }\n if (type === 0x2 || type === 0x03) {\n const isTock = type === 0x03;\n let storagePhase = (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice);\n let computePhase = (0, TransactionComputePhase_1.loadTransactionComputePhase)(slice);\n let actionPhase = undefined;\n if (slice.loadBit()) {\n actionPhase = (0, TransactionActionPhase_1.loadTransactionActionPhase)(slice.loadRef().beginParse());\n }\n const aborted = slice.loadBit();\n const destroyed = slice.loadBit();\n return {\n type: 'tick-tock',\n isTock,\n storagePhase,\n computePhase,\n actionPhase,\n aborted,\n destroyed\n };\n }\n if (type === 0x04) {\n let splitInfo = (0, SplitMergeInfo_1.loadSplitMergeInfo)(slice);\n let storagePhase = undefined;\n if (slice.loadBit()) {\n storagePhase = (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice);\n }\n let computePhase = (0, TransactionComputePhase_1.loadTransactionComputePhase)(slice);\n let actionPhase = undefined;\n if (slice.loadBit()) {\n actionPhase = (0, TransactionActionPhase_1.loadTransactionActionPhase)(slice.loadRef().beginParse());\n }\n const aborted = slice.loadBit();\n const destroyed = slice.loadBit();\n return {\n type: 'split-prepare',\n splitInfo,\n storagePhase,\n computePhase,\n actionPhase,\n aborted,\n destroyed\n };\n }\n if (type === 0x05) {\n let splitInfo = (0, SplitMergeInfo_1.loadSplitMergeInfo)(slice);\n let prepareTransaction = (0, Transaction_1.loadTransaction)(slice.loadRef().beginParse());\n const installed = slice.loadBit();\n return {\n type: 'split-install',\n splitInfo,\n prepareTransaction,\n installed\n };\n }\n throw Error(`Unsupported transaction description type ${type}`);\n}\nexports.loadTransactionDescription = loadTransactionDescription;\nfunction storeTransactionDescription(src) {\n return (builder) => {\n if (src.type === 'generic') {\n builder.storeUint(0x00, 4);\n builder.storeBit(src.creditFirst);\n if (src.storagePhase) {\n builder.storeBit(true);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n }\n else {\n builder.storeBit(false);\n }\n if (src.creditPhase) {\n builder.storeBit(true);\n builder.store((0, TransactionCreditPhase_1.storeTransactionCreditPhase)(src.creditPhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.store((0, TransactionComputePhase_1.storeTransactionComputePhase)(src.computePhase));\n if (src.actionPhase) {\n builder.storeBit(true);\n builder.storeRef((0, Builder_1.beginCell)().store((0, TransactionActionPhase_1.storeTransactionActionPhase)(src.actionPhase)));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.aborted);\n if (src.bouncePhase) {\n builder.storeBit(true);\n builder.store((0, TransactionBouncePhase_1.storeTransactionBouncePhase)(src.bouncePhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.destroyed);\n }\n else if (src.type === 'storage') {\n builder.storeUint(0x01, 4);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n }\n else if (src.type === 'tick-tock') {\n builder.storeUint(src.isTock ? 0x03 : 0x02, 4);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n builder.store((0, TransactionComputePhase_1.storeTransactionComputePhase)(src.computePhase));\n if (src.actionPhase) {\n builder.storeBit(true);\n builder.storeRef((0, Builder_1.beginCell)().store((0, TransactionActionPhase_1.storeTransactionActionPhase)(src.actionPhase)));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.aborted);\n builder.storeBit(src.destroyed);\n }\n else if (src.type === 'split-prepare') {\n builder.storeUint(0x04, 4);\n builder.store((0, SplitMergeInfo_1.storeSplitMergeInfo)(src.splitInfo));\n if (src.storagePhase) {\n builder.storeBit(true);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.store((0, TransactionComputePhase_1.storeTransactionComputePhase)(src.computePhase));\n if (src.actionPhase) {\n builder.storeBit(true);\n builder.store((0, TransactionActionPhase_1.storeTransactionActionPhase)(src.actionPhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.aborted);\n builder.storeBit(src.destroyed);\n }\n else if (src.type === 'split-install') {\n builder.storeUint(0x05, 4);\n builder.store((0, SplitMergeInfo_1.storeSplitMergeInfo)(src.splitInfo));\n builder.storeRef((0, Builder_1.beginCell)().store((0, Transaction_1.storeTransaction)(src.prepareTransaction)));\n builder.storeBit(src.installed);\n }\n else {\n throw Error(`Unsupported transaction description type ${src.type}`);\n }\n };\n}\nexports.storeTransactionDescription = storeTransactionDescription;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransaction = exports.loadTransaction = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst AccountStatus_1 = require(\"./AccountStatus\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nconst HashUpdate_1 = require(\"./HashUpdate\");\nconst Message_1 = require(\"./Message\");\nconst TransactionDescription_1 = require(\"./TransactionDescription\");\nfunction loadTransaction(slice) {\n if (slice.loadUint(4) !== 0x07) {\n throw Error('Invalid data');\n }\n let address = slice.loadUintBig(256);\n let lt = slice.loadUintBig(64);\n let prevTransactionHash = slice.loadUintBig(256);\n let prevTransactionLt = slice.loadUintBig(64);\n let now = slice.loadUint(32);\n let outMessagesCount = slice.loadUint(15);\n let oldStatus = (0, AccountStatus_1.loadAccountStatus)(slice);\n let endStatus = (0, AccountStatus_1.loadAccountStatus)(slice);\n let msgRef = slice.loadRef();\n let msgSlice = msgRef.beginParse();\n let inMessage = msgSlice.loadBit() ? (0, Message_1.loadMessage)(msgSlice.loadRef().beginParse()) : undefined;\n let outMessages = msgSlice.loadDict(Dictionary_1.Dictionary.Keys.Uint(15), Message_1.MessageValue);\n msgSlice.endParse();\n let totalFees = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n let stateUpdate = (0, HashUpdate_1.loadHashUpdate)(slice.loadRef().beginParse());\n let description = (0, TransactionDescription_1.loadTransactionDescription)(slice.loadRef().beginParse());\n return {\n address,\n lt,\n prevTransactionHash,\n prevTransactionLt,\n now,\n outMessagesCount,\n oldStatus,\n endStatus,\n inMessage,\n outMessages,\n totalFees,\n stateUpdate,\n description,\n };\n}\nexports.loadTransaction = loadTransaction;\nfunction storeTransaction(src) {\n return (builder) => {\n builder.storeUint(0x07, 4);\n builder.storeUint(src.address, 256);\n builder.storeUint(src.lt, 64);\n builder.storeUint(src.prevTransactionHash, 256);\n builder.storeUint(src.prevTransactionLt, 64);\n builder.storeUint(src.now, 32);\n builder.storeUint(src.outMessagesCount, 15);\n builder.store((0, AccountStatus_1.storeAccountStatus)(src.oldStatus));\n builder.store((0, AccountStatus_1.storeAccountStatus)(src.endStatus));\n let msgBuilder = (0, Builder_1.beginCell)();\n if (src.inMessage) {\n msgBuilder.storeBit(true);\n msgBuilder.storeRef((0, Builder_1.beginCell)().store((0, Message_1.storeMessage)(src.inMessage)));\n }\n else {\n msgBuilder.storeBit(false);\n }\n msgBuilder.storeDict(src.outMessages);\n builder.storeRef(msgBuilder);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.totalFees));\n builder.storeRef((0, Builder_1.beginCell)().store((0, HashUpdate_1.storeHashUpdate)(src.stateUpdate)));\n builder.storeRef((0, Builder_1.beginCell)().store((0, TransactionDescription_1.storeTransactionDescription)(src.description)));\n };\n}\nexports.storeTransaction = storeTransaction;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadStorageUsedShort = exports.storeStorageUsed = exports.loadStorageUsed = exports.storeStorageInfo = exports.loadStorageInfo = exports.storeStateInit = exports.loadStateInit = exports.storeSplitMergeInfo = exports.loadSplitMergeInfo = exports.storeSimpleLibrary = exports.loadSimpleLibrary = exports.loadShardStateUnsplit = exports.storeShardIdent = exports.loadShardIdent = exports.storeShardAccounts = exports.loadShardAccounts = exports.ShardAccountRefValue = exports.storeShardAccount = exports.loadShardAccount = exports.SendMode = exports.storeMessageRelaxed = exports.loadMessageRelaxed = exports.storeMessage = exports.loadMessage = exports.loadMasterchainStateExtra = exports.storeHashUpdate = exports.loadHashUpdate = exports.storeDepthBalanceInfo = exports.loadDepthBalanceInfo = exports.storeCurrencyCollection = exports.loadCurrencyCollection = exports.storeComputeSkipReason = exports.loadComputeSkipReason = exports.storeCommonMessageInfoRelaxed = exports.loadCommonMessageInfoRelaxed = exports.storeCommonMessageInfo = exports.loadCommonMessageInfo = exports.storeAccountStorage = exports.loadAccountStorage = exports.storeAccountStatusChange = exports.loadAccountStatusChange = exports.storeAccountStatus = exports.loadAccountStatus = exports.storeAccountState = exports.loadAccountState = exports.storeAccount = exports.loadAccount = exports.comment = exports.external = exports.internal = void 0;\nexports.storeTransactionsStoragePhase = exports.loadTransactionStoragePhase = exports.storeTransactionDescription = exports.loadTransactionDescription = exports.storeTransactionCreditPhase = exports.loadTransactionCreditPhase = exports.storeTransactionComputePhase = exports.loadTransactionComputePhase = exports.storeTransactionBouncePhase = exports.loadTransactionBouncePhase = exports.storeTransactionActionPhase = exports.loadTransactionActionPhase = exports.storeTransaction = exports.loadTransaction = exports.storeTickTock = exports.loadTickTock = exports.storeStorageUsedShort = void 0;\nvar _helpers_1 = require(\"./_helpers\");\nObject.defineProperty(exports, \"internal\", { enumerable: true, get: function () { return _helpers_1.internal; } });\nObject.defineProperty(exports, \"external\", { enumerable: true, get: function () { return _helpers_1.external; } });\nObject.defineProperty(exports, \"comment\", { enumerable: true, get: function () { return _helpers_1.comment; } });\nvar Account_1 = require(\"./Account\");\nObject.defineProperty(exports, \"loadAccount\", { enumerable: true, get: function () { return Account_1.loadAccount; } });\nObject.defineProperty(exports, \"storeAccount\", { enumerable: true, get: function () { return Account_1.storeAccount; } });\nvar AccountState_1 = require(\"./AccountState\");\nObject.defineProperty(exports, \"loadAccountState\", { enumerable: true, get: function () { return AccountState_1.loadAccountState; } });\nObject.defineProperty(exports, \"storeAccountState\", { enumerable: true, get: function () { return AccountState_1.storeAccountState; } });\nvar AccountStatus_1 = require(\"./AccountStatus\");\nObject.defineProperty(exports, \"loadAccountStatus\", { enumerable: true, get: function () { return AccountStatus_1.loadAccountStatus; } });\nObject.defineProperty(exports, \"storeAccountStatus\", { enumerable: true, get: function () { return AccountStatus_1.storeAccountStatus; } });\nvar AccountStatusChange_1 = require(\"./AccountStatusChange\");\nObject.defineProperty(exports, \"loadAccountStatusChange\", { enumerable: true, get: function () { return AccountStatusChange_1.loadAccountStatusChange; } });\nObject.defineProperty(exports, \"storeAccountStatusChange\", { enumerable: true, get: function () { return AccountStatusChange_1.storeAccountStatusChange; } });\nvar AccountStorage_1 = require(\"./AccountStorage\");\nObject.defineProperty(exports, \"loadAccountStorage\", { enumerable: true, get: function () { return AccountStorage_1.loadAccountStorage; } });\nObject.defineProperty(exports, \"storeAccountStorage\", { enumerable: true, get: function () { return AccountStorage_1.storeAccountStorage; } });\nvar CommonMessageInfo_1 = require(\"./CommonMessageInfo\");\nObject.defineProperty(exports, \"loadCommonMessageInfo\", { enumerable: true, get: function () { return CommonMessageInfo_1.loadCommonMessageInfo; } });\nObject.defineProperty(exports, \"storeCommonMessageInfo\", { enumerable: true, get: function () { return CommonMessageInfo_1.storeCommonMessageInfo; } });\nvar CommonMessageInfoRelaxed_1 = require(\"./CommonMessageInfoRelaxed\");\nObject.defineProperty(exports, \"loadCommonMessageInfoRelaxed\", { enumerable: true, get: function () { return CommonMessageInfoRelaxed_1.loadCommonMessageInfoRelaxed; } });\nObject.defineProperty(exports, \"storeCommonMessageInfoRelaxed\", { enumerable: true, get: function () { return CommonMessageInfoRelaxed_1.storeCommonMessageInfoRelaxed; } });\nvar ComputeSkipReason_1 = require(\"./ComputeSkipReason\");\nObject.defineProperty(exports, \"loadComputeSkipReason\", { enumerable: true, get: function () { return ComputeSkipReason_1.loadComputeSkipReason; } });\nObject.defineProperty(exports, \"storeComputeSkipReason\", { enumerable: true, get: function () { return ComputeSkipReason_1.storeComputeSkipReason; } });\nvar CurrencyCollection_1 = require(\"./CurrencyCollection\");\nObject.defineProperty(exports, \"loadCurrencyCollection\", { enumerable: true, get: function () { return CurrencyCollection_1.loadCurrencyCollection; } });\nObject.defineProperty(exports, \"storeCurrencyCollection\", { enumerable: true, get: function () { return CurrencyCollection_1.storeCurrencyCollection; } });\nvar DepthBalanceInfo_1 = require(\"./DepthBalanceInfo\");\nObject.defineProperty(exports, \"loadDepthBalanceInfo\", { enumerable: true, get: function () { return DepthBalanceInfo_1.loadDepthBalanceInfo; } });\nObject.defineProperty(exports, \"storeDepthBalanceInfo\", { enumerable: true, get: function () { return DepthBalanceInfo_1.storeDepthBalanceInfo; } });\nvar HashUpdate_1 = require(\"./HashUpdate\");\nObject.defineProperty(exports, \"loadHashUpdate\", { enumerable: true, get: function () { return HashUpdate_1.loadHashUpdate; } });\nObject.defineProperty(exports, \"storeHashUpdate\", { enumerable: true, get: function () { return HashUpdate_1.storeHashUpdate; } });\nvar MasterchainStateExtra_1 = require(\"./MasterchainStateExtra\");\nObject.defineProperty(exports, \"loadMasterchainStateExtra\", { enumerable: true, get: function () { return MasterchainStateExtra_1.loadMasterchainStateExtra; } });\nvar Message_1 = require(\"./Message\");\nObject.defineProperty(exports, \"loadMessage\", { enumerable: true, get: function () { return Message_1.loadMessage; } });\nObject.defineProperty(exports, \"storeMessage\", { enumerable: true, get: function () { return Message_1.storeMessage; } });\nvar MessageRelaxed_1 = require(\"./MessageRelaxed\");\nObject.defineProperty(exports, \"loadMessageRelaxed\", { enumerable: true, get: function () { return MessageRelaxed_1.loadMessageRelaxed; } });\nObject.defineProperty(exports, \"storeMessageRelaxed\", { enumerable: true, get: function () { return MessageRelaxed_1.storeMessageRelaxed; } });\nvar SendMode_1 = require(\"./SendMode\");\nObject.defineProperty(exports, \"SendMode\", { enumerable: true, get: function () { return SendMode_1.SendMode; } });\nvar ShardAccount_1 = require(\"./ShardAccount\");\nObject.defineProperty(exports, \"loadShardAccount\", { enumerable: true, get: function () { return ShardAccount_1.loadShardAccount; } });\nObject.defineProperty(exports, \"storeShardAccount\", { enumerable: true, get: function () { return ShardAccount_1.storeShardAccount; } });\nvar ShardAccounts_1 = require(\"./ShardAccounts\");\nObject.defineProperty(exports, \"ShardAccountRefValue\", { enumerable: true, get: function () { return ShardAccounts_1.ShardAccountRefValue; } });\nObject.defineProperty(exports, \"loadShardAccounts\", { enumerable: true, get: function () { return ShardAccounts_1.loadShardAccounts; } });\nObject.defineProperty(exports, \"storeShardAccounts\", { enumerable: true, get: function () { return ShardAccounts_1.storeShardAccounts; } });\nvar ShardIdent_1 = require(\"./ShardIdent\");\nObject.defineProperty(exports, \"loadShardIdent\", { enumerable: true, get: function () { return ShardIdent_1.loadShardIdent; } });\nObject.defineProperty(exports, \"storeShardIdent\", { enumerable: true, get: function () { return ShardIdent_1.storeShardIdent; } });\nvar ShardStateUnsplit_1 = require(\"./ShardStateUnsplit\");\nObject.defineProperty(exports, \"loadShardStateUnsplit\", { enumerable: true, get: function () { return ShardStateUnsplit_1.loadShardStateUnsplit; } });\nvar SimpleLibrary_1 = require(\"./SimpleLibrary\");\nObject.defineProperty(exports, \"loadSimpleLibrary\", { enumerable: true, get: function () { return SimpleLibrary_1.loadSimpleLibrary; } });\nObject.defineProperty(exports, \"storeSimpleLibrary\", { enumerable: true, get: function () { return SimpleLibrary_1.storeSimpleLibrary; } });\nvar SplitMergeInfo_1 = require(\"./SplitMergeInfo\");\nObject.defineProperty(exports, \"loadSplitMergeInfo\", { enumerable: true, get: function () { return SplitMergeInfo_1.loadSplitMergeInfo; } });\nObject.defineProperty(exports, \"storeSplitMergeInfo\", { enumerable: true, get: function () { return SplitMergeInfo_1.storeSplitMergeInfo; } });\nvar StateInit_1 = require(\"./StateInit\");\nObject.defineProperty(exports, \"loadStateInit\", { enumerable: true, get: function () { return StateInit_1.loadStateInit; } });\nObject.defineProperty(exports, \"storeStateInit\", { enumerable: true, get: function () { return StateInit_1.storeStateInit; } });\nvar StorageInto_1 = require(\"./StorageInto\");\nObject.defineProperty(exports, \"loadStorageInfo\", { enumerable: true, get: function () { return StorageInto_1.loadStorageInfo; } });\nObject.defineProperty(exports, \"storeStorageInfo\", { enumerable: true, get: function () { return StorageInto_1.storeStorageInfo; } });\nvar StorageUsed_1 = require(\"./StorageUsed\");\nObject.defineProperty(exports, \"loadStorageUsed\", { enumerable: true, get: function () { return StorageUsed_1.loadStorageUsed; } });\nObject.defineProperty(exports, \"storeStorageUsed\", { enumerable: true, get: function () { return StorageUsed_1.storeStorageUsed; } });\nvar StorageUsedShort_1 = require(\"./StorageUsedShort\");\nObject.defineProperty(exports, \"loadStorageUsedShort\", { enumerable: true, get: function () { return StorageUsedShort_1.loadStorageUsedShort; } });\nObject.defineProperty(exports, \"storeStorageUsedShort\", { enumerable: true, get: function () { return StorageUsedShort_1.storeStorageUsedShort; } });\nvar TickTock_1 = require(\"./TickTock\");\nObject.defineProperty(exports, \"loadTickTock\", { enumerable: true, get: function () { return TickTock_1.loadTickTock; } });\nObject.defineProperty(exports, \"storeTickTock\", { enumerable: true, get: function () { return TickTock_1.storeTickTock; } });\nvar Transaction_1 = require(\"./Transaction\");\nObject.defineProperty(exports, \"loadTransaction\", { enumerable: true, get: function () { return Transaction_1.loadTransaction; } });\nObject.defineProperty(exports, \"storeTransaction\", { enumerable: true, get: function () { return Transaction_1.storeTransaction; } });\nvar TransactionActionPhase_1 = require(\"./TransactionActionPhase\");\nObject.defineProperty(exports, \"loadTransactionActionPhase\", { enumerable: true, get: function () { return TransactionActionPhase_1.loadTransactionActionPhase; } });\nObject.defineProperty(exports, \"storeTransactionActionPhase\", { enumerable: true, get: function () { return TransactionActionPhase_1.storeTransactionActionPhase; } });\nvar TransactionBouncePhase_1 = require(\"./TransactionBouncePhase\");\nObject.defineProperty(exports, \"loadTransactionBouncePhase\", { enumerable: true, get: function () { return TransactionBouncePhase_1.loadTransactionBouncePhase; } });\nObject.defineProperty(exports, \"storeTransactionBouncePhase\", { enumerable: true, get: function () { return TransactionBouncePhase_1.storeTransactionBouncePhase; } });\nvar TransactionComputePhase_1 = require(\"./TransactionComputePhase\");\nObject.defineProperty(exports, \"loadTransactionComputePhase\", { enumerable: true, get: function () { return TransactionComputePhase_1.loadTransactionComputePhase; } });\nObject.defineProperty(exports, \"storeTransactionComputePhase\", { enumerable: true, get: function () { return TransactionComputePhase_1.storeTransactionComputePhase; } });\nvar TransactionCreditPhase_1 = require(\"./TransactionCreditPhase\");\nObject.defineProperty(exports, \"loadTransactionCreditPhase\", { enumerable: true, get: function () { return TransactionCreditPhase_1.loadTransactionCreditPhase; } });\nObject.defineProperty(exports, \"storeTransactionCreditPhase\", { enumerable: true, get: function () { return TransactionCreditPhase_1.storeTransactionCreditPhase; } });\nvar TransactionDescription_1 = require(\"./TransactionDescription\");\nObject.defineProperty(exports, \"loadTransactionDescription\", { enumerable: true, get: function () { return TransactionDescription_1.loadTransactionDescription; } });\nObject.defineProperty(exports, \"storeTransactionDescription\", { enumerable: true, get: function () { return TransactionDescription_1.storeTransactionDescription; } });\nvar TransactionStoragePhase_1 = require(\"./TransactionStoragePhase\");\nObject.defineProperty(exports, \"loadTransactionStoragePhase\", { enumerable: true, get: function () { return TransactionStoragePhase_1.loadTransactionStoragePhase; } });\nObject.defineProperty(exports, \"storeTransactionsStoragePhase\", { enumerable: true, get: function () { return TransactionStoragePhase_1.storeTransactionsStoragePhase; } });\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.openContract = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Cell_1 = require(\"../boc/Cell\");\nfunction openContract(src, factory) {\n // Resolve parameters\n let address;\n let init = null;\n if (!Address_1.Address.isAddress(src.address)) {\n throw Error('Invalid address');\n }\n address = src.address;\n if (src.init) {\n if (!(src.init.code instanceof Cell_1.Cell)) {\n throw Error('Invalid init.code');\n }\n if (!(src.init.data instanceof Cell_1.Cell)) {\n throw Error('Invalid init.data');\n }\n init = src.init;\n }\n // Create executor\n let executor = factory({ address, init });\n // Create proxy\n return new Proxy(src, {\n get(target, prop) {\n const value = target[prop];\n if (typeof prop === 'string' && (prop.startsWith('get') || prop.startsWith('send'))) {\n if (typeof value === 'function') {\n return (...args) => value.apply(target, [executor, ...args]);\n }\n }\n return value;\n }\n });\n}\nexports.openContract = openContract;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ComputeError = void 0;\nclass ComputeError extends Error {\n constructor(message, exitCode, opts) {\n super(message);\n this.exitCode = exitCode;\n this.debugLogs = opts && opts.debugLogs ? opts.debugLogs : null;\n this.logs = opts && opts.logs ? opts.logs : null;\n Object.setPrototypeOf(this, ComputeError.prototype);\n }\n}\nexports.ComputeError = ComputeError;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMethodId = void 0;\nconst TABLE = new Int16Array([\n 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n]);\nfunction crc16(data) {\n if (!(data instanceof Buffer)) {\n data = Buffer.from(data);\n }\n let crc = 0;\n for (let index = 0; index < data.length; index++) {\n const byte = data[index];\n crc = (TABLE[((crc >> 8) ^ byte) & 0xff] ^ (crc << 8)) & 0xffff;\n }\n return crc;\n}\nfunction getMethodId(name) {\n return (crc16(name) & 0xffff) | 0x10000;\n}\nexports.getMethodId = getMethodId;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeSignVerify = exports.safeSign = void 0;\nconst ton_crypto_1 = require(\"ton-crypto\");\nconst MIN_SEED_LENGTH = 8;\nconst MAX_SEED_LENGTH = 64;\nfunction createSafeSignHash(cell, seed) {\n let seedData = Buffer.from(seed);\n if (seedData.length > MAX_SEED_LENGTH) {\n throw Error('Seed can\\t be longer than 64 bytes');\n }\n if (seedData.length < MIN_SEED_LENGTH) {\n throw Error('Seed must be at least 8 bytes');\n }\n return (0, ton_crypto_1.sha256_sync)(Buffer.concat([Buffer.from([0xff, 0xff]), seedData, cell.hash()]));\n}\nfunction safeSign(cell, secretKey, seed = 'ton-safe-sign-magic') {\n return (0, ton_crypto_1.sign)(createSafeSignHash(cell, seed), secretKey);\n}\nexports.safeSign = safeSign;\nfunction safeSignVerify(cell, signature, publicKey, seed = 'ton-safe-sign-magic') {\n return (0, ton_crypto_1.signVerify)(createSafeSignHash(cell, seed), signature, publicKey);\n}\nexports.safeSignVerify = safeSignVerify;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeSignVerify = exports.safeSign = exports.getMethodId = exports.base32Encode = exports.base32Decode = exports.crc32c = exports.crc16 = exports.fromNano = exports.toNano = exports.ComputeError = exports.openContract = exports.TupleBuilder = exports.TupleReader = exports.serializeTuple = exports.parseTuple = exports.exoticPruned = exports.exoticMerkleUpdate = exports.exoticMerkleProof = exports.Dictionary = exports.Cell = exports.CellType = exports.Slice = exports.beginCell = exports.Builder = exports.BitBuilder = exports.BitReader = exports.BitString = exports.contractAddress = exports.ADNLAddress = exports.ExternalAddress = exports.address = exports.Address = void 0;\n// Address\nvar Address_1 = require(\"./address/Address\");\nObject.defineProperty(exports, \"Address\", { enumerable: true, get: function () { return Address_1.Address; } });\nObject.defineProperty(exports, \"address\", { enumerable: true, get: function () { return Address_1.address; } });\nvar ExternalAddress_1 = require(\"./address/ExternalAddress\");\nObject.defineProperty(exports, \"ExternalAddress\", { enumerable: true, get: function () { return ExternalAddress_1.ExternalAddress; } });\nvar ADNLAddress_1 = require(\"./address/ADNLAddress\");\nObject.defineProperty(exports, \"ADNLAddress\", { enumerable: true, get: function () { return ADNLAddress_1.ADNLAddress; } });\nvar contractAddress_1 = require(\"./address/contractAddress\");\nObject.defineProperty(exports, \"contractAddress\", { enumerable: true, get: function () { return contractAddress_1.contractAddress; } });\n// BitString\nvar BitString_1 = require(\"./boc/BitString\");\nObject.defineProperty(exports, \"BitString\", { enumerable: true, get: function () { return BitString_1.BitString; } });\nvar BitReader_1 = require(\"./boc/BitReader\");\nObject.defineProperty(exports, \"BitReader\", { enumerable: true, get: function () { return BitReader_1.BitReader; } });\nvar BitBuilder_1 = require(\"./boc/BitBuilder\");\nObject.defineProperty(exports, \"BitBuilder\", { enumerable: true, get: function () { return BitBuilder_1.BitBuilder; } });\n// Cell\nvar Builder_1 = require(\"./boc/Builder\");\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return Builder_1.Builder; } });\nObject.defineProperty(exports, \"beginCell\", { enumerable: true, get: function () { return Builder_1.beginCell; } });\nvar Slice_1 = require(\"./boc/Slice\");\nObject.defineProperty(exports, \"Slice\", { enumerable: true, get: function () { return Slice_1.Slice; } });\nvar CellType_1 = require(\"./boc/CellType\");\nObject.defineProperty(exports, \"CellType\", { enumerable: true, get: function () { return CellType_1.CellType; } });\nvar Cell_1 = require(\"./boc/Cell\");\nObject.defineProperty(exports, \"Cell\", { enumerable: true, get: function () { return Cell_1.Cell; } });\n// Dict\nvar Dictionary_1 = require(\"./dict/Dictionary\");\nObject.defineProperty(exports, \"Dictionary\", { enumerable: true, get: function () { return Dictionary_1.Dictionary; } });\n// Exotics\nvar exoticMerkleProof_1 = require(\"./boc/cell/exoticMerkleProof\");\nObject.defineProperty(exports, \"exoticMerkleProof\", { enumerable: true, get: function () { return exoticMerkleProof_1.exoticMerkleProof; } });\nvar exoticMerkleUpdate_1 = require(\"./boc/cell/exoticMerkleUpdate\");\nObject.defineProperty(exports, \"exoticMerkleUpdate\", { enumerable: true, get: function () { return exoticMerkleUpdate_1.exoticMerkleUpdate; } });\nvar exoticPruned_1 = require(\"./boc/cell/exoticPruned\");\nObject.defineProperty(exports, \"exoticPruned\", { enumerable: true, get: function () { return exoticPruned_1.exoticPruned; } });\nvar tuple_1 = require(\"./tuple/tuple\");\nObject.defineProperty(exports, \"parseTuple\", { enumerable: true, get: function () { return tuple_1.parseTuple; } });\nObject.defineProperty(exports, \"serializeTuple\", { enumerable: true, get: function () { return tuple_1.serializeTuple; } });\nvar reader_1 = require(\"./tuple/reader\");\nObject.defineProperty(exports, \"TupleReader\", { enumerable: true, get: function () { return reader_1.TupleReader; } });\nvar builder_1 = require(\"./tuple/builder\");\nObject.defineProperty(exports, \"TupleBuilder\", { enumerable: true, get: function () { return builder_1.TupleBuilder; } });\n// Types\n__exportStar(require(\"./types/_export\"), exports);\nvar openContract_1 = require(\"./contract/openContract\");\nObject.defineProperty(exports, \"openContract\", { enumerable: true, get: function () { return openContract_1.openContract; } });\nvar ComputeError_1 = require(\"./contract/ComputeError\");\nObject.defineProperty(exports, \"ComputeError\", { enumerable: true, get: function () { return ComputeError_1.ComputeError; } });\n// Utility\nvar convert_1 = require(\"./utils/convert\");\nObject.defineProperty(exports, \"toNano\", { enumerable: true, get: function () { return convert_1.toNano; } });\nObject.defineProperty(exports, \"fromNano\", { enumerable: true, get: function () { return convert_1.fromNano; } });\nvar crc16_1 = require(\"./utils/crc16\");\nObject.defineProperty(exports, \"crc16\", { enumerable: true, get: function () { return crc16_1.crc16; } });\nvar crc32c_1 = require(\"./utils/crc32c\");\nObject.defineProperty(exports, \"crc32c\", { enumerable: true, get: function () { return crc32c_1.crc32c; } });\nvar base32_1 = require(\"./utils/base32\");\nObject.defineProperty(exports, \"base32Decode\", { enumerable: true, get: function () { return base32_1.base32Decode; } });\nObject.defineProperty(exports, \"base32Encode\", { enumerable: true, get: function () { return base32_1.base32Encode; } });\nvar getMethodId_1 = require(\"./utils/getMethodId\");\nObject.defineProperty(exports, \"getMethodId\", { enumerable: true, get: function () { return getMethodId_1.getMethodId; } });\n// Crypto\nvar safeSign_1 = require(\"./crypto/safeSign\");\nObject.defineProperty(exports, \"safeSign\", { enumerable: true, get: function () { return safeSign_1.safeSign; } });\nObject.defineProperty(exports, \"safeSignVerify\", { enumerable: true, get: function () { return safeSign_1.safeSignVerify; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndomorphismMonoid = exports.not = exports.SK = exports.hole = exports.pipe = exports.untupled = exports.tupled = exports.absurd = exports.decrement = exports.increment = exports.tuple = exports.flow = exports.flip = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.constant = exports.unsafeCoerce = exports.identity = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\nexports.getBooleanAlgebra = getBooleanAlgebra;\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\nexports.getSemigroup = getSemigroup;\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getMonoid = function (M) {\n var getSemigroupM = (0, exports.getSemigroup)(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getRing = function (R) {\n var S = (0, exports.getSemiring)(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\nexports.getRing = getRing;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\nexports.apply = apply;\n/**\n * @since 2.0.0\n */\nfunction identity(a) {\n return a;\n}\nexports.identity = identity;\n/**\n * @since 2.0.0\n */\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nfunction constant(a) {\n return function () { return a; };\n}\nexports.constant = constant;\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexports.constTrue = constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexports.constFalse = constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexports.constNull = constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexports.constUndefined = constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexports.constVoid = exports.constUndefined;\nfunction flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nexports.flip = flip;\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\nexports.flow = flow;\n/**\n * @since 2.0.0\n */\nfunction tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\nexports.tuple = tuple;\n/**\n * @since 2.0.0\n */\nfunction increment(n) {\n return n + 1;\n}\nexports.increment = increment;\n/**\n * @since 2.0.0\n */\nfunction decrement(n) {\n return n - 1;\n}\nexports.decrement = decrement;\n/**\n * @since 2.0.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\nexports.absurd = absurd;\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nfunction tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\nexports.tupled = tupled;\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nfunction untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexports.untupled = untupled;\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\nexports.pipe = pipe;\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexports.hole = absurd;\n/**\n * @since 2.11.0\n */\nvar SK = function (_, b) { return b; };\nexports.SK = SK;\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction not(predicate) {\n return function (a) { return !predicate(a); };\n}\nexports.not = not;\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nvar getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\nexports.getEndomorphismMonoid = getEndomorphismMonoid;\n", "\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromReadonlyNonEmptyArray = exports.has = exports.emptyRecord = exports.emptyReadonlyArray = exports.tail = exports.head = exports.isNonEmpty = exports.singleton = exports.right = exports.left = exports.isRight = exports.isLeft = exports.some = exports.none = exports.isSome = exports.isNone = void 0;\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/** @internal */\nvar isSome = function (fa) { return fa._tag === 'Some'; };\nexports.isSome = isSome;\n/** @internal */\nexports.none = { _tag: 'None' };\n/** @internal */\nvar some = function (a) { return ({ _tag: 'Some', value: a }); };\nexports.some = some;\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isLeft = function (ma) { return ma._tag === 'Left'; };\nexports.isLeft = isLeft;\n/** @internal */\nvar isRight = function (ma) { return ma._tag === 'Right'; };\nexports.isRight = isRight;\n/** @internal */\nvar left = function (e) { return ({ _tag: 'Left', left: e }); };\nexports.left = left;\n/** @internal */\nvar right = function (a) { return ({ _tag: 'Right', right: a }); };\nexports.right = right;\n// -------------------------------------------------------------------------------------\n// ReadonlyNonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar singleton = function (a) { return [a]; };\nexports.singleton = singleton;\n/** @internal */\nvar isNonEmpty = function (as) { return as.length > 0; };\nexports.isNonEmpty = isNonEmpty;\n/** @internal */\nvar head = function (as) { return as[0]; };\nexports.head = head;\n/** @internal */\nvar tail = function (as) { return as.slice(1); };\nexports.tail = tail;\n// -------------------------------------------------------------------------------------\n// empty\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.emptyReadonlyArray = [];\n/** @internal */\nexports.emptyRecord = {};\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };\nexports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequenceS = exports.sequenceT = exports.getApplySemigroup = exports.apS = exports.apSecond = exports.apFirst = exports.ap = void 0;\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nfunction ap(F, G) {\n return function (fa) {\n return function (fab) {\n return F.ap(F.map(fab, function (gab) { return function (ga) { return G.ap(gab, ga); }; }), fa);\n };\n };\n}\nexports.ap = ap;\nfunction apFirst(A) {\n return function (second) { return function (first) {\n return A.ap(A.map(first, function (a) { return function () { return a; }; }), second);\n }; };\n}\nexports.apFirst = apFirst;\nfunction apSecond(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function () { return function (b) { return b; }; }), second);\n };\n };\n}\nexports.apSecond = apSecond;\nfunction apS(F) {\n return function (name, fb) {\n return function (fa) {\n return F.ap(F.map(fa, function (a) { return function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }; }), fb);\n };\n };\n}\nexports.apS = apS;\nfunction getApplySemigroup(F) {\n return function (S) { return ({\n concat: function (first, second) {\n return F.ap(F.map(first, function (x) { return function (y) { return S.concat(x, y); }; }), second);\n }\n }); };\n}\nexports.getApplySemigroup = getApplySemigroup;\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\n };\n}\nvar tupleConstructors = {\n 1: function (a) { return [a]; },\n 2: function (a) { return function (b) { return [a, b]; }; },\n 3: function (a) { return function (b) { return function (c) { return [a, b, c]; }; }; },\n 4: function (a) { return function (b) { return function (c) { return function (d) { return [a, b, c, d]; }; }; }; },\n 5: function (a) { return function (b) { return function (c) { return function (d) { return function (e) { return [a, b, c, d, e]; }; }; }; }; }\n};\nfunction getTupleConstructor(len) {\n if (!_.has.call(tupleConstructors, len)) {\n tupleConstructors[len] = curried(function_1.tuple, len - 1, []);\n }\n return tupleConstructors[len];\n}\nfunction sequenceT(F) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n return fas;\n };\n}\nexports.sequenceT = sequenceT;\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a);\n };\n case 2:\n return function (a) { return function (b) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a);\n }; };\n case 3:\n return function (a) { return function (b) { return function (c) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a);\n }; }; };\n case 4:\n return function (a) { return function (b) { return function (c) { return function (d) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a);\n }; }; }; };\n case 5:\n return function (a) { return function (b) { return function (c) { return function (d) { return function (e) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a[keys[4]] = e,\n _a);\n }; }; }; }; };\n default:\n return curried(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var r = {};\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n return r;\n }, len - 1, []);\n }\n}\nfunction sequenceS(F) {\n return function (r) {\n var keys = Object.keys(r);\n var len = keys.length;\n var f = getRecordConstructor(keys);\n var fr = F.map(r[keys[0]], f);\n for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n return fr;\n };\n}\nexports.sequenceS = sequenceS;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFunctorComposition = exports.let = exports.bindTo = exports.flap = exports.map = void 0;\n/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nfunction map(F, G) {\n return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; };\n}\nexports.map = map;\nfunction flap(F) {\n return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; };\n}\nexports.flap = flap;\nfunction bindTo(F) {\n return function (name) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return (_a = {}, _a[name] = a, _a);\n }); }; };\n}\nexports.bindTo = bindTo;\nfunction let_(F) {\n return function (name, f) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a));\n }); }; };\n}\nexports.let = let_;\n/** @deprecated */\nfunction getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) { return (0, function_1.pipe)(fga, _map(f)); }\n };\n}\nexports.getFunctorComposition = getFunctorComposition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApplicativeComposition = exports.getApplicativeMonoid = void 0;\n/**\n * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values\n * of type `f a` from values of type `a`.\n *\n * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are\n * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the\n * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for\n * any number of function arguments.\n *\n * Instances must satisfy the following laws in addition to the `Apply` laws:\n *\n * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa`\n * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))`\n * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)`\n *\n * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)`\n *\n * @since 2.0.0\n */\nvar Apply_1 = require(\"./Apply\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nfunction getApplicativeMonoid(F) {\n var f = (0, Apply_1.getApplySemigroup)(F);\n return function (M) { return ({\n concat: f(M).concat,\n empty: F.of(M.empty)\n }); };\n}\nexports.getApplicativeMonoid = getApplicativeMonoid;\n/** @deprecated */\nfunction getApplicativeComposition(F, G) {\n var map = (0, Functor_1.getFunctorComposition)(F, G).map;\n var _ap = (0, Apply_1.ap)(F, G);\n return {\n map: map,\n of: function (a) { return F.of(G.of(a)); },\n ap: function (fgab, fga) { return (0, function_1.pipe)(fgab, _ap(fga)); }\n };\n}\nexports.getApplicativeComposition = getApplicativeComposition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = exports.chainFirst = void 0;\nfunction chainFirst(M) {\n return function (f) { return function (first) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); }; };\n}\nexports.chainFirst = chainFirst;\nfunction bind(M) {\n return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }); }); }; };\n}\nexports.bind = bind;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tailRec = void 0;\n/**\n * @since 2.0.0\n */\nvar tailRec = function (startWith, f) {\n var ab = f(startWith);\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n return ab.right;\n};\nexports.tailRec = tailRec;\n", "\"use strict\";\n/**\n * The `FromEither` type class represents those data types which support errors.\n *\n * @since 2.10.0\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterOrElse = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromPredicate = exports.fromOption = void 0;\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nfunction fromOption(F) {\n return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; };\n}\nexports.fromOption = fromOption;\nfunction fromPredicate(F) {\n return function (predicate, onFalse) {\n return function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n };\n };\n}\nexports.fromPredicate = fromPredicate;\nfunction fromOptionK(F) {\n var fromOptionF = fromOption(F);\n return function (onNone) {\n var from = fromOptionF(onNone);\n return function (f) { return (0, function_1.flow)(f, from); };\n };\n}\nexports.fromOptionK = fromOptionK;\nfunction chainOptionK(F, M) {\n var fromOptionKF = fromOptionK(F);\n return function (onNone) {\n var from = fromOptionKF(onNone);\n return function (f) { return function (ma) { return M.chain(ma, from(f)); }; };\n };\n}\nexports.chainOptionK = chainOptionK;\nfunction fromEitherK(F) {\n return function (f) { return (0, function_1.flow)(f, F.fromEither); };\n}\nexports.fromEitherK = fromEitherK;\nfunction chainEitherK(F, M) {\n var fromEitherKF = fromEitherK(F);\n return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; };\n}\nexports.chainEitherK = chainEitherK;\nfunction chainFirstEitherK(F, M) {\n return (0, function_1.flow)(fromEitherK(F), (0, Chain_1.chainFirst)(M));\n}\nexports.chainFirstEitherK = chainFirstEitherK;\nfunction filterOrElse(F, M) {\n return function (predicate, onFalse) {\n return function (ma) {\n return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); });\n };\n };\n}\nexports.filterOrElse = filterOrElse;\n", "\"use strict\";\n/**\n * ```ts\n * interface Separated {\n * readonly left: E\n * readonly right: A\n * }\n * ```\n *\n * Represents a result of separating a whole into two parts.\n *\n * @since 2.10.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.right = exports.left = exports.flap = exports.Functor = exports.Bifunctor = exports.URI = exports.bimap = exports.mapLeft = exports.map = exports.separated = void 0;\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar separated = function (left, right) { return ({ left: left, right: right }); };\nexports.separated = separated;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); };\nvar _bimap = function (fa, g, f) { return (0, function_1.pipe)(fa, (0, exports.bimap)(g, f)); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar map = function (f) {\n return function (fa) {\n return (0, exports.separated)((0, exports.left)(fa), f((0, exports.right)(fa)));\n };\n};\nexports.map = map;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar mapLeft = function (f) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), (0, exports.right)(fa));\n };\n};\nexports.mapLeft = mapLeft;\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar bimap = function (f, g) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), g((0, exports.right)(fa)));\n };\n};\nexports.bimap = bimap;\n/**\n * @category type lambdas\n * @since 2.10.0\n */\nexports.URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar left = function (s) { return s.left; };\nexports.left = left;\n/**\n * @since 2.10.0\n */\nvar right = function (s) { return s.right; };\nexports.right = right;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterE = exports.witherDefault = exports.wiltDefault = void 0;\nvar _ = __importStar(require(\"./internal\"));\nfunction wiltDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.separate); };\n };\n}\nexports.wiltDefault = wiltDefault;\nfunction witherDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.compact); };\n };\n}\nexports.witherDefault = witherDefault;\nfunction filterE(W) {\n return function (F) {\n var witherF = W.wither(F);\n return function (predicate) { return function (ga) { return witherF(ga, function (a) { return F.map(predicate(a), function (b) { return (b ? _.some(a) : _.none); }); }); }; };\n };\n}\nexports.filterE = filterE;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fold = exports.match = exports.foldW = exports.matchW = exports.isRight = exports.isLeft = exports.fromOption = exports.fromPredicate = exports.FromEither = exports.MonadThrow = exports.throwError = exports.ChainRec = exports.Extend = exports.extend = exports.Alt = exports.alt = exports.altW = exports.Bifunctor = exports.mapLeft = exports.bimap = exports.Traversable = exports.sequence = exports.traverse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.chain = exports.chainW = exports.Applicative = exports.Apply = exports.ap = exports.apW = exports.Pointed = exports.of = exports.Functor = exports.map = exports.getAltValidation = exports.getApplicativeValidation = exports.getWitherable = exports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.URI = exports.right = exports.left = void 0;\nexports.getValidation = exports.getValidationMonoid = exports.getValidationSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.either = exports.stringifyJSON = exports.parseJSON = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toError = exports.toUnion = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.orElse = exports.orElseW = exports.swap = exports.filterOrElseW = exports.filterOrElse = exports.chainOptionK = exports.fromOptionK = exports.duplicate = exports.flatten = exports.flattenW = exports.chainFirstW = exports.chainFirst = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar ChainRec_1 = require(\"./ChainRec\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.left = _.left;\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.right = _.right;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) { return function (fa, f) {\n var foldMapM = (0, exports.foldMap)(M);\n return (0, function_1.pipe)(fa, foldMapM(f));\n}; };\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\nvar _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); };\nvar _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\nvar _chainRec = function (a, f) {\n return (0, ChainRec_1.tailRec)(f(a), function (e) {\n return (0, exports.isLeft)(e) ? (0, exports.right)((0, exports.left)(e.left)) : (0, exports.isLeft)(e.right) ? (0, exports.left)(f(e.right.left)) : (0, exports.right)((0, exports.right)(e.right.right));\n });\n};\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (SE, SA) { return ({\n show: function (ma) { return ((0, exports.isLeft)(ma) ? \"left(\".concat(SE.show(ma.left), \")\") : \"right(\".concat(SA.show(ma.right), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (EL, EA) { return ({\n equals: function (x, y) {\n return x === y || ((0, exports.isLeft)(x) ? (0, exports.isLeft)(y) && EL.equals(x.left, y.left) : (0, exports.isRight)(y) && EA.equals(x.right, y.right));\n }\n}); };\nexports.getEq = getEq;\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isLeft)(y) ? x : (0, exports.isLeft)(x) ? y : (0, exports.right)(S.concat(x.right, y.right))); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category filtering\n * @since 2.10.0\n */\nvar getCompactable = function (M) {\n var empty = (0, exports.left)(M.empty);\n return {\n URI: exports.URI,\n _E: undefined,\n compact: function (ma) { return ((0, exports.isLeft)(ma) ? ma : ma.right._tag === 'None' ? empty : (0, exports.right)(ma.right.value)); },\n separate: function (ma) {\n return (0, exports.isLeft)(ma)\n ? (0, Separated_1.separated)(ma, ma)\n : (0, exports.isLeft)(ma.right)\n ? (0, Separated_1.separated)((0, exports.right)(ma.right.left), empty)\n : (0, Separated_1.separated)(empty, (0, exports.right)(ma.right.right));\n }\n };\n};\nexports.getCompactable = getCompactable;\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.10.0\n */\nvar getFilterable = function (M) {\n var empty = (0, exports.left)(M.empty);\n var _a = (0, exports.getCompactable)(M), compact = _a.compact, separate = _a.separate;\n var filter = function (ma, predicate) {\n return (0, exports.isLeft)(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return (0, exports.isLeft)(ma)\n ? (0, Separated_1.separated)(ma, ma)\n : p(ma.right)\n ? (0, Separated_1.separated)(empty, (0, exports.right)(ma.right))\n : (0, Separated_1.separated)((0, exports.right)(ma.right), empty);\n };\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if ((0, exports.isLeft)(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : (0, exports.right)(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if ((0, exports.isLeft)(ma)) {\n return (0, Separated_1.separated)(ma, ma);\n }\n var e = f(ma.right);\n return (0, exports.isLeft)(e) ? (0, Separated_1.separated)((0, exports.right)(e.left), empty) : (0, Separated_1.separated)(empty, (0, exports.right)(e.right));\n }\n };\n};\nexports.getFilterable = getFilterable;\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.0.0\n */\nvar getWitherable = function (M) {\n var F_ = (0, exports.getFilterable)(M);\n var C = (0, exports.getCompactable)(M);\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: F_.compact,\n separate: F_.separate,\n filter: F_.filter,\n filterMap: F_.filterMap,\n partition: F_.partition,\n partitionMap: F_.partitionMap,\n traverse: _traverse,\n sequence: exports.sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: (0, Witherable_1.witherDefault)(exports.Traversable, C),\n wilt: (0, Witherable_1.wiltDefault)(exports.Traversable, C)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * The default [`Applicative`](#applicative) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as A from 'fp-ts/Apply'\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n *\n * const parsePerson = (\n * input: Record\n * ): E.Either =>\n * pipe(\n * E.Do,\n * E.apS('name', parseString(input.name)),\n * E.apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error\n *\n * const Applicative = E.getApplicativeValidation(\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * const apS = A.apS(Applicative)\n *\n * const parsePersonAll = (\n * input: Record\n * ): E.Either =>\n * pipe(\n * E.Do,\n * apS('name', parseString(input.name)),\n * apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nvar getApplicativeValidation = function (SE) { return ({\n URI: exports.URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) {\n return (0, exports.isLeft)(fab)\n ? (0, exports.isLeft)(fa)\n ? (0, exports.left)(SE.concat(fab.left, fa.left))\n : fab\n : (0, exports.isLeft)(fa)\n ? fa\n : (0, exports.right)(fab.right(fa.right));\n },\n of: exports.of\n}); };\nexports.getApplicativeValidation = getApplicativeValidation;\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * const parse = (u: unknown): E.Either =>\n * pipe(\n * parseString(u),\n * E.alt(() => parseNumber(u))\n * )\n *\n * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error\n *\n * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', ')))\n *\n * const parseAll = (u: unknown): E.Either =>\n * Alt.alt(parseString(u), () => parseNumber(u))\n *\n * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nvar getAltValidation = function (SE) { return ({\n URI: exports.URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if ((0, exports.isRight)(me)) {\n return me;\n }\n var ea = that();\n return (0, exports.isLeft)(ea) ? (0, exports.left)(SE.concat(me.left, ea.left)) : ea;\n }\n}); };\nexports.getAltValidation = getAltValidation;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? fa : (0, exports.right)(f(fa.right));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.right;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nvar apW = function (fa) { return function (fab) {\n return (0, exports.isLeft)(fab) ? fab : (0, exports.isLeft)(fa) ? fa : (0, exports.right)(fab.right(fa.right));\n}; };\nexports.apW = apW;\n/**\n * @since 2.0.0\n */\nexports.ap = exports.apW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * Less strict version of [`chain`](#chain).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * const e1: E.Either = E.right(1)\n * const e2: E.Either = E.right(2)\n *\n * export const result1 = pipe(\n * // @ts-expect-error\n * e1,\n * E.chain(() => e2)\n * )\n *\n * // merged error types -----v-------------v\n * // const result2: E.Either\n * export const result2 = pipe(\n * e1, // no error\n * E.chainW(() => e2)\n * )\n *\n * @category sequencing\n * @since 2.6.0\n */\nvar chainW = function (f) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? ma : f(ma.right);\n };\n};\nexports.chainW = chainW;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chain = exports.chainW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * Left-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'prefix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduce(startWith, concat)),\n * 'prefix:a'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduce(startWith, concat)),\n * 'prefix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? b : f(b, fa.right);\n}; };\nexports.reduce = reduce;\n/**\n * Map each element of the structure to a monoid, and combine the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as S from 'fp-ts/string'\n *\n * const yell = (a: string) => `${a}!`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),\n * 'a!'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),\n * S.Monoid.empty\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? M.empty : f(fa.right);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * Right-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'postfix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduceRight(startWith, concat)),\n * 'a:postfix'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduceRight(startWith, concat)),\n * 'postfix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? b : f(fa.right, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isLeft)(ta) ? F.of((0, exports.left)(ta.left)) : F.map(f(ta.right), exports.right);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? F.of((0, exports.left)(ma.left)) : F.map(ma.right, exports.right);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar bimap = function (f, g) { return function (fa) {\n return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : (0, exports.right)(g(fa.right));\n}; };\nexports.bimap = bimap;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.0.0\n */\nvar mapLeft = function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : fa;\n}; };\nexports.mapLeft = mapLeft;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) { return function (fa) {\n return (0, exports.isLeft)(fa) ? that() : fa;\n}; };\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`).\n *\n * | x | y | pipe(x, alt(() => y) |\n * | -------- | -------- | -------------------- |\n * | left(a) | left(b) | left(b) |\n * | left(a) | right(2) | right(2) |\n * | right(1) | left(b) | right(1) |\n * | right(1) | right(2) | right(1) |\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.left('b'))\n * ),\n * E.left('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.right(2))\n * ),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.left('b'))\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.right(2))\n * ),\n * E.right(1)\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isLeft)(wa) ? wa : (0, exports.right)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.ChainRec = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRec\n};\n/**\n * @since 2.6.3\n */\nexports.throwError = exports.left;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n throwError: exports.throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: function_1.identity\n};\n/**\n * @example\n * import { fromPredicate, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * 1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * -1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n *\n * @category lifting\n * @since 2.0.0\n */\nexports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some(1),\n * E.fromOption(() => 'error')\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * E.fromOption(() => 'error')\n * ),\n * E.left('error')\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromOption = \n/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isRight = _.isRight;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onLeft, onRight) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onLeft) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma.right;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Less strict version of [`apFirst`](#apfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apFirstW = exports.apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * Less strict version of [`apSecond`](#apsecond)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apSecondW = exports.apSecond;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * Less strict version of [`chainFirst`](#chainfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.8.0\n */\nexports.chainFirstW = exports.chainFirst;\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexports.flattenW = \n/*#__PURE__*/ (0, exports.chainW)(function_1.identity);\n/**\n * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))\n * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))\n * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.flattenW;\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category lifting\n * @since 2.10.0\n */\nexports.fromOptionK = \n/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain);\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(-1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('a')\n * )\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexports.filterOrElseW = exports.filterOrElse;\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @since 2.0.0\n */\nvar swap = function (ma) { return ((0, exports.isLeft)(ma) ? (0, exports.right)(ma.left) : (0, exports.left)(ma.right)); };\nexports.swap = swap;\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar orElseW = function (onLeft) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma;\n };\n};\nexports.orElseW = orElseW;\n/**\n * Useful for recovering from errors.\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.orElse = exports.orElseW;\n/**\n * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use\n * the provided default as a `Left`.\n *\n * @example\n * import { fromNullable, left, right } from 'fp-ts/Either'\n *\n * const parse = fromNullable('nully')\n *\n * assert.deepStrictEqual(parse(1), right(1))\n * assert.deepStrictEqual(parse(null), left('nully'))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (e) {\n return function (a) {\n return a == null ? (0, exports.left)(e) : (0, exports.right)(a);\n };\n};\nexports.fromNullable = fromNullable;\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = (as: ReadonlyArray): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = (as: ReadonlyArray): E.Either =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f, onThrow) {\n try {\n return (0, exports.right)(f());\n }\n catch (e) {\n return (0, exports.left)(onThrow(e));\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onThrow);\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * @category lifting\n * @since 2.9.0\n */\nvar fromNullableK = function (e) {\n var from = (0, exports.fromNullable)(e);\n return function (f) { return (0, function_1.flow)(f, from); };\n};\nexports.fromNullableK = fromNullableK;\n/**\n * @category sequencing\n * @since 2.9.0\n */\nvar chainNullableK = function (e) {\n var from = (0, exports.fromNullableK)(e);\n return function (f) { return (0, exports.chain)(from(f)); };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.toUnion = (0, exports.foldW)(function_1.identity, function_1.identity);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nfunction toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\nexports.toError = toError;\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isLeft)(ma) ? false : E.equals(a, ma.right);\n };\n}\nexports.elem = elem;\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? false : predicate(ma.right);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.bindW = exports.bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.apSW = exports.apS;\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var e = f(0, _.head(as));\n if ((0, exports.isLeft)(e)) {\n return e;\n }\n var out = [e.right];\n for (var i = 1; i < as.length; i++) {\n var e_1 = f(i, as[i]);\n if ((0, exports.isLeft)(e_1)) {\n return e_1;\n }\n out.push(e_1.right);\n }\n return (0, exports.right)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); };\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction parseJSON(s, onError) {\n return (0, exports.tryCatch)(function () { return JSON.parse(s); }, onError);\n}\nexports.parseJSON = parseJSON;\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar stringifyJSON = function (u, onError) {\n return (0, exports.tryCatch)(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\nexports.stringifyJSON = stringifyJSON;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either`\n * (where `E` is from `import E from 'fp-ts/Either'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.either = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values\n * are concatenated using the provided `Semigroup`\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = \n/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = \n/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationSemigroup = function (SE, SA) {\n return (0, Apply_1.getApplySemigroup)((0, exports.getApplicativeValidation)(SE))(SA);\n};\nexports.getValidationSemigroup = getValidationSemigroup;\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationMonoid = function (SE, MA) {\n return (0, Applicative_1.getApplicativeMonoid)((0, exports.getApplicativeValidation)(SE))(MA);\n};\nexports.getValidationMonoid = getValidationMonoid;\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getValidation(SE) {\n var ap = (0, exports.getApplicativeValidation)(SE).ap;\n var alt = (0, exports.getAltValidation)(SE).alt;\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n of: exports.of,\n chain: _chain,\n bimap: _bimap,\n mapLeft: _mapLeft,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n extend: _extend,\n traverse: _traverse,\n sequence: exports.sequence,\n chainRec: _chainRec,\n throwError: exports.throwError,\n ap: ap,\n alt: alt\n };\n}\nexports.getValidation = getValidation;\n", "\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partial = exports.PartialType = exports.type = exports.InterfaceType = exports.array = exports.ArrayType = exports.recursion = exports.RecursiveType = exports.Int = exports.brand = exports.RefinementType = exports.keyof = exports.KeyofType = exports.literal = exports.LiteralType = exports.void = exports.undefined = exports.null = exports.UnknownRecord = exports.AnyDictionaryType = exports.UnknownArray = exports.AnyArrayType = exports.boolean = exports.BooleanType = exports.bigint = exports.BigIntType = exports.number = exports.NumberType = exports.string = exports.StringType = exports.unknown = exports.UnknownType = exports.voidType = exports.VoidType = exports.UndefinedType = exports.nullType = exports.NullType = exports.getIndex = exports.getTags = exports.emptyTags = exports.mergeAll = exports.getDomainKeys = exports.appendContext = exports.getContextEntry = exports.getFunctionName = exports.identity = exports.Type = exports.success = exports.failure = exports.failures = void 0;\nexports.alias = exports.clean = exports.StrictType = exports.dictionary = exports.Integer = exports.refinement = exports.object = exports.ObjectType = exports.Dictionary = exports.any = exports.AnyType = exports.never = exports.NeverType = exports.getDefaultContext = exports.getValidationError = exports.interface = exports.Array = exports.taggedUnion = exports.TaggedUnionType = exports.Function = exports.FunctionType = exports.exact = exports.ExactType = exports.strict = exports.readonlyArray = exports.ReadonlyArrayType = exports.readonly = exports.ReadonlyType = exports.tuple = exports.TupleType = exports.intersection = exports.IntersectionType = exports.union = exports.UnionType = exports.record = exports.DictionaryType = void 0;\n/**\n * @since 1.0.0\n */\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * @category Decode error\n * @since 1.0.0\n */\nexports.failures = Either_1.left;\n/**\n * @category Decode error\n * @since 1.0.0\n */\nvar failure = function (value, context, message) {\n return (0, exports.failures)([{ value: value, context: context, message: message }]);\n};\nexports.failure = failure;\n/**\n * @category Decode error\n * @since 1.0.0\n */\nexports.success = Either_1.right;\n/**\n * @category Codec\n * @since 1.0.0\n */\nvar Type = /** @class */ (function () {\n function Type(\n /** a unique name for this codec */\n name, \n /** a custom type guard */\n is, \n /** succeeds if a value of type I can be decoded to a value of type A */\n validate, \n /** converts a value of type A to a value of type O */\n encode) {\n this.name = name;\n this.is = is;\n this.validate = validate;\n this.encode = encode;\n this.decode = this.decode.bind(this);\n }\n /**\n * @since 1.0.0\n */\n Type.prototype.pipe = function (ab, name) {\n var _this = this;\n if (name === void 0) { name = \"pipe(\".concat(this.name, \", \").concat(ab.name, \")\"); }\n return new Type(name, ab.is, function (i, c) {\n var e = _this.validate(i, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n return ab.validate(e.right, c);\n }, this.encode === exports.identity && ab.encode === exports.identity ? exports.identity : function (b) { return _this.encode(ab.encode(b)); });\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asDecoder = function () {\n return this;\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asEncoder = function () {\n return this;\n };\n /**\n * a version of `validate` with a default context\n * @since 1.0.0\n */\n Type.prototype.decode = function (i) {\n return this.validate(i, [{ key: '', type: this, actual: i }]);\n };\n return Type;\n}());\nexports.Type = Type;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar identity = function (a) { return a; };\nexports.identity = identity;\n/**\n * @since 1.0.0\n */\nfunction getFunctionName(f) {\n return f.displayName || f.name || \"\");\n}\nexports.getFunctionName = getFunctionName;\n/**\n * @since 1.0.0\n */\nfunction getContextEntry(key, decoder) {\n return { key: key, type: decoder };\n}\nexports.getContextEntry = getContextEntry;\n/**\n * @since 1.0.0\n */\nfunction appendContext(c, key, decoder, actual) {\n var len = c.length;\n var r = Array(len + 1);\n for (var i = 0; i < len; i++) {\n r[i] = c[i];\n }\n r[len] = { key: key, type: decoder, actual: actual };\n return r;\n}\nexports.appendContext = appendContext;\nfunction pushAll(xs, ys) {\n var l = ys.length;\n for (var i = 0; i < l; i++) {\n xs.push(ys[i]);\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction getNameFromProps(props) {\n return Object.keys(props)\n .map(function (k) { return \"\".concat(k, \": \").concat(props[k].name); })\n .join(', ');\n}\nfunction useIdentity(codecs) {\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].encode !== exports.identity) {\n return false;\n }\n }\n return true;\n}\nfunction getInterfaceTypeName(props) {\n return \"{ \".concat(getNameFromProps(props), \" }\");\n}\nfunction getPartialTypeName(inner) {\n return \"Partial<\".concat(inner, \">\");\n}\nfunction enumerableRecord(keys, domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \".concat(domain.name, \"]: \").concat(codomain.name, \" }\"); }\n var len = keys.length;\n return new DictionaryType(name, function (u) { return exports.UnknownRecord.is(u) && keys.every(function (k) { return codomain.is(u[k]); }); }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var o = e.right;\n var a = {};\n var errors = [];\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = o[k];\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n if ((0, Either_1.isLeft)(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)((changed || Object.keys(o).length !== len ? a : o));\n }, codomain.encode === exports.identity\n ? exports.identity\n : function (a) {\n var s = {};\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[k] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @internal\n */\nfunction getDomainKeys(domain) {\n var _a;\n if (isLiteralC(domain)) {\n var literal_1 = domain.value;\n if (exports.string.is(literal_1)) {\n return _a = {}, _a[literal_1] = null, _a;\n }\n }\n else if (isKeyofC(domain)) {\n return domain.keys;\n }\n else if (isUnionC(domain)) {\n var keys = domain.types.map(function (type) { return getDomainKeys(type); });\n return keys.some(undefinedType.is) ? undefined : Object.assign.apply(Object, __spreadArray([{}], keys, false));\n }\n return undefined;\n}\nexports.getDomainKeys = getDomainKeys;\nfunction nonEnumerableRecord(domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \".concat(domain.name, \"]: \").concat(codomain.name, \" }\"); }\n return new DictionaryType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n return Object.keys(u).every(function (k) { return domain.is(k) && codomain.is(u[k]); });\n }\n return isAnyC(codomain) && Array.isArray(u);\n }, function (u, c) {\n if (exports.UnknownRecord.is(u)) {\n var a = {};\n var errors = [];\n var keys = Object.keys(u);\n var len = keys.length;\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = u[k];\n var domainResult = domain.validate(k, appendContext(c, k, domain, k));\n if ((0, Either_1.isLeft)(domainResult)) {\n pushAll(errors, domainResult.left);\n }\n else {\n var vk = domainResult.right;\n changed = changed || vk !== k;\n k = vk;\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n if ((0, Either_1.isLeft)(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)((changed ? a : u));\n }\n if (isAnyC(codomain) && Array.isArray(u)) {\n return (0, exports.success)(u);\n }\n return (0, exports.failure)(u, c);\n }, domain.encode === exports.identity && codomain.encode === exports.identity\n ? exports.identity\n : function (a) {\n var s = {};\n var keys = Object.keys(a);\n var len = keys.length;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[String(domain.encode(k))] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\nfunction getUnionName(codecs) {\n return '(' + codecs.map(function (type) { return type.name; }).join(' | ') + ')';\n}\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction mergeAll(base, us) {\n var equal = true;\n var primitive = true;\n var baseIsNotADictionary = !exports.UnknownRecord.is(base);\n for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {\n var u = us_1[_i];\n if (u !== base) {\n equal = false;\n }\n if (exports.UnknownRecord.is(u)) {\n primitive = false;\n }\n }\n if (equal) {\n return base;\n }\n else if (primitive) {\n return us[us.length - 1];\n }\n var r = {};\n for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {\n var u = us_2[_a];\n for (var k in u) {\n if (!hasOwnProperty.call(r, k) || baseIsNotADictionary || u[k] !== base[k]) {\n r[k] = u[k];\n }\n }\n }\n return r;\n}\nexports.mergeAll = mergeAll;\nfunction getProps(codec) {\n switch (codec._tag) {\n case 'RefinementType':\n case 'ReadonlyType':\n return getProps(codec.type);\n case 'InterfaceType':\n case 'StrictType':\n case 'PartialType':\n return codec.props;\n case 'IntersectionType':\n return codec.types.reduce(function (props, type) { return Object.assign(props, getProps(type)); }, {});\n }\n}\nfunction stripKeys(o, props) {\n var keys = Object.getOwnPropertyNames(o);\n var shouldStrip = false;\n var r = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwnProperty.call(props, key)) {\n shouldStrip = true;\n }\n else {\n r[key] = o[key];\n }\n }\n return shouldStrip ? r : o;\n}\nfunction getExactTypeName(codec) {\n if (isTypeC(codec)) {\n return \"{| \".concat(getNameFromProps(codec.props), \" |}\");\n }\n else if (isPartialC(codec)) {\n return getPartialTypeName(\"{| \".concat(getNameFromProps(codec.props), \" |}\"));\n }\n return \"Exact<\".concat(codec.name, \">\");\n}\nfunction isNonEmpty(as) {\n return as.length > 0;\n}\n/**\n * @internal\n */\nexports.emptyTags = {};\nfunction intersect(a, b) {\n var r = [];\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var v = a_1[_i];\n if (b.indexOf(v) !== -1) {\n r.push(v);\n }\n }\n return r;\n}\nfunction mergeTags(a, b) {\n if (a === exports.emptyTags) {\n return b;\n }\n if (b === exports.emptyTags) {\n return a;\n }\n var r = Object.assign({}, a);\n for (var k in b) {\n if (hasOwnProperty.call(a, k)) {\n var intersection_1 = intersect(a[k], b[k]);\n if (isNonEmpty(intersection_1)) {\n r[k] = intersection_1;\n }\n else {\n r = exports.emptyTags;\n break;\n }\n }\n else {\n r[k] = b[k];\n }\n }\n return r;\n}\nfunction intersectTags(a, b) {\n if (a === exports.emptyTags || b === exports.emptyTags) {\n return exports.emptyTags;\n }\n var r = exports.emptyTags;\n for (var k in a) {\n if (hasOwnProperty.call(b, k)) {\n var intersection_2 = intersect(a[k], b[k]);\n if (intersection_2.length === 0) {\n if (r === exports.emptyTags) {\n r = {};\n }\n r[k] = a[k].concat(b[k]);\n }\n }\n }\n return r;\n}\n// tslint:disable-next-line: deprecation\nfunction isAnyC(codec) {\n return codec._tag === 'AnyType';\n}\nfunction isLiteralC(codec) {\n return codec._tag === 'LiteralType';\n}\nfunction isKeyofC(codec) {\n return codec._tag === 'KeyofType';\n}\nfunction isTypeC(codec) {\n return codec._tag === 'InterfaceType';\n}\nfunction isPartialC(codec) {\n return codec._tag === 'PartialType';\n}\n// tslint:disable-next-line: deprecation\nfunction isStrictC(codec) {\n return codec._tag === 'StrictType';\n}\nfunction isExactC(codec) {\n return codec._tag === 'ExactType';\n}\n// tslint:disable-next-line: deprecation\nfunction isRefinementC(codec) {\n return codec._tag === 'RefinementType';\n}\nfunction isIntersectionC(codec) {\n return codec._tag === 'IntersectionType';\n}\nfunction isUnionC(codec) {\n return codec._tag === 'UnionType';\n}\nfunction isRecursiveC(codec) {\n return codec._tag === 'RecursiveType';\n}\nvar lazyCodecs = [];\n/**\n * @internal\n */\nfunction getTags(codec) {\n if (lazyCodecs.indexOf(codec) !== -1) {\n return exports.emptyTags;\n }\n if (isTypeC(codec) || isStrictC(codec)) {\n var index = exports.emptyTags;\n // tslint:disable-next-line: forin\n for (var k in codec.props) {\n var prop = codec.props[k];\n if (isLiteralC(prop)) {\n if (index === exports.emptyTags) {\n index = {};\n }\n index[k] = [prop.value];\n }\n }\n return index;\n }\n else if (isExactC(codec) || isRefinementC(codec)) {\n return getTags(codec.type);\n }\n else if (isIntersectionC(codec)) {\n return codec.types.reduce(function (tags, codec) { return mergeTags(tags, getTags(codec)); }, exports.emptyTags);\n }\n else if (isUnionC(codec)) {\n return codec.types.slice(1).reduce(function (tags, codec) { return intersectTags(tags, getTags(codec)); }, getTags(codec.types[0]));\n }\n else if (isRecursiveC(codec)) {\n lazyCodecs.push(codec);\n var tags = getTags(codec.type);\n lazyCodecs.pop();\n return tags;\n }\n return exports.emptyTags;\n}\nexports.getTags = getTags;\n/**\n * @internal\n */\nfunction getIndex(codecs) {\n var tags = getTags(codecs[0]);\n var keys = Object.keys(tags);\n var len = codecs.length;\n var _loop_1 = function (k) {\n var all = tags[k].slice();\n var index = [tags[k]];\n for (var i = 1; i < len; i++) {\n var codec = codecs[i];\n var ctags = getTags(codec);\n var values = ctags[k];\n // tslint:disable-next-line: strict-type-predicates\n if (values === undefined) {\n return \"continue-keys\";\n }\n else {\n if (values.some(function (v) { return all.indexOf(v) !== -1; })) {\n return \"continue-keys\";\n }\n else {\n all.push.apply(all, values);\n index.push(values);\n }\n }\n }\n return { value: [k, index] };\n };\n keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var state_1 = _loop_1(k);\n if (typeof state_1 === \"object\")\n return state_1.value;\n switch (state_1) {\n case \"continue-keys\": continue keys;\n }\n }\n return undefined;\n}\nexports.getIndex = getIndex;\n// -------------------------------------------------------------------------------------\n// primitives\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar NullType = /** @class */ (function (_super) {\n __extends(NullType, _super);\n function NullType() {\n var _this = _super.call(this, 'null', function (u) { return u === null; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NullType';\n return _this;\n }\n return NullType;\n}(Type));\nexports.NullType = NullType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.nullType = new NullType();\nexports.null = exports.nullType;\n/**\n * @since 1.0.0\n */\nvar UndefinedType = /** @class */ (function (_super) {\n __extends(UndefinedType, _super);\n function UndefinedType() {\n var _this = _super.call(this, 'undefined', function (u) { return u === void 0; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UndefinedType';\n return _this;\n }\n return UndefinedType;\n}(Type));\nexports.UndefinedType = UndefinedType;\nvar undefinedType = new UndefinedType();\nexports.undefined = undefinedType;\n/**\n * @since 1.2.0\n */\nvar VoidType = /** @class */ (function (_super) {\n __extends(VoidType, _super);\n function VoidType() {\n var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'VoidType';\n return _this;\n }\n return VoidType;\n}(Type));\nexports.VoidType = VoidType;\n/**\n * @category primitives\n * @since 1.2.0\n */\nexports.voidType = new VoidType();\nexports.void = exports.voidType;\n/**\n * @since 1.5.0\n */\nvar UnknownType = /** @class */ (function (_super) {\n __extends(UnknownType, _super);\n function UnknownType() {\n var _this = _super.call(this, 'unknown', function (_) { return true; }, exports.success, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnknownType';\n return _this;\n }\n return UnknownType;\n}(Type));\nexports.UnknownType = UnknownType;\n/**\n * @category primitives\n * @since 1.5.0\n */\nexports.unknown = new UnknownType();\n/**\n * @since 1.0.0\n */\nvar StringType = /** @class */ (function (_super) {\n __extends(StringType, _super);\n function StringType() {\n var _this = _super.call(this, 'string', function (u) { return typeof u === 'string'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StringType';\n return _this;\n }\n return StringType;\n}(Type));\nexports.StringType = StringType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.string = new StringType();\n/**\n * @since 1.0.0\n */\nvar NumberType = /** @class */ (function (_super) {\n __extends(NumberType, _super);\n function NumberType() {\n var _this = _super.call(this, 'number', function (u) { return typeof u === 'number'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NumberType';\n return _this;\n }\n return NumberType;\n}(Type));\nexports.NumberType = NumberType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.number = new NumberType();\n/**\n * @since 2.1.0\n */\nvar BigIntType = /** @class */ (function (_super) {\n __extends(BigIntType, _super);\n function BigIntType() {\n var _this = _super.call(this, 'bigint', \n // tslint:disable-next-line: valid-typeof\n function (u) { return typeof u === 'bigint'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BigIntType';\n return _this;\n }\n return BigIntType;\n}(Type));\nexports.BigIntType = BigIntType;\n/**\n * @category primitives\n * @since 2.1.0\n */\nexports.bigint = new BigIntType();\n/**\n * @since 1.0.0\n */\nvar BooleanType = /** @class */ (function (_super) {\n __extends(BooleanType, _super);\n function BooleanType() {\n var _this = _super.call(this, 'boolean', function (u) { return typeof u === 'boolean'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BooleanType';\n return _this;\n }\n return BooleanType;\n}(Type));\nexports.BooleanType = BooleanType;\n/**\n * @category primitives\n * @since 1.0.0\n */\nexports.boolean = new BooleanType();\n/**\n * @since 1.0.0\n */\nvar AnyArrayType = /** @class */ (function (_super) {\n __extends(AnyArrayType, _super);\n function AnyArrayType() {\n var _this = _super.call(this, 'UnknownArray', Array.isArray, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyArrayType';\n return _this;\n }\n return AnyArrayType;\n}(Type));\nexports.AnyArrayType = AnyArrayType;\n/**\n * @category primitives\n * @since 1.7.1\n */\nexports.UnknownArray = new AnyArrayType();\nexports.Array = exports.UnknownArray;\n/**\n * @since 1.0.0\n */\nvar AnyDictionaryType = /** @class */ (function (_super) {\n __extends(AnyDictionaryType, _super);\n function AnyDictionaryType() {\n var _this = _super.call(this, 'UnknownRecord', function (u) { return u !== null && typeof u === 'object' && !Array.isArray(u); }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyDictionaryType';\n return _this;\n }\n return AnyDictionaryType;\n}(Type));\nexports.AnyDictionaryType = AnyDictionaryType;\n/**\n * @category primitives\n * @since 1.7.1\n */\nexports.UnknownRecord = new AnyDictionaryType();\n/**\n * @since 1.0.0\n */\nvar LiteralType = /** @class */ (function (_super) {\n __extends(LiteralType, _super);\n function LiteralType(name, is, validate, encode, value) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.value = value;\n /**\n * @since 1.0.0\n */\n _this._tag = 'LiteralType';\n return _this;\n }\n return LiteralType;\n}(Type));\nexports.LiteralType = LiteralType;\n/**\n * @category constructors\n * @since 1.0.0\n */\nfunction literal(value, name) {\n if (name === void 0) { name = JSON.stringify(value); }\n var is = function (u) { return u === value; };\n return new LiteralType(name, is, function (u, c) { return (is(u) ? (0, exports.success)(value) : (0, exports.failure)(u, c)); }, exports.identity, value);\n}\nexports.literal = literal;\n/**\n * @since 1.0.0\n */\nvar KeyofType = /** @class */ (function (_super) {\n __extends(KeyofType, _super);\n function KeyofType(name, is, validate, encode, keys) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.keys = keys;\n /**\n * @since 1.0.0\n */\n _this._tag = 'KeyofType';\n return _this;\n }\n return KeyofType;\n}(Type));\nexports.KeyofType = KeyofType;\n/**\n * @category constructors\n * @since 1.0.0\n */\nfunction keyof(keys, name) {\n if (name === void 0) { name = Object.keys(keys)\n .map(function (k) { return JSON.stringify(k); })\n .join(' | '); }\n var is = function (u) { return exports.string.is(u) && hasOwnProperty.call(keys, u); };\n return new KeyofType(name, is, function (u, c) { return (is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity, keys);\n}\nexports.keyof = keyof;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar RefinementType = /** @class */ (function (_super) {\n __extends(RefinementType, _super);\n function RefinementType(name, is, validate, encode, type, predicate) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n _this.predicate = predicate;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RefinementType';\n return _this;\n }\n return RefinementType;\n}(Type));\nexports.RefinementType = RefinementType;\n/**\n * @category combinators\n * @since 1.8.1\n */\nfunction brand(codec, predicate, name) {\n // tslint:disable-next-line: deprecation\n return refinement(codec, predicate, name);\n}\nexports.brand = brand;\n/**\n * A branded codec representing an integer\n *\n * @category primitives\n * @since 1.8.1\n */\nexports.Int = brand(exports.number, function (n) { return Number.isInteger(n); }, 'Int');\n/**\n * @since 1.0.0\n */\nvar RecursiveType = /** @class */ (function (_super) {\n __extends(RecursiveType, _super);\n function RecursiveType(name, is, validate, encode, runDefinition) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.runDefinition = runDefinition;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RecursiveType';\n return _this;\n }\n return RecursiveType;\n}(Type));\nexports.RecursiveType = RecursiveType;\nObject.defineProperty(RecursiveType.prototype, 'type', {\n get: function () {\n return this.runDefinition();\n },\n enumerable: true,\n configurable: true\n});\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction recursion(name, definition) {\n var cache;\n var runDefinition = function () {\n if (!cache) {\n cache = definition(Self);\n cache.name = name;\n }\n return cache;\n };\n var Self = new RecursiveType(name, function (u) { return runDefinition().is(u); }, function (u, c) { return runDefinition().validate(u, c); }, function (a) { return runDefinition().encode(a); }, runDefinition);\n return Self;\n}\nexports.recursion = recursion;\n/**\n * @since 1.0.0\n */\nvar ArrayType = /** @class */ (function (_super) {\n __extends(ArrayType, _super);\n function ArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ArrayType';\n return _this;\n }\n return ArrayType;\n}(Type));\nexports.ArrayType = ArrayType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction array(item, name) {\n if (name === void 0) { name = \"Array<\".concat(item.name, \">\"); }\n return new ArrayType(name, function (u) { return exports.UnknownArray.is(u) && u.every(item.is); }, function (u, c) {\n var e = exports.UnknownArray.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var us = e.right;\n var len = us.length;\n var as = us;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var ui = us[i];\n var result = item.validate(ui, appendContext(c, String(i), item, ui));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n var ai = result.right;\n if (ai !== ui) {\n if (as === us) {\n as = us.slice();\n }\n as[i] = ai;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(as);\n }, item.encode === exports.identity ? exports.identity : function (a) { return a.map(item.encode); }, item);\n}\nexports.array = array;\n/**\n * @since 1.0.0\n */\nvar InterfaceType = /** @class */ (function (_super) {\n __extends(InterfaceType, _super);\n function InterfaceType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'InterfaceType';\n return _this;\n }\n return InterfaceType;\n}(Type));\nexports.InterfaceType = InterfaceType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction type(props, name) {\n if (name === void 0) { name = getInterfaceTypeName(props); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new InterfaceType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if ((uk === undefined && !hasOwnProperty.call(u, k)) || !types[i].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_1 = types[i];\n var result = type_1.validate(ak, appendContext(c, k, type_1, ak));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n var vak = result.right;\n if (vak !== ak || (vak === undefined && !hasOwnProperty.call(a, k))) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(a);\n }, useIdentity(types)\n ? exports.identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var encode = types[i].encode;\n if (encode !== exports.identity) {\n s[k] = encode(a[k]);\n }\n }\n return s;\n }, props);\n}\nexports.type = type;\nexports.interface = type;\n/**\n * @since 1.0.0\n */\nvar PartialType = /** @class */ (function (_super) {\n __extends(PartialType, _super);\n function PartialType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'PartialType';\n return _this;\n }\n return PartialType;\n}(Type));\nexports.PartialType = PartialType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction partial(props, name) {\n if (name === void 0) { name = getPartialTypeName(getInterfaceTypeName(props)); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new PartialType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if (uk !== undefined && !props[k].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_2 = props[k];\n var result = type_2.validate(ak, appendContext(c, k, type_2, ak));\n if ((0, Either_1.isLeft)(result)) {\n if (ak !== undefined) {\n pushAll(errors, result.left);\n }\n }\n else {\n var vak = result.right;\n if (vak !== ak) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(a);\n }, useIdentity(types)\n ? exports.identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n if (ak !== undefined) {\n s[k] = types[i].encode(ak);\n }\n }\n return s;\n }, props);\n}\nexports.partial = partial;\n/**\n * @since 1.0.0\n */\nvar DictionaryType = /** @class */ (function (_super) {\n __extends(DictionaryType, _super);\n function DictionaryType(name, is, validate, encode, domain, codomain) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.domain = domain;\n _this.codomain = codomain;\n /**\n * @since 1.0.0\n */\n _this._tag = 'DictionaryType';\n return _this;\n }\n return DictionaryType;\n}(Type));\nexports.DictionaryType = DictionaryType;\n/**\n * @category combinators\n * @since 1.7.1\n */\nfunction record(domain, codomain, name) {\n var keys = getDomainKeys(domain);\n return keys\n ? enumerableRecord(Object.keys(keys), domain, codomain, name)\n : nonEnumerableRecord(domain, codomain, name);\n}\nexports.record = record;\n/**\n * @since 1.0.0\n */\nvar UnionType = /** @class */ (function (_super) {\n __extends(UnionType, _super);\n function UnionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnionType';\n return _this;\n }\n return UnionType;\n}(Type));\nexports.UnionType = UnionType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction union(codecs, name) {\n if (name === void 0) { name = getUnionName(codecs); }\n var index = getIndex(codecs);\n if (index !== undefined && codecs.length > 0) {\n var tag_1 = index[0], groups_1 = index[1];\n var len_1 = groups_1.length;\n var find_1 = function (value) {\n for (var i = 0; i < len_1; i++) {\n if (groups_1[i].indexOf(value) !== -1) {\n return i;\n }\n }\n return undefined;\n };\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n var i = find_1(u[tag_1]);\n return i !== undefined ? codecs[i].is(u) : false;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var r = e.right;\n var i = find_1(r[tag_1]);\n if (i === undefined) {\n return (0, exports.failure)(u, c);\n }\n var codec = codecs[i];\n return codec.validate(r, appendContext(c, String(i), codec, r));\n }, useIdentity(codecs)\n ? exports.identity\n : function (a) {\n var i = find_1(a[tag_1]);\n if (i === undefined) {\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union codec \".concat(name));\n }\n else {\n return codecs[i].encode(a);\n }\n }, codecs, tag_1);\n }\n else {\n return new UnionType(name, function (u) { return codecs.some(function (type) { return type.is(u); }); }, function (u, c) {\n var errors = [];\n for (var i = 0; i < codecs.length; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n return (0, exports.success)(result.right);\n }\n }\n return (0, exports.failures)(errors);\n }, useIdentity(codecs)\n ? exports.identity\n : function (a) {\n for (var _i = 0, codecs_1 = codecs; _i < codecs_1.length; _i++) {\n var codec = codecs_1[_i];\n if (codec.is(a)) {\n return codec.encode(a);\n }\n }\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union type \".concat(name));\n }, codecs);\n }\n}\nexports.union = union;\n/**\n * @since 1.0.0\n */\nvar IntersectionType = /** @class */ (function (_super) {\n __extends(IntersectionType, _super);\n function IntersectionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'IntersectionType';\n return _this;\n }\n return IntersectionType;\n}(Type));\nexports.IntersectionType = IntersectionType;\nfunction intersection(codecs, name) {\n if (name === void 0) { name = \"(\".concat(codecs.map(function (type) { return type.name; }).join(' & '), \")\"); }\n var len = codecs.length;\n return new IntersectionType(name, function (u) { return codecs.every(function (type) { return type.is(u); }); }, codecs.length === 0\n ? exports.success\n : function (u, c) {\n var us = [];\n var errors = [];\n for (var i = 0; i < len; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n us.push(result.right);\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(mergeAll(u, us));\n }, codecs.length === 0\n ? exports.identity\n : function (a) {\n return mergeAll(a, codecs.map(function (codec) { return codec.encode(a); }));\n }, codecs);\n}\nexports.intersection = intersection;\n/**\n * @since 1.0.0\n */\nvar TupleType = /** @class */ (function (_super) {\n __extends(TupleType, _super);\n function TupleType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'TupleType';\n return _this;\n }\n return TupleType;\n}(Type));\nexports.TupleType = TupleType;\nfunction tuple(codecs, name) {\n if (name === void 0) { name = \"[\".concat(codecs.map(function (type) { return type.name; }).join(', '), \"]\"); }\n var len = codecs.length;\n return new TupleType(name, function (u) { return exports.UnknownArray.is(u) && u.length === len && codecs.every(function (type, i) { return type.is(u[i]); }); }, function (u, c) {\n var e = exports.UnknownArray.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var us = e.right;\n var as = us.length > len ? us.slice(0, len) : us; // strip additional components\n var errors = [];\n for (var i = 0; i < len; i++) {\n var a = us[i];\n var type_3 = codecs[i];\n var result = type_3.validate(a, appendContext(c, String(i), type_3, a));\n if ((0, Either_1.isLeft)(result)) {\n pushAll(errors, result.left);\n }\n else {\n var va = result.right;\n if (va !== a) {\n /* istanbul ignore next */\n if (as === us) {\n as = us.slice();\n }\n as[i] = va;\n }\n }\n }\n return errors.length > 0 ? (0, exports.failures)(errors) : (0, exports.success)(as);\n }, useIdentity(codecs) ? exports.identity : function (a) { return codecs.map(function (type, i) { return type.encode(a[i]); }); }, codecs);\n}\nexports.tuple = tuple;\n/**\n * @since 1.0.0\n */\nvar ReadonlyType = /** @class */ (function (_super) {\n __extends(ReadonlyType, _super);\n function ReadonlyType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyType';\n return _this;\n }\n return ReadonlyType;\n}(Type));\nexports.ReadonlyType = ReadonlyType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction readonly(codec, name) {\n if (name === void 0) { name = \"Readonly<\".concat(codec.name, \">\"); }\n return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);\n}\nexports.readonly = readonly;\n/**\n * @since 1.0.0\n */\nvar ReadonlyArrayType = /** @class */ (function (_super) {\n __extends(ReadonlyArrayType, _super);\n function ReadonlyArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyArrayType';\n return _this;\n }\n return ReadonlyArrayType;\n}(Type));\nexports.ReadonlyArrayType = ReadonlyArrayType;\n/**\n * @category combinators\n * @since 1.0.0\n */\nfunction readonlyArray(item, name) {\n if (name === void 0) { name = \"ReadonlyArray<\".concat(item.name, \">\"); }\n var codec = array(item);\n return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);\n}\nexports.readonlyArray = readonlyArray;\n/**\n * Strips additional properties, equivalent to `exact(type(props))`.\n *\n * @category combinators\n * @since 1.0.0\n */\nvar strict = function (props, name) { return exact(type(props), name); };\nexports.strict = strict;\n/**\n * @since 1.1.0\n */\nvar ExactType = /** @class */ (function (_super) {\n __extends(ExactType, _super);\n function ExactType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ExactType';\n return _this;\n }\n return ExactType;\n}(Type));\nexports.ExactType = ExactType;\n/**\n * Strips additional properties.\n *\n * @category combinators\n * @since 1.1.0\n */\nfunction exact(codec, name) {\n if (name === void 0) { name = getExactTypeName(codec); }\n var props = getProps(codec);\n return new ExactType(name, codec.is, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var ce = codec.validate(u, c);\n if ((0, Either_1.isLeft)(ce)) {\n return ce;\n }\n return (0, Either_1.right)(stripKeys(ce.right, props));\n }, function (a) { return codec.encode(stripKeys(a, props)); }, codec);\n}\nexports.exact = exact;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar FunctionType = /** @class */ (function (_super) {\n __extends(FunctionType, _super);\n function FunctionType() {\n var _this = _super.call(this, 'Function', \n // tslint:disable-next-line:strict-type-predicates\n function (u) { return typeof u === 'function'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'FunctionType';\n return _this;\n }\n return FunctionType;\n}(Type));\nexports.FunctionType = FunctionType;\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.Function = new FunctionType();\n/**\n * @since 1.3.0\n * @deprecated\n */\nvar TaggedUnionType = /** @class */ (function (_super) {\n __extends(TaggedUnionType, _super);\n function TaggedUnionType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, codecs, tag) {\n var _this = _super.call(this, name, is, validate, encode, codecs) /* istanbul ignore next */ // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455\n || this;\n _this.tag = tag;\n return _this;\n }\n return TaggedUnionType;\n}(UnionType));\nexports.TaggedUnionType = TaggedUnionType;\n/**\n * Use `union` instead.\n *\n * @category combinators\n * @since 1.3.0\n * @deprecated\n */\nvar taggedUnion = function (tag, codecs, name\n// tslint:disable-next-line: deprecation\n) {\n if (name === void 0) { name = getUnionName(codecs); }\n var U = union(codecs, name);\n // tslint:disable-next-line: deprecation\n if (U instanceof TaggedUnionType) {\n return U;\n }\n else {\n console.warn(\"[io-ts] Cannot build a tagged union for \".concat(name, \", returning a de-optimized union\"));\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, U.is, U.validate, U.encode, codecs, tag);\n }\n};\nexports.taggedUnion = taggedUnion;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar getValidationError /* istanbul ignore next */ = function (value, context) { return ({\n value: value,\n context: context\n}); };\nexports.getValidationError /* istanbul ignore next */ = getValidationError;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar getDefaultContext /* istanbul ignore next */ = function (decoder) { return [\n { key: '', type: decoder }\n]; };\nexports.getDefaultContext /* istanbul ignore next */ = getDefaultContext;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar NeverType = /** @class */ (function (_super) {\n __extends(NeverType, _super);\n function NeverType() {\n var _this = _super.call(this, 'never', function (_) { return false; }, function (u, c) { return (0, exports.failure)(u, c); }, \n /* istanbul ignore next */\n function () {\n throw new Error('cannot encode never');\n }) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NeverType';\n return _this;\n }\n return NeverType;\n}(Type));\nexports.NeverType = NeverType;\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.never = new NeverType();\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar AnyType = /** @class */ (function (_super) {\n __extends(AnyType, _super);\n function AnyType() {\n var _this = _super.call(this, 'any', function (_) { return true; }, exports.success, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyType';\n return _this;\n }\n return AnyType;\n}(Type));\nexports.AnyType = AnyType;\n/**\n * Use `unknown` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.any = new AnyType();\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\nexports.Dictionary = exports.UnknownRecord;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar ObjectType = /** @class */ (function (_super) {\n __extends(ObjectType, _super);\n function ObjectType() {\n var _this = _super.call(this, 'object', function (u) { return u !== null && typeof u === 'object'; }, function (u, c) { return (_this.is(u) ? (0, exports.success)(u) : (0, exports.failure)(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ObjectType';\n return _this;\n }\n return ObjectType;\n}(Type));\nexports.ObjectType = ObjectType;\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.object = new ObjectType();\n/**\n * Use `brand` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\nfunction refinement(codec, predicate, name) {\n if (name === void 0) { name = \"(\".concat(codec.name, \" | \").concat(getFunctionName(predicate), \")\"); }\n return new RefinementType(name, function (u) { return codec.is(u) && predicate(u); }, function (i, c) {\n var e = codec.validate(i, c);\n if ((0, Either_1.isLeft)(e)) {\n return e;\n }\n var a = e.right;\n return predicate(a) ? (0, exports.success)(a) : (0, exports.failure)(a, c);\n }, codec.encode, codec, predicate);\n}\nexports.refinement = refinement;\n/**\n * Use `Int` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.Integer = refinement(exports.number, Number.isInteger, 'Integer');\n/**\n * Use `record` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\nexports.dictionary = record;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar StrictType = /** @class */ (function (_super) {\n __extends(StrictType, _super);\n function StrictType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StrictType';\n return _this;\n }\n return StrictType;\n}(Type));\nexports.StrictType = StrictType;\n/**\n * Drops the codec \"kind\".\n *\n * @category combinators\n * @since 1.1.0\n * @deprecated\n */\nfunction clean(codec) {\n return codec;\n}\nexports.clean = clean;\nfunction alias(codec) {\n return function () { return codec; };\n}\nexports.alias = alias;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.eqDate = exports.eqNumber = exports.eqString = exports.eqBoolean = exports.eq = exports.strictEqual = exports.getStructEq = exports.getTupleEq = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.eqStrict = exports.URI = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0;\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromEquals = function (equals) { return ({\n equals: function (x, y) { return x === y || equals(x, y); }\n}); };\nexports.fromEquals = fromEquals;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar struct = function (eqs) {\n return (0, exports.fromEquals)(function (first, second) {\n for (var key in eqs) {\n if (!eqs[key].equals(first[key], second[key])) {\n return false;\n }\n }\n return true;\n });\n};\nexports.struct = struct;\n/**\n * Given a tuple of `Eq`s returns a `Eq` for the tuple\n *\n * @example\n * import { tuple } from 'fp-ts/Eq'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import * as B from 'fp-ts/boolean'\n *\n * const E = tuple(S.Eq, N.Eq, B.Eq)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true)\n * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var eqs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n eqs[_i] = arguments[_i];\n }\n return (0, exports.fromEquals)(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); });\n};\nexports.tuple = tuple;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for equality (meaning we have an `Eq`)\n *\n * For example, given the following `User` type, we want to construct an `Eq` that just looks at the `key` field\n * for each user (since it's known to be unique).\n *\n * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq`) and we know how to go from `User -> UUID`,\n * using `contramap` we can do this\n *\n * @example\n * import { contramap, Eq } from 'fp-ts/Eq'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/string'\n *\n * type UUID = string\n *\n * interface User {\n * readonly key: UUID\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const eqUUID: Eq = S.Eq\n *\n * const eqUserByKey: Eq = pipe(\n * eqUUID,\n * contramap((user) => user.key)\n * )\n *\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k2', firstName: 'a1', lastName: 'b1' }\n * ),\n * false\n * )\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k1', firstName: 'a2', lastName: 'b1' }\n * ),\n * true\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromEquals)(function (x, y) { return fa.equals(f(x), f(y)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Eq';\n/**\n * @category instances\n * @since 2.5.0\n */\nexports.eqStrict = {\n equals: function (a, b) { return a === b; }\n};\nvar empty = {\n equals: function () { return true; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (x, y) { return (0, exports.fromEquals)(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @category instances\n * @since 2.6.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleEq = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructEq = exports.struct;\n/**\n * Use [`eqStrict`](#eqstrict) instead\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.strictEqual = exports.eqStrict.equals;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq`\n * (where `E` is from `import E from 'fp-ts/Eq'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eq = exports.Contravariant;\n/**\n * Use [`Eq`](./boolean.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqBoolean = exports.eqStrict;\n/**\n * Use [`Eq`](./string.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqString = exports.eqStrict;\n/**\n * Use [`Eq`](./number.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqNumber = exports.eqStrict;\n/**\n * Use [`Eq`](./Date.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqDate = {\n equals: function (first, second) { return first.valueOf() === second.valueOf(); }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ordDate = exports.ordNumber = exports.ordString = exports.ordBoolean = exports.ord = exports.getDualOrd = exports.getTupleOrd = exports.between = exports.clamp = exports.max = exports.min = exports.geq = exports.leq = exports.gt = exports.lt = exports.equals = exports.trivial = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.URI = exports.contramap = exports.reverse = exports.tuple = exports.fromCompare = exports.equalsDefault = void 0;\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// defaults\n// -------------------------------------------------------------------------------------\n/**\n * @category defaults\n * @since 2.10.0\n */\nvar equalsDefault = function (compare) {\n return function (first, second) {\n return first === second || compare(first, second) === 0;\n };\n};\nexports.equalsDefault = equalsDefault;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromCompare = function (compare) { return ({\n equals: (0, exports.equalsDefault)(compare),\n compare: function (first, second) { return (first === second ? 0 : compare(first, second)); }\n}); };\nexports.fromCompare = fromCompare;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Ord'\n * import * as B from 'fp-ts/boolean'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n *\n * const O = tuple(S.Ord, N.Ord, B.Ord)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var ords = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n return (0, exports.fromCompare)(function (first, second) {\n var i = 0;\n for (; i < ords.length - 1; i++) {\n var r = ords[i].compare(first[i], second[i]);\n if (r !== 0) {\n return r;\n }\n }\n return ords[i].compare(first[i], second[i]);\n });\n};\nexports.tuple = tuple;\n/**\n * @since 2.10.0\n */\nvar reverse = function (O) { return (0, exports.fromCompare)(function (first, second) { return O.compare(second, first); }); };\nexports.reverse = reverse;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for ordering (meaning we have an `Ord`)\n *\n * For example, given the following `User` type, there are lots of possible choices for `X`,\n * but let's say we want to sort a list of users by `lastName`.\n *\n * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord`) and we know how to go from `User -> string`,\n * using `contramap` we can do this\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import { contramap, Ord } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const ordLastName: Ord = S.Ord\n *\n * const ordByLastName: Ord = pipe(\n * ordLastName,\n * contramap((user) => user.lastName)\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordByLastName)([\n * { firstName: 'a', lastName: 'd' },\n * { firstName: 'c', lastName: 'b' }\n * ]),\n * [\n * { firstName: 'c', lastName: 'b' },\n * { firstName: 'a', lastName: 'd' }\n * ]\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromCompare)(function (first, second) { return fa.compare(f(first), f(second)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Ord';\n/**\n * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings.\n *\n * For example the following snippet builds an `Ord` for a type `User` which\n * sorts by `created` date descending, and **then** `lastName`\n *\n * @example\n * import * as D from 'fp-ts/Date'\n * import { pipe } from 'fp-ts/function'\n * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly id: string\n * readonly lastName: string\n * readonly created: Date\n * }\n *\n * const ordByLastName: Ord = pipe(\n * S.Ord,\n * contramap((user) => user.lastName)\n * )\n *\n * const ordByCreated: Ord = pipe(\n * D.Ord,\n * contramap((user) => user.created)\n * )\n *\n * const ordUserByCreatedDescThenLastName = getSemigroup().concat(\n * reverse(ordByCreated),\n * ordByLastName\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordUserByCreatedDescThenLastName)([\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }\n * ]),\n * [\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }\n * ]\n * )\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) {\n return (0, exports.fromCompare)(function (a, b) {\n var ox = first.compare(a, b);\n return ox !== 0 ? ox : second.compare(a, b);\n });\n }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` such that:\n *\n * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2`\n * - its `empty` value is an `Ord` that always considers compared elements equal\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import { contramap, reverse, getMonoid } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as B from 'fp-ts/boolean'\n * import { pipe } from 'fp-ts/function'\n * import { concatAll } from 'fp-ts/Monoid'\n * import * as N from 'fp-ts/number'\n *\n * interface User {\n * readonly id: number\n * readonly name: string\n * readonly age: number\n * readonly rememberMe: boolean\n * }\n *\n * const byName = pipe(\n * S.Ord,\n * contramap((p: User) => p.name)\n * )\n *\n * const byAge = pipe(\n * N.Ord,\n * contramap((p: User) => p.age)\n * )\n *\n * const byRememberMe = pipe(\n * B.Ord,\n * contramap((p: User) => p.rememberMe)\n * )\n *\n * const M = getMonoid()\n *\n * const users: Array = [\n * { id: 1, name: 'Guido', age: 47, rememberMe: false },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true }\n * ]\n *\n * // sort by name, then by age, then by `rememberMe`\n * const O1 = concatAll(M)([byName, byAge, byRememberMe])\n * assert.deepStrictEqual(sort(O1)(users), [\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * // now `rememberMe = true` first, then by name, then by age\n * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge])\n * assert.deepStrictEqual(sort(O2)(users), [\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * @category instances\n * @since 2.4.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: (0, exports.fromCompare)(function () { return 0; })\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexports.trivial = {\n equals: function_1.constTrue,\n compare: /*#__PURE__*/ (0, function_1.constant)(0)\n};\n/**\n * @since 2.11.0\n */\nvar equals = function (O) {\n return function (second) {\n return function (first) {\n return first === second || O.compare(first, second) === 0;\n };\n };\n};\nexports.equals = equals;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 2.0.0\n */\nvar lt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === -1;\n };\n};\nexports.lt = lt;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar gt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === 1;\n };\n};\nexports.gt = gt;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 2.0.0\n */\nvar leq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== 1;\n };\n};\nexports.leq = leq;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar geq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== -1;\n };\n};\nexports.geq = geq;\n// TODO: curry in v3\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar min = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) < 1 ? first : second;\n };\n};\nexports.min = min;\n// TODO: curry in v3\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar max = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) > -1 ? first : second;\n };\n};\nexports.max = max;\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 2.0.0\n */\nvar clamp = function (O) {\n var minO = (0, exports.min)(O);\n var maxO = (0, exports.max)(O);\n return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; };\n};\nexports.clamp = clamp;\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 2.0.0\n */\nvar between = function (O) {\n var ltO = (0, exports.lt)(O);\n var gtO = (0, exports.gt)(O);\n return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; };\n};\nexports.between = between;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleOrd = exports.tuple;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualOrd = exports.reverse;\n/**\n * Use [`Contravariant`](#contravariant) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ord = exports.Contravariant;\n// default compare for primitive types\nfunction compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n}\nvar strictOrd = {\n equals: Eq_1.eqStrict.equals,\n compare: compare\n};\n/**\n * Use [`Ord`](./boolean.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordBoolean = strictOrd;\n/**\n * Use [`Ord`](./string.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordString = strictOrd;\n/**\n * Use [`Ord`](./number.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordNumber = strictOrd;\n/**\n * Use [`Ord`](./Date.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordDate = (0, function_1.pipe)(exports.ordNumber, \n/*#__PURE__*/\n(0, exports.contramap)(function (date) { return date.valueOf(); }));\n", "\"use strict\";\n/**\n * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A`\n *\n * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances.\n *\n * @since 2.0.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatAll = exports.endo = exports.filterSecond = exports.filterFirst = exports.reverse = void 0;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Magma`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse, concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(reverse(N.MagmaSub))(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), 2)\n *\n * @since 2.11.0\n */\nvar reverse = function (M) { return ({\n concat: function (first, second) { return M.concat(second, first); }\n}); };\nexports.reverse = reverse;\n/**\n * @since 2.11.0\n */\nvar filterFirst = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(first) ? M.concat(first, second) : second); }\n }); };\n};\nexports.filterFirst = filterFirst;\n/**\n * @since 2.11.0\n */\nvar filterSecond = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(second) ? M.concat(first, second) : first); }\n }); };\n};\nexports.filterSecond = filterSecond;\n/**\n * @since 2.11.0\n */\nvar endo = function (f) {\n return function (M) { return ({\n concat: function (first, second) { return M.concat(f(first), f(second)); }\n }); };\n};\nexports.endo = endo;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(N.MagmaSub)(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), -6)\n *\n * @since 2.11.0\n */\nvar concatAll = function (M) {\n return function (startWith) {\n return function (as) {\n return as.reduce(function (a, acc) { return M.concat(a, acc); }, startWith);\n };\n };\n};\nexports.concatAll = concatAll;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semigroupProduct = exports.semigroupSum = exports.semigroupString = exports.getFunctionSemigroup = exports.semigroupAny = exports.semigroupAll = exports.fold = exports.getIntercalateSemigroup = exports.getMeetSemigroup = exports.getJoinSemigroup = exports.getDualSemigroup = exports.getStructSemigroup = exports.getTupleSemigroup = exports.getFirstSemigroup = exports.getLastSemigroup = exports.getObjectSemigroup = exports.semigroupVoid = exports.concatAll = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0;\n/**\n * If a type `A` can form a `Semigroup` it has an **associative** binary operation.\n *\n * ```ts\n * interface Semigroup {\n * readonly concat: (x: A, y: A) => A\n * }\n * ```\n *\n * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`.\n *\n * ```ts\n * concat(x, concat(y, z)) = concat(concat(x, y), z)\n * ```\n *\n * A common example of a semigroup is the type `string` with the operation `+`.\n *\n * ```ts\n * import { Semigroup } from 'fp-ts/Semigroup'\n *\n * const semigroupString: Semigroup = {\n * concat: (x, y) => x + y\n * }\n *\n * const x = 'x'\n * const y = 'y'\n * const z = 'z'\n *\n * semigroupString.concat(x, y) // 'xy'\n *\n * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz'\n *\n * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz'\n * ```\n *\n * *Adapted from https://typelevel.org/cats*\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nvar M = __importStar(require(\"./Magma\"));\nvar Or = __importStar(require(\"./Ord\"));\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Get a semigroup where `concat` will return the minimum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.min(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 1)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar min = function (O) { return ({\n concat: Or.min(O)\n}); };\nexports.min = min;\n/**\n * Get a semigroup where `concat` will return the maximum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.max(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 2)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar max = function (O) { return ({\n concat: Or.max(O)\n}); };\nexports.max = max;\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar constant = function (a) { return ({\n concat: function () { return a; }\n}); };\nexports.constant = constant;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba')\n *\n * @since 2.10.0\n */\nexports.reverse = M.reverse;\n/**\n * Given a struct of semigroups returns a semigroup for the struct.\n *\n * @example\n * import { struct } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * interface Point {\n * readonly x: number\n * readonly y: number\n * }\n *\n * const S = struct({\n * x: N.SemigroupSum,\n * y: N.SemigroupSum\n * })\n *\n * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 })\n *\n * @since 2.10.0\n */\nvar struct = function (semigroups) { return ({\n concat: function (first, second) {\n var r = {};\n for (var k in semigroups) {\n if (_.has.call(semigroups, k)) {\n r[k] = semigroups[k].concat(first[k], second[k]);\n }\n }\n return r;\n }\n}); };\nexports.struct = struct;\n/**\n * Given a tuple of semigroups returns a semigroup for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Semigroup'\n * import * as B from 'fp-ts/boolean'\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/string'\n *\n * const S1 = tuple(S.Semigroup, N.SemigroupSum)\n * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll)\n * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var semigroups = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n semigroups[_i] = arguments[_i];\n }\n return ({\n concat: function (first, second) { return semigroups.map(function (s, i) { return s.concat(first[i], second[i]); }); }\n });\n};\nexports.tuple = tuple;\n/**\n * Between each pair of elements insert `middle`.\n *\n * @example\n * import { intercalate } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * const S1 = pipe(S.Semigroup, intercalate(' + '))\n *\n * assert.strictEqual(S1.concat('a', 'b'), 'a + b')\n *\n * @since 2.10.0\n */\nvar intercalate = function (middle) {\n return function (S) { return ({\n concat: function (x, y) { return S.concat(x, S.concat(middle, y)); }\n }); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * Always return the first argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.first().concat(1, 2), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nvar first = function () { return ({ concat: function_1.identity }); };\nexports.first = first;\n/**\n * Always return the last argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.last().concat(1, 2), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nvar last = function () { return ({ concat: function (_, y) { return y; } }); };\nexports.last = last;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * const sum = concatAll(N.SemigroupSum)(0)\n *\n * assert.deepStrictEqual(sum([1, 2, 3]), 6)\n * assert.deepStrictEqual(sum([]), 0)\n *\n * @since 2.10.0\n */\nexports.concatAll = M.concatAll;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `void` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupVoid = (0, exports.constant)(undefined);\n/**\n * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getObjectSemigroup = function () { return ({\n concat: function (first, second) { return Object.assign({}, first, second); }\n}); };\nexports.getObjectSemigroup = getObjectSemigroup;\n/**\n * Use [`last`](#last) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getLastSemigroup = exports.last;\n/**\n * Use [`first`](#first) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFirstSemigroup = exports.first;\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleSemigroup = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructSemigroup = exports.struct;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualSemigroup = exports.reverse;\n/**\n * Use [`max`](#max) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getJoinSemigroup = exports.max;\n/**\n * Use [`min`](#min) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getMeetSemigroup = exports.min;\n/**\n * Use [`intercalate`](#intercalate) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.getIntercalateSemigroup = exports.intercalate;\nfunction fold(S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (startWith, as) { return (as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as)); };\n}\nexports.fold = fold;\n/**\n * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAll = {\n concat: function (x, y) { return x && y; }\n};\n/**\n * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAny = {\n concat: function (x, y) { return x || y; }\n};\n/**\n * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFunctionSemigroup = function_1.getSemigroup;\n/**\n * Use [`Semigroup`](./string.ts.html#Semigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupString = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupSum = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupProduct = {\n concat: function (x, y) { return x * y; }\n};\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reduceRight = exports.foldMap = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.chain = exports.ap = exports.alt = exports.altW = exports.of = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.modifyAt = exports.updateAt = exports.sort = exports.groupBy = exports.group = exports.reverse = exports.concat = exports.concatW = exports.fromArray = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromReadonlyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = exports.empty = void 0;\nexports.filter = exports.groupSort = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = void 0;\nexports.readonlyNonEmptyArray = exports.fold = exports.prependToAll = exports.insertAt = exports.snoc = exports.cons = exports.unsnoc = exports.uncons = exports.filterWithIndex = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar Se = __importStar(require(\"./Semigroup\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nexports.empty = _.emptyReadonlyArray;\n/**\n * @internal\n */\nexports.isNonEmpty = _.isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n if (as[i] === a) {\n return as;\n }\n else {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs[i] = a;\n return xs;\n }\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return as;\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = RNEA.sortBy([byName, byAge])\n *\n * const persons: RNEA.ReadonlyNonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return function_1.identity;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `ReadonlyNonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return as;\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty.\n *\n * @category conversions\n * @since 2.5.0\n */\nvar fromReadonlyArray = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(as) : _.none;\n};\nexports.fromReadonlyArray = fromReadonlyArray;\n/**\n * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return (0, exports.fromReadonlyArray)(as.slice()); };\nexports.fromArray = fromArray;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nexports.concatW = concatW;\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\nexports.concat = concat;\n/**\n * @since 2.5.0\n */\nvar reverse = function (as) {\n return as.length === 1 ? as : __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true);\n};\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return exports.empty;\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\nexports.group = group;\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.5.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length === 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : as;\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = _.fromReadonlyNonEmptyArray(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for \"chopping\" up the input\n * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a\n * value and the tail of the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [as, exports.empty] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = _.singleton;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray,\n * RNEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (as) { return (0, exports.chain)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); }); };\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.chain((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nvar chain = function (f) { return (0, exports.chainWithIndex)(function (_, a) { return f(a); }); };\nexports.chain = chain;\n/**\n * @since 2.5.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = \n/*#__PURE__*/ (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = \n/*#__PURE__*/ (0, exports.chain)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) {\n return (0, exports.mapWithIndex)(function (_, a) { return f(a); });\n};\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a) { return S.concat(s, f(a)); }, f(as[0]));\n };\n };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) {\n return function (as) {\n return as.reduce(function (b, a, i) { return f(i, b, a); }, b);\n };\n};\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a, i) { return S.concat(s, f(i + 1, a)); }, f(0, as[0]));\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) {\n return function (as) {\n return as.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n };\n};\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function_1.SK); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category Comonad\n * @since 2.6.3\n */\nexports.extract = _.head;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyNonEmptyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray`\n *\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.5.0\n */\nexports.head = exports.extract;\n/**\n * @since 2.5.0\n */\nexports.tail = _.tail;\n/**\n * @since 2.5.0\n */\nvar last = function (as) { return as[as.length - 1]; };\nexports.last = last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.5.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.5.0\n */\nvar min = function (O) {\n var S = Se.min(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.min = min;\n/**\n * @since 2.5.0\n */\nvar max = function (O) {\n var S = Se.max(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.max = max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (middle) { return (0, function_1.flow)((0, exports.intersperse)(middle), concatAllS); };\n};\nexports.intercalate = intercalate;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : exports.empty); };\n}\nexports.groupSort = groupSort;\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\nexports.filter = filter;\n/**\n * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromReadonlyArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\nexports.cons = cons;\n/**\n * Use [`append`](./ReadonlyArray.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, concat([end])); };\nexports.snoc = snoc;\n/**\n * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = exports.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray`\n * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyNonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: _chain,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.chain = exports.ap = exports.alt = exports.altW = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.foldMap = exports.foldMapWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.of = exports.copy = exports.modifyAt = exports.updateAt = exports.insertAt = exports.sort = exports.groupBy = exports.group = exports.reverse = exports.concat = exports.concatW = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromArray = exports.fromReadonlyNonEmptyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = void 0;\nexports.groupSort = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = void 0;\nexports.nonEmptyArray = exports.fold = exports.prependToAll = exports.snoc = exports.cons = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.filter = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nvar isNonEmpty = function (as) { return as.length > 0; };\nexports.isNonEmpty = isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = (0, exports.fromReadonlyNonEmptyArray)(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n var xs = (0, exports.fromReadonlyNonEmptyArray)(as);\n xs[i] = a;\n return xs;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return (0, exports.copy)(as);\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = NEA.sortBy([byName, byAge])\n *\n * const persons: NEA.NonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return exports.copy;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `NonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return (0, exports.copy)(as);\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.fromReadonlyNonEmptyArray = _.fromReadonlyNonEmptyArray;\n/**\n * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromArray = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(as) : _.none); };\nexports.fromArray = fromArray;\n/**\n * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `NonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `NonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nexports.concatW = concatW;\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\nexports.concat = concat;\n/**\n * @since 2.0.0\n */\nvar reverse = function (as) { return __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true); };\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return [];\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\nexports.group = group;\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.0.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.0.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.0.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * @since 2.0.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.0.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.0.0\n */\nexports.copy = exports.fromReadonlyNonEmptyArray;\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar of = function (a) { return [a]; };\nexports.of = of;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : (0, exports.copy)(as);\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.foldMapWithIndex = RNEA.foldMapWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.foldMap = RNEA.foldMap;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = (0, exports.fromReadonlyNonEmptyArray)(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [(0, exports.copy)(as), []] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\n/* istanbul ignore next */\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as NEA.NonEmptyArray,\n * NEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `NonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * NEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @since 2.0.0\n */\nvar ap = function (as) {\n return (0, exports.chain)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * NEA.chain((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.0.0\n */\nvar chain = function (f) {\n return (0, exports.chainWithIndex)(function (_, a) { return f(a); });\n};\nexports.chain = chain;\n/**\n * @since 2.0.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.chain)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return (0, exports.mapWithIndex)(function (_, a) { return f(a); }); };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduce = RNEA.reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceWithIndex = RNEA.reduceWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRight = RNEA.reduceRight;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRightWithIndex = RNEA.reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function (_, a) { return a; }); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @since 2.7.0\n */\nexports.extract = RNEA.head;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'NonEmptyArray';\n/**\n * @category instances\n * @since 2.0.0\n */\nexports.getShow = RNEA.getShow;\n/**\n * Builds a `Semigroup` instance for `NonEmptyArray`\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RNEA.getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.0.0\n */\nexports.head = RNEA.head;\n/**\n * @since 2.0.0\n */\nvar tail = function (as) { return as.slice(1); };\nexports.tail = tail;\n/**\n * @since 2.0.0\n */\nexports.last = RNEA.last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.2.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.0.0\n */\nexports.min = RNEA.min;\n/**\n * @since 2.0.0\n */\nexports.max = RNEA.max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break an `Array` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break an `Array` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexports.intercalate = RNEA.intercalate;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : []); };\n}\nexports.groupSort = groupSort;\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\nexports.filter = filter;\n/**\n * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\nexports.cons = cons;\n/**\n * Use [`append`](./Array.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, (0, exports.append)(end)); };\nexports.snoc = snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = RNEA.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray`\n * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.nonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: _chain,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Field = exports.MonoidProduct = exports.MonoidSum = exports.SemigroupProduct = exports.SemigroupSum = exports.MagmaSub = exports.Show = exports.Bounded = exports.Ord = exports.Eq = exports.isNumber = void 0;\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @category refinements\n * @since 2.11.0\n */\nvar isNumber = function (u) { return typeof u === 'number'; };\nexports.isNumber = isNumber;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Ord = {\n equals: exports.Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bounded = {\n equals: exports.Eq.equals,\n compare: exports.Ord.compare,\n top: Infinity,\n bottom: -Infinity\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Show = {\n show: function (n) { return JSON.stringify(n); }\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.MagmaSub = {\n concat: function (first, second) { return first - second; }\n};\n/**\n * `number` semigroup under addition.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupSum = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * `number` semigroup under multiplication.\n *\n * @example\n * import { SemigroupProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupProduct = {\n concat: function (first, second) { return first * second; }\n};\n/**\n * `number` monoid under addition.\n *\n * The `empty` value is `0`.\n *\n * @example\n * import { MonoidSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidSum = {\n concat: exports.SemigroupSum.concat,\n empty: 0\n};\n/**\n * `number` monoid under multiplication.\n *\n * The `empty` value is `1`.\n *\n * @example\n * import { MonoidProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidProduct = {\n concat: exports.SemigroupProduct.concat,\n empty: 1\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Field = {\n add: exports.SemigroupSum.concat,\n zero: 0,\n mul: exports.SemigroupProduct.concat,\n one: 1,\n sub: exports.MagmaSub.concat,\n degree: function (_) { return 1; },\n div: function (first, second) { return first / second; },\n mod: function (first, second) { return first % second; }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.guard = void 0;\nfunction guard(F, P) {\n return function (b) { return (b ? P.of(undefined) : F.zero()); };\n}\nexports.guard = guard;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sort = exports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.foldMap = exports.reduce = exports.foldMapWithIndex = exports.duplicate = exports.extend = exports.filterWithIndex = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.filter = exports.separate = exports.mapWithIndex = exports.map = exports.flatten = exports.chain = exports.ap = exports.alt = exports.altW = exports.zero = exports.of = exports._chainRecBreadthFirst = exports._chainRecDepthFirst = exports.difference = exports.intersection = exports.union = exports.concat = exports.concatW = exports.comprehension = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = void 0;\nexports.toArray = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.Witherable = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = void 0;\nexports.readonlyArray = exports.prependToAll = exports.snoc = exports.cons = exports.range = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = exports.some = exports.every = exports.empty = exports.fromArray = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar N = __importStar(require(\"./number\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `ReadonlyArray` is empty.\n *\n * @example\n * import { isEmpty } from 'fp-ts/ReadonlyArray'\n *\n * assert.strictEqual(isEmpty([]), true)\n *\n * @category refinements\n * @since 2.5.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether a `ReadonlyArray` is non empty.\n *\n * @category refinements\n * @since 2.5.0\n */\nexports.isNonEmpty = RNEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = RNEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @since 2.11.0\n */\nexports.prependW = RNEA.prependW;\n/**\n * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = RNEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @since 2.11.0\n */\nexports.appendW = RNEA.appendW;\n/**\n * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyArray'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? exports.empty : RNEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : exports.empty); };\n}\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? exports.empty : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Transforms an `Either` to a `ReadonlyArray`.\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? exports.empty : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/ReadonlyArray'\n *\n * const len: (as: ReadonlyArray) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n if ((0, exports.isEmpty)(as)) {\n return exports.empty;\n }\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps.\n *\n * @example\n * import { scanLeft } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.5.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.5.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `ReadonlyArray`.\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @since 2.5.0\n */\nexports.isOutOfBound = RNEA.isOutOfBound;\nfunction lookup(i, as) {\n return as === undefined ? function (as) { return lookup(i, as); } : (0, exports.isOutOfBound)(i, as) ? _.none : _.some(as[i]);\n}\nexports.lookup = lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.5.0\n */\nvar head = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.head(as)) : _.none); };\nexports.head = head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.5.0\n */\nvar last = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.last(as)) : _.none); };\nexports.last = last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.5.0\n */\nvar tail = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.tail(as)) : _.none;\n};\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.5.0\n */\nvar init = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.init(as)) : _.none;\n};\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeLeft(4)), input)\n * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeRight(4)), input)\n * assert.strictEqual(pipe(input, RA.takeRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n var len = out.length;\n return len === as.length ? as : len === 0 ? exports.empty : out;\n };\n}\nexports.takeLeftWhile = takeLeftWhile;\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\nexports.spanLeft = spanLeft;\n/**\n * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3])\n * assert.strictEqual(pipe(input, RA.dropLeft(0)), input)\n * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1])\n * assert.strictEqual(pipe(input, RA.dropRight(0)), input)\n * assert.strictEqual(pipe(input, RA.dropRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) {\n var i = spanLeftIndex(as, predicate);\n return i === 0 ? as : i === as.length ? exports.empty : as.slice(i);\n };\n}\nexports.dropLeftWhile = dropLeftWhile;\n/**\n * Find the first index for which a predicate holds\n *\n * @example\n * import { findIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.5.0\n */\nvar findIndex = function (predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findIndex = findIndex;\nfunction findFirst(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\nexports.findFirst = findFirst;\n/**\n * Find the first element returned by an option based selector function\n *\n * @example\n * import { findFirstMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the first person that has an age\n * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary'))\n *\n * @since 2.5.0\n */\nvar findFirstMap = function (f) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findFirstMap = findFirstMap;\nfunction findLast(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\nexports.findLast = findLast;\n/**\n * Find the last element returned by an option based selector function\n *\n * @example\n * import { findLastMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the last person that has an age\n * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey'))\n *\n * @since 2.5.0\n */\nvar findLastMap = function (f) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findLastMap = findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate\n *\n * @example\n * import { findLastIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: ReadonlyArray = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n *\n * @since 2.5.0\n */\nvar findLastIndex = function (predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findLastIndex = findLastIndex;\n/**\n * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { insertAt } from 'fp-ts/ReadonlyArray'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.5.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { deleteAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.5.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.5.0\n */\nvar reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order\n *\n * @example\n * import { rights } from 'fp-ts/ReadonlyArray'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.5.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order\n *\n * @example\n * import { lefts } from 'fp-ts/ReadonlyArray'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.5.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n// TODO: curry and make data-last in v3\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.5.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.5.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = RNEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = RNEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.intersperse = intersperse;\n/**\n * Rotate a `ReadonlyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.5.0\n */\nvar rotate = function (n) {\n var f = RNEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.rotate = rotate;\nfunction elem(E) {\n return function (a, as) {\n if (as === undefined) {\n var elemE_1 = elem(E);\n return function (as) { return elemE_1(a, as); };\n }\n var predicate = function (element) { return E.equals(element, a); };\n var i = 0;\n for (; i < as.length; i++) {\n if (predicate(as[i])) {\n return true;\n }\n }\n return false;\n };\n}\nexports.elem = elem;\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.5.0\n */\nvar uniq = function (E) {\n var f = RNEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/ReadonlyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.5.0\n */\nvar sortBy = function (ords) {\n var f = RNEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for \"chopping\" up the input\n * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a\n * value and the tail of the `ReadonlyArray`.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: ReadonlyArray) => ReadonlyArray>) => {\n * return RA.chop(as => {\n * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.5.0\n */\nvar chop = function (f) {\n var g = RNEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : exports.empty); };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.5.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? RNEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [as, exports.empty] : [exports.empty, as];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that:\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `as`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.5.0\n */\nvar chunksOf = function (n) {\n var f = RNEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : exports.empty); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, function_1.pipe)(RNEA.head(input), (0, exports.chain)(function (x) { return go((0, function_1.pipe)(scope, (0, exports.append)(x)), RNEA.tail(input)); }))\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : exports.empty;\n };\n return go(exports.empty, input);\n}\nexports.comprehension = comprehension;\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = RNEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second) ? unionE(second)(first) : (0, exports.isNonEmpty)(first) ? first : second;\n };\n}\nexports.union = union;\nfunction intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexports.intersection = intersection;\nfunction difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nexports.difference = difference;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\nvar _filter = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.filter)(predicate));\n};\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/** @internal */\nvar _chainRecDepthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecDepthFirst)(f)); };\nexports._chainRecDepthFirst = _chainRecDepthFirst;\n/** @internal */\nvar _chainRecBreadthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecBreadthFirst)(f)); };\nexports._chainRecBreadthFirst = _chainRecBreadthFirst;\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = RNEA.of;\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.empty; };\nexports.zero = zero;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.5.0\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (fa) {\n return (0, exports.chain)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chain((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chain(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nvar chain = function (f) { return function (ma) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (_, a) { return f(a); }));\n}; };\nexports.chain = chain;\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.chain)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) { return function (fa) {\n return fa.map(function (a) { return f(a); });\n}; };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (predicateWithIndex(i, a)) {\n right.push(a);\n }\n else {\n left.push(a);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMap = function (f) {\n return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.partitionMap = partitionMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (a, i) { return predicateWithIndex(i, a); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * @since 2.5.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (M) {\n return function (f) {\n return function (fa) {\n return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty);\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) { return function (fa) {\n var len = fa.length;\n var out = b;\n for (var i = 0; i < len; i++) {\n out = f(i, out, fa[i]);\n }\n return out;\n}; };\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, a, b) { return f(a, b); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) { return function (fa) {\n return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n}; };\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return ((0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second)); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `ReadonlyArray`.\n *\n * @example\n * import { getMonoid } from 'fp-ts/ReadonlyArray'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.5.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: exports.empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/ReadonlyArray'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n *\n * @category instances\n * @since 2.5.0\n */\nvar getOrd = function (O) {\n return (0, Ord_1.fromCompare)(function (a, b) {\n var aLen = a.length;\n var bLen = b.length;\n var len = Math.min(aLen, bLen);\n for (var i = 0; i < len; i++) {\n var ordering = O.compare(a[i], b[i]);\n if (ordering !== 0) {\n return ordering;\n }\n }\n return N.Ord.compare(aLen, bLen);\n });\n};\nexports.getOrd = getOrd;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: exports.empty\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecDepthFirst = function (f) {\n return function (a) {\n var todo = __spreadArray([], f(a), true);\n var out = [];\n while (todo.length > 0) {\n var e = todo.shift();\n if (_.isLeft(e)) {\n todo.unshift.apply(todo, f(e.left));\n }\n else {\n out.push(e.right);\n }\n }\n return out;\n };\n};\nexports.chainRecDepthFirst = chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: exports._chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecBreadthFirst = function (f) {\n return function (a) {\n var initial = f(a);\n var todo = [];\n var out = [];\n function go(e) {\n if (_.isLeft(e)) {\n f(e.left).forEach(function (v) { return todo.push(v); });\n }\n else {\n out.push(e.right);\n }\n }\n for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) {\n var e = initial_1[_i];\n go(e);\n }\n while (todo.length > 0) {\n go(todo.shift());\n }\n return out;\n };\n};\nexports.chainRecBreadthFirst = chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: exports._chainRecBreadthFirst\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Filter values inside a context.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as T from 'fp-ts/Task'\n *\n * const filterE = RA.filterE(T.ApplicativePar)\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * [-1, 2, 3],\n * filterE((n) => T.of(n > 0))\n * )(),\n * [2, 3]\n * )\n * }\n * test()\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexports.unsafeInsertAt = RNEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? RNEA.unsafeUpdateAt(i, a, as) : as;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar toArray = function (as) { return as.slice(); };\nexports.toArray = toArray;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return ((0, exports.isEmpty)(as) ? exports.empty : as.slice()); };\nexports.fromArray = fromArray;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * An empty array\n *\n * @since 2.5.0\n */\nexports.empty = RNEA.empty;\nfunction every(predicate) {\n return function (as) { return as.every(predicate); };\n}\nexports.every = every;\n/**\n * Check if a predicate holds true for any array member.\n *\n * @example\n * import { some } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true)\n * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false)\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (M) {\n var intercalateM = RNEA.intercalate(M);\n return function (middle) { return (0, exports.match)(function () { return M.empty; }, intercalateM(middle)); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `ReadonlyNonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.range = RNEA.range;\n/**\n * Use [`prepend`](#prepend) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.cons = RNEA.cons;\n/**\n * Use [`append`](#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.snoc = RNEA.snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray`\n * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyArray = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.copy = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.foldMapWithIndex = exports.foldMap = exports.duplicate = exports.extend = exports.filterWithIndex = exports.alt = exports.altW = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.filter = exports.separate = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.mapWithIndex = exports.flatten = exports.chain = exports.ap = exports.map = exports.zero = exports.of = exports.difference = exports.intersection = exports.union = exports.concat = exports.concatW = exports.comprehension = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.sort = void 0;\nexports.some = exports.every = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = void 0;\nexports.array = exports.prependToAll = exports.snoc = exports.cons = exports.empty = exports.range = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar NEA = __importStar(require(\"./NonEmptyArray\"));\nvar RA = __importStar(require(\"./ReadonlyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether an array is empty\n *\n * @example\n * import { isEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isEmpty([]), true)\n * assert.strictEqual(isEmpty(['a']), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether an array is non empty narrowing down the type to `NonEmptyArray`\n *\n * @example\n * import { isNonEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isNonEmpty([]), false)\n * assert.strictEqual(isNonEmpty(['a']), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isNonEmpty = NEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = NEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @example\n * import { prependW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prependW(\"a\")), [\"a\", 2, 3, 4]);\n *\n * @since 2.11.0\n */\nexports.prependW = NEA.prependW;\n/**\n * Append an element to the end of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = NEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @example\n * import { appendW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], appendW(\"d\")), [1, 2, 3, \"d\"]);\n *\n * @since 2.11.0\n */\nexports.appendW = NEA.appendW;\n/**\n * Return a `Array` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/Array'\n *\n * const double = (i: number): number => i * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n * assert.deepStrictEqual(makeBy(-3, double), [])\n * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])\n *\n * @category constructors\n * @since 2.0.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `Array` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n * assert.deepStrictEqual(replicate(-3, 'a'), [])\n * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])\n *\n * @category constructors\n * @since 2.0.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : []); };\n}\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * Create an array from an `Option`. The resulting array will contain the content of the\n * `Option` if it is `Some` and it will be empty if the `Option` is `None`.\n *\n * @example\n * import { fromOption } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(option.some(\"a\"), fromOption),[\"a\"])\n * assert.deepStrictEqual(pipe(option.none, fromOption),[])\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Create an array from an `Either`. The resulting array will contain the content of the\n * `Either` if it is `Right` and it will be empty if the `Either` is `Left`.\n *\n * @example\n * import { fromEither } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(either.right(\"r\"), fromEither), [\"r\"]);\n * assert.deepStrictEqual(pipe(either.left(\"l\"), fromEither), []);\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @example\n * import { matchW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcherW = matchW(\n * () => \"No elements\",\n * (as) => as.length\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);\n * assert.deepStrictEqual(pipe([], matcherW), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` and returns the result.\n *\n * @example\n * import { match } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcher = match(\n * () => \"No elements\",\n * (as) => `Found ${as.length} element(s)`\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), \"Found 4 element(s)\");\n * assert.deepStrictEqual(pipe([], matcher), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchLeftW } from 'fp-ts/Array'\n *\n * const f = matchLeftW(\n * () => 0,\n * (head: string, tail: string[]) => `Found \"${head}\" followed by ${tail.length} elements`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found \"a\" followed by 2 elements');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/Array'\n *\n * const len: (as: Array) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchRightW } from 'fp-ts/Array'\n *\n * const f = matchRightW(\n * () => 0,\n * (head: string[], tail: string) => `Found ${head.length} elements folllowed by \"${tail}\"`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found 2 elements folllowed by \"c\"');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its initial elements and the last element.\n *\n * @example\n * import { matchRight } from 'fp-ts/Array'\n *\n * const len: (as: Array) => number = matchRight(\n * () => 0,\n * (head, _) => 1 + len(head)\n * );\n * assert.strictEqual(len([1, 2, 3]), 3);\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Same as [`chain`](#chain), but passing also the index to the iterating function.\n *\n * @example\n * import { chainWithIndex, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (index: number, x: string) => replicate(2, `${x}${index}`);\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], chainWithIndex(f)), [\"a0\", \"a0\", \"b1\", \"b1\", \"c2\", \"c2\"]);\n *\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps\n *\n * @example\n * import { scanLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.0.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.0.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `Array`.\n *\n * @example\n * import { size } from 'fp-ts/Array'\n *\n * assert.strictEqual(size([\"a\",\"b\",\"c\"]),3)\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @example\n * import { isOutOfBound } from 'fp-ts/Array'\n *\n * assert.strictEqual(isOutOfBound(1,[\"a\",\"b\",\"c\"]),false)\n * assert.strictEqual(isOutOfBound(-1,[\"a\",\"b\",\"c\"]),true)\n * assert.strictEqual(isOutOfBound(3,[\"a\",\"b\",\"c\"]),true)\n *\n * @since 2.0.0\n */\nexports.isOutOfBound = NEA.isOutOfBound;\n// TODO: remove non-curried overloading in v3\n/**\n * This function provides a safe way to read a value at a particular index from an array.\n * It returns a `none` if the index is out of bounds, and a `some` of the element if the\n * index is valid.\n *\n * @example\n * import { lookup } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)\n *\n * @since 2.0.0\n */\nexports.lookup = RA.lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.0.0\n */\nexports.head = RA.head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.0.0\n */\nexports.last = RA.last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.0.0\n */\nvar tail = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.tail(as)) : _.none); };\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.0.0\n */\nvar init = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.init(as)) : _.none); };\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);\n * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);\n * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : n === 0 ? [] : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n return out;\n };\n}\nexports.takeLeftWhile = takeLeftWhile;\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\nexports.spanLeft = spanLeft;\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);\n * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);\n * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) { return as.slice(spanLeftIndex(as, predicate)); };\n}\nexports.dropLeftWhile = dropLeftWhile;\n/**\n * `findIndex` returns an `Option` containing the first index for which a predicate holds.\n * It returns `None` if no element satisfies the predicate.\n * Similar to [`findFirst`](#findFirst) but returning the index instead of the element.\n *\n * @example\n * import { findIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.0.0\n */\nexports.findIndex = RA.findIndex;\nfunction findFirst(predicate) {\n return RA.findFirst(predicate);\n}\nexports.findFirst = findFirst;\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array and\n * returns the first `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findFirstMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some(\"Mary\"));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexports.findFirstMap = RA.findFirstMap;\nfunction findLast(predicate) {\n return RA.findLast(predicate);\n}\nexports.findLast = findLast;\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array starting from the\n * end and returns the last `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findLastMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some(\"Joey\"));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexports.findLastMap = RA.findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate.\n * It returns an `Option` containing the index or `None` if not found.\n *\n * @example\n * import { findLastIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: Array = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n * @since 2.0.0\n */\nexports.findLastIndex = RA.findLastIndex;\n/**\n * This function takes an array and makes a new array containing the same elements.\n *\n * @since 2.0.0\n */\nvar copy = function (as) { return as.slice(); };\nexports.copy = copy;\n/**\n * Insert an element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { insertAt } from 'fp-ts/Array'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.0.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { updateAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.0.0\n */\nvar updateAt = function (i, a) { return (0, exports.modifyAt)(i, function () { return a; }); };\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.\n *\n * @example\n * import { deleteAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.0.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds.\n *\n * @example\n * import { modifyAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.0.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.0.0\n */\nvar reverse = function (as) { return ((0, exports.isEmpty)(as) ? [] : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Right` elements in the same order.\n *\n * @example\n * import { rights } from 'fp-ts/Array'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.0.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Left` elements in the same order.\n *\n * @example\n * import { lefts } from 'fp-ts/Array'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.0.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.0.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? (0, exports.copy)(as) : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.0.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.0.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Creates a new `Array`, prepending an element to every member of the input `Array`.\n *\n * @example\n * import { prependAll } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = NEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); };\n};\nexports.prependAll = prependAll;\n/**\n * Creates a new `Array` placing an element in between members of the input `Array`.\n *\n * @example\n * import { intersperse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = NEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.intersperse = intersperse;\n/**\n * Creates a new `Array` rotating the input `Array` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.0.0\n */\nvar rotate = function (n) {\n var f = NEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.rotate = rotate;\n// TODO: remove non-curried overloading in v3\n/**\n * Test if a value is a member of an `Array`. Takes a `Eq` as a single\n * argument which returns the function to use to search for a value of type `A` in\n * an `Array`.\n *\n * @example\n * import { elem } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)\n *\n * @since 2.0.0\n */\nexports.elem = RA.elem;\n/**\n * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,\n * based on a `Eq`.\n *\n * @example\n * import { uniq } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.0.0\n */\nvar uniq = function (E) {\n var f = NEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/Array'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.0.0\n */\nvar sortBy = function (ords) {\n var f = NEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing an array to produce a new array, often used for \"chopping\" up the input\n * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a\n * value and the rest of the array.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as A from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: Array) => Array>) => {\n * return A.chop(as => {\n * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.0.0\n */\nvar chop = function (f) {\n var g = NEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : []); };\n};\nexports.chop = chop;\n/**\n * Splits an `Array` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.0.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? NEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [(0, exports.copy)(as), []] : [[], (0, exports.copy)(as)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `xs`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.0.0\n */\nvar chunksOf = function (n) {\n var f = NEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, function_1.pipe)(NEA.head(input), (0, exports.chain)(function (x) { return go((0, function_1.pipe)(scope, (0, exports.append)(x)), NEA.tail(input)); }))\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : [];\n };\n return go([], input);\n}\nexports.comprehension = comprehension;\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? (0, exports.copy)(second) : (0, exports.isEmpty)(second) ? (0, exports.copy)(first) : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = NEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second)\n ? unionE(second)(first)\n : (0, exports.isNonEmpty)(first)\n ? (0, exports.copy)(first)\n : (0, exports.copy)(second);\n };\n}\nexports.union = union;\nfunction intersection(E) {\n var elemE = (0, exports.elem)(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexports.intersection = intersection;\nfunction difference(E) {\n var elemE = (0, exports.elem)(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nexports.difference = difference;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\n/* istanbul ignore next */\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/* istanbul ignore next */\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\nvar _chainRecDepthFirst = RA._chainRecDepthFirst;\nvar _chainRecBreadthFirst = RA._chainRecBreadthFirst;\n/**\n * Given an element of the base type, `of` builds an `Array` containing just that\n * element of the base type (this is useful for building a `Monad`).\n *\n * @example\n * import { of } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(of(\"a\"), [\"a\"]);\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.of = NEA.of;\n/**\n * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)\n *\n * @since 2.7.0\n */\nvar zero = function () { return []; };\nexports.zero = zero;\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array) => Array`.\n * In practice it applies the base function to each element of the array and collects the\n * results in a new array.\n *\n * @example\n * import { map } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => n * 2;\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; };\nexports.map = map;\n/**\n * @example\n * import { ap, map, of } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * // a curried function with 3 input parameteres\n * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;\n *\n * // let's use `ap` to iterate `f` over an array for each input parameter\n * assert.deepStrictEqual(pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"\uD83D\uDE00\", \"\uD83D\uDE2B\", \"\uD83D\uDE0E\"])), [\n * \"a1\uD83D\uDE00\", \"a1\uD83D\uDE2B\", \"a1\uD83D\uDE0E\",\n * \"a2\uD83D\uDE00\", \"a2\uD83D\uDE2B\", \"a2\uD83D\uDE0E\",\n * \"b1\uD83D\uDE00\", \"b1\uD83D\uDE2B\", \"b1\uD83D\uDE0E\",\n * \"b2\uD83D\uDE00\", \"b2\uD83D\uDE2B\", \"b2\uD83D\uDE0E\",\n * ]);\n *\n * // given Array implements the Applicative interface with the `of` method,\n * // we can write exactly the same thing in a more symmetric way\n * // using `of` on `f` and `ap` on each array in input\n * assert.deepStrictEqual(\n * pipe(of(f), ap([\"a\", \"b\"]), ap([1, 2]), ap([\"\uD83D\uDE00\", \"\uD83D\uDE2B\", \"\uD83D\uDE0E\"])),\n * pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"\uD83D\uDE00\", \"\uD83D\uDE2B\", \"\uD83D\uDE0E\"]))\n * );\n *\n * @since 2.0.0\n */\nvar ap = function (fa) { return (0, exports.chain)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); };\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to\n * determine the next computation.\n *\n * In other words it takes a function `f` that produces an array from a single element of\n * the base type `A` and returns a new function which applies `f` to each element of the\n * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the\n * results into a single array (like [`flatten`](#flatten)).\n *\n * This is the `chain` component of the array `Monad`.\n *\n * @example\n * import { chain, map, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => replicate(n, `${n}`);\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [[\"1\"], [\"2\", \"2\"], [\"3\", \"3\", \"3\"]]);\n * assert.deepStrictEqual(pipe([1, 2, 3], chain(f)), [\"1\", \"2\", \"2\", \"3\", \"3\", \"3\"]);\n *\n * @category sequencing\n * @since 2.0.0\n */\nvar chain = function (f) { return function (ma) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (_, a) { return f(a); }));\n}; };\nexports.chain = chain;\n/**\n * Takes an array of arrays of `A` and flattens them into an array of `A`\n * by concatenating the elements of each array in order.\n *\n * @example\n * import { flatten } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(flatten([[\"a\"], [\"b\", \"c\"], [\"d\", \"e\", \"f\"]]), [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]);\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.chain)(function_1.identity);\n/**\n * Same as [`map`](#map), but the iterating function takes both the index and the value\n * of the element.\n *\n * @example\n * import { mapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (i: number, s: string) => `${s} - ${i}`;\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], mapWithIndex(f)), [\"a - 0\", \"b - 1\", \"c - 2\"]);\n *\n * @category mapping\n * @since 2.0.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * Maps an array with an iterating function that takes the index and the value of\n * each element and returns an `Option`. It keeps only the `Some` values discarding\n * the `None`s.\n *\n * Same as [`filterMap`](#filterMap), but with an iterating function which takes also\n * the index as input.\n *\n * @example\n * import { filterMapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMapWithIndex(f)), [\"NO\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * Maps an array with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMap(f)), [\"A\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * Compact an array of `Option`s discarding the `None` values and\n * keeping the `Some` values. It returns a new array containing the values of\n * the `Some` options.\n *\n * @example\n * import { compact } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n *\n * assert.deepStrictEqual(compact([option.some(\"a\"), option.none, option.some(\"b\")]), [\"a\", \"b\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:\n * one containing all the left values and one containing all the right values.\n *\n * @example\n * import { separate } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n *\n * assert.deepStrictEqual(separate([either.right(\"r1\"), either.left(\"l1\"), either.right(\"r2\")]), {\n * left: [\"l1\"],\n * right: [\"r1\", \"r2\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `filter` creates a new `Array` containing the elements of the original\n * `Array` for which the iterating function is `true`.\n *\n * @example\n * import { filter } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(filter(isString)([\"a\", 1, {}, \"b\", 5]), [\"a\", \"b\"]);\n * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `partition` creates two new `Array`s: `right` containing the elements of the original\n * `Array` for which the iterating function is `true`, `left` containing the elements\n * for which it is false.\n *\n * @example\n * import { partition } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(partition(isString)([\"a\", 1, {}, \"b\", 5]), { left: [1, {}, 5], right: [\"a\", \"b\"] });\n * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * Same as [`partition`](#partition), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionWithIndex } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {\n * left: [-2, 7],\n * right: [5, 6],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var b = as[i];\n if (predicateWithIndex(i, b)) {\n right.push(b);\n }\n else {\n left.push(b);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * Given an iterating function that returns an `Either`,\n * `partitionMap` applies the iterating function to each element and it creates two `Array`s:\n * `right` containing the values of `Right` results, `left` containing the values of `Left` results.\n *\n * @example\n * import { partitionMap } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfString = (x: B): Either =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMap(upperIfString)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7],\n * right: [ 'HELLO', 'WORLD' ],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); }); };\nexports.partitionMap = partitionMap;\n/**\n * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionMapWithIndex } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfStringBefore3 = (index: number, x: B): Either =>\n * index < 3 && typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7, \"world\"],\n * right: [\"HELLO\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Array` concatenates the inputs into a single array.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * Same as [`filter`](#filter), but passing also the index to the iterating function.\n *\n * @example\n * import { filterWithIndex } from 'fp-ts/Array';\n *\n * const f = (index: number, x: number) => x > 0 && index <= 2;\n * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (b, i) { return predicateWithIndex(i, b); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Given an iterating function that takes `Array` as input, `extend` returns\n * an array containing the results of the iterating function applied to the whole input\n * `Array`, then to the input `Array` without the first element, then to the input\n * `Array` without the first two elements, etc.\n *\n * @example\n * import { extend } from 'fp-ts/Array'\n *\n * const f = (a: string[]) => a.join(\",\");\n * assert.deepStrictEqual(extend(f)([\"a\", \"b\", \"c\"]), [\"a,b,c\", \"b,c\", \"c\"]);\n *\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * `duplicate` returns an array containing the whole input `Array`,\n * then to the input `Array` dropping the first element, then to the input\n * `Array` dropping the first two elements, etc.\n *\n * @example\n * import { duplicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(duplicate([\"a\", \"b\", \"c\"]), [[\"a\", \"b\", \"c\"], [\"b\", \"c\"], [\"c\"]]);\n *\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * Map and fold an `Array`.\n * Map the `Array` passing each value to the iterating function.\n * Then fold the results using the provided `Monoid`.\n *\n * @example\n * import { foldMap } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (s: string) => s.toUpperCase()\n * assert.deepStrictEqual(foldMap(monoid)(f)([\"a\", \"b\", \"c\"]), \"ABC\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.foldMap = RA.foldMap;\n/**\n * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.\n *\n * @example\n * import { foldMapWithIndex } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`\n * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)([\"a\", \"b\", \"c\"]), \"A(0)B(1)C(2)\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.foldMapWithIndex = RA.foldMapWithIndex;\n/**\n * Reduces an `Array`.\n *\n * `reduce` executes the supplied iterating function on each element of the array,\n * in order, passing in the element and the return value from the calculation on the preceding element.\n *\n * The first time that the iterating function is called there is no \"return value of the\n * previous calculation\", the initial value is used in its place.\n *\n * @example\n * import { reduce } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduce = RA.reduce;\n/**\n * Same as [`reduce`](#reduce) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, acc: string, cur: unknown) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"A1B2\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceWithIndex = RA.reduceWithIndex;\n/**\n * Same as [`reduce`](#reduce) but applied from the end to the start.\n *\n * *Note*: the iterating function in this case takes the accumulator as the last argument.\n *\n * @example\n * import { reduceRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduceRight(\"\", (cur: string, acc: string) => acc + cur)([\"a\", \"b\", \"c\"]), \"cba\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRight = RA.reduceRight;\n/**\n * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceRightWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, cur: unknown, acc: string) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceRightWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"B2A1\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRightWithIndex = RA.reduceRightWithIndex;\n/**\n * Given an iterating function that returns a `HKT` (higher kinded type), `traverse`\n * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s\n * the results using the provided `Applicative`.\n *\n * E.g. suppose you have an `Array` and you want to format each element with a function\n * that returns a result or an error as `f = (a: A) => Either`, using `traverse`\n * you can apply `f` to all elements and directly obtain as a result an `Either>`\n * i.e. an `Array` if all the results are `B`, or an `Error` if some of the results\n * are `Error`s.\n *\n * @example\n * import { traverse } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (x: unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", \"b\"]), right([\"A\", \"B\"]));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * `sequence` takes an `Array` where elements are `HKT` (higher kinded type) and,\n * using an applicative of that `HKT`, returns an `HKT` of `Array`.\n * E.g. it can turn an `Array>` into an `Either>`.\n *\n * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an\n * `Array>` into an `Either>`, it needs an\n * `Applicative` for `Either`, to to turn an `Array>` into an `Option>`,\n * it needs an `Applicative` for `Option`.\n *\n * @example\n * import { sequence } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * assert.deepStrictEqual(sequence(Applicative)([right(\"a\"), right(\"b\")]), right([\"a\", \"b\"]));\n * assert.deepStrictEqual(\n * sequence(Applicative)([right(\"a\"), left(new Error(\"not a string\"))]),\n * left(new Error(\"not a string\"))\n * );\n *\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * Same as [`traverse`](#traverse) but passing also the index to the iterating function.\n *\n * @example\n * import { traverseWithIndex } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (index:number, x:unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase() + index) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", \"b\"]), right([\"A0\", \"B1\"]));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome\n * value and an input for the following iteration.\n * `unfold` applies `f` to the initial value `b` and then recursively to the second\n * element of the tuple contained in the returned `option` of the previous\n * calculation until `f` returns `Option.none`.\n *\n * @example\n * import { unfold } from 'fp-ts/Array'\n * import { option } from 'fp-ts'\n *\n * const f = (n: number) => {\n * if (n <= 0) return option.none;\n * const returnValue = n * 2;\n * const inputForNextRound = n - 1;\n * return option.some([returnValue, inputForNextRound] as const);\n * };\n * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);\n *\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Array';\n/**\n * `getShow` makes a `Show` for an `Array` from a `Show` for\n * an `A`.\n *\n * @example\n * import { getShow } from 'fp-ts/Array'\n *\n * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };\n * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), \"[(2), (1), 0, 1]\");\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getShow = RA.getShow;\n/**\n * Get a `Semigroup` based on the concatenation of `Array`s.\n * See also [`getMonoid`](#getMonoid).\n *\n * @example\n * import { getSemigroup } from 'fp-ts/Array'\n *\n * const S = getSemigroup();\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return first.concat(second); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `Array` based on the concatenation of `Array`s.\n *\n * @example\n * import { getMonoid } from 'fp-ts/Array'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: []\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/Array'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RA.getEq;\n/**\n * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/Array'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getOrd = RA.getOrd;\n/**\n * Get a `Semigroup` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n * See also [`getUnionMonoid`](#getUnionMonoid).\n *\n * @example\n * import { getUnionSemigroup } from 'fp-ts/Array';\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getUnionSemigroup(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Get a `Monoid` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n *\n * @example\n * import { getUnionMonoid } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const M = getUnionMonoid(Eq);\n * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(M.empty,[]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: []\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Get a `Semigroup` based on the intersection of the elements of `Array`s.\n * Only elements present in the two arrays which are equal according to the\n * provided `Eq` are included in the result.\n *\n * @example\n * import { getIntersectionSemigroup } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getIntersectionSemigroup(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Get a `Magma` for `Array` where the `concat` function is the differnce between\n * the first and the second array, i.e. the result contains all the elements of the\n * first array for which their is no equal element in the second array according\n * to the `Eq` provided.\n *\n *\n * @example\n * import { getDifferenceMagma } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getDifferenceMagma(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Given an input an `Array` of functions, `flap` returns an `Array` containing\n * the results of applying each function to the given input.\n *\n * @example\n * import { flap } from 'fp-ts/Array'\n *\n * const funs = [\n * (n: number) => `Double: ${n * 2}`,\n * (n: number) => `Triple: ${n * 3}`,\n * (n: number) => `Square: ${n * n}`,\n * ];\n * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainRecDepthFirst = RA.chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainRecBreadthFirst = RA.chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecBreadthFirst\n};\n/**\n * Filter values inside a context.\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.0.0\n */\nexports.unsafeInsertAt = NEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? NEA.unsafeUpdateAt(i, a, as) : [];\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * `every` tells if the provided predicate holds true for every element in the `Array`.\n *\n * @example\n * import { every } from 'fp-ts/Array'\n *\n * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nexports.every = RA.every;\n/**\n * `some` tells if the provided predicate holds true at least for one element in the `Array`.\n *\n * @example\n * import { some } from 'fp-ts/Array'\n *\n * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexports.intercalate = RA.intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `NonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.range = NEA.range;\n/**\n * Use a new `[]` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.empty = [];\n/**\n * Use `prepend` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.cons = NEA.cons;\n/**\n * Use `append` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.snoc = NEA.snoc;\n/**\n * Use `prependAll` instead\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array`\n * (where `A` is from `import A from 'fp-ts/Array'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.array = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.and = exports.or = exports.not = exports.Contravariant = exports.getMonoidAll = exports.getSemigroupAll = exports.getMonoidAny = exports.getSemigroupAny = exports.URI = exports.contramap = void 0;\nvar function_1 = require(\"./function\");\nvar contramap_ = function (predicate, f) { return (0, function_1.pipe)(predicate, (0, exports.contramap)(f)); };\n/**\n * @since 2.11.0\n */\nvar contramap = function (f) {\n return function (predicate) {\n return (0, function_1.flow)(f, predicate);\n };\n};\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.11.0\n */\nexports.URI = 'Predicate';\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAny = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.or)(second)); }\n}); };\nexports.getSemigroupAny = getSemigroupAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAny = function () { return ({\n concat: (0, exports.getSemigroupAny)().concat,\n empty: function_1.constFalse\n}); };\nexports.getMonoidAny = getMonoidAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAll = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.and)(second)); }\n}); };\nexports.getSemigroupAll = getSemigroupAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAll = function () { return ({\n concat: (0, exports.getSemigroupAll)().concat,\n empty: function_1.constTrue\n}); };\nexports.getMonoidAll = getMonoidAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar not = function (predicate) {\n return function (a) {\n return !predicate(a);\n };\n};\nexports.not = not;\n/**\n * @since 2.11.0\n */\nvar or = function (second) {\n return function (first) {\n return function (a) {\n return first(a) || second(a);\n };\n };\n};\nexports.or = or;\n/**\n * @since 2.11.0\n */\nvar and = function (second) {\n return function (first) {\n return function (a) {\n return first(a) && second(a);\n };\n };\n};\nexports.and = and;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEither = exports.MonadThrow = exports.throwError = exports.Witherable = exports.wilt = exports.wither = exports.Traversable = exports.sequence = exports.traverse = exports.Filterable = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.Compactable = exports.separate = exports.compact = exports.Extend = exports.extend = exports.Alternative = exports.guard = exports.Zero = exports.zero = exports.Alt = exports.alt = exports.altW = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.chain = exports.Applicative = exports.Apply = exports.ap = exports.Pointed = exports.of = exports.Functor = exports.map = exports.getMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.URI = exports.getRight = exports.getLeft = exports.fromPredicate = exports.some = exports.none = void 0;\nexports.getLastMonoid = exports.getFirstMonoid = exports.getApplyMonoid = exports.getApplySemigroup = exports.option = exports.mapNullable = exports.getRefinement = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toUndefined = exports.toNullable = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.duplicate = exports.chainFirst = exports.flatten = exports.apSecond = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isNone = exports.isSome = exports.FromEither = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Predicate_1 = require(\"./Predicate\");\nvar Semigroup_1 = require(\"./Semigroup\");\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.some = _.some;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? (0, exports.some)(a) : exports.none); };\n}\nexports.fromPredicate = fromPredicate;\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getLeft = function (ma) { return (ma._tag === 'Right' ? exports.none : (0, exports.some)(ma.left)); };\nexports.getLeft = getLeft;\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getRight = function (ma) { return (ma._tag === 'Left' ? exports.none : (0, exports.some)(ma.right)); };\nexports.getRight = getRight;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _chain = function (ma, f) { return (0, function_1.pipe)(ma, (0, exports.chain)(f)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (S) { return ({\n show: function (ma) { return ((0, exports.isNone)(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (E) { return ({\n equals: function (x, y) { return x === y || ((0, exports.isNone)(x) ? (0, exports.isNone)(y) : (0, exports.isNone)(y) ? false : E.equals(x.value, y.value)); }\n}); };\nexports.getEq = getEq;\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getOrd = function (O) { return ({\n equals: (0, exports.getEq)(O).equals,\n compare: function (x, y) { return (x === y ? 0 : (0, exports.isSome)(x) ? ((0, exports.isSome)(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\nexports.getOrd = getOrd;\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isNone)(x) ? y : (0, exports.isNone)(y) ? x : (0, exports.some)(S.concat(x.value, y.value))); },\n empty: exports.none\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(f(fa.value));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @since 2.0.0\n */\nvar ap = function (fa) { return function (fab) {\n return (0, exports.isNone)(fab) ? exports.none : (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(fab.value(fa.value));\n}; };\nexports.ap = ap;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category sequencing\n * @since 2.0.0\n */\nvar chain = function (f) { return function (ma) {\n return (0, exports.isNone)(ma) ? exports.none : f(ma.value);\n}; };\nexports.chain = chain;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(b, fa.value);\n}; };\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? M.empty : f(fa.value);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(fa.value, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) { return function (fa) {\n return (0, exports.isNone)(fa) ? that() : fa;\n}; };\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Option` returns the left-most non-`None` value.\n *\n * | x | y | pipe(x, alt(() => y) |\n * | ------- | ------- | -------------------- |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import * as O from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * O.alt(() => O.none)\n * ),\n * O.none\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.some('a'),\n * O.alt(() => O.none)\n * ),\n * O.some('a')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * O.alt(() => O.some('b'))\n * ),\n * O.some('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.some('a'),\n * O.alt(() => O.some('b'))\n * ),\n * O.some('a')\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.none; };\nexports.zero = zero;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isNone)(wa) ? exports.none : (0, exports.some)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.chain)(function_1.identity);\nvar defaultSeparated = /*#__PURE__*/ (0, Separated_1.separated)(exports.none, exports.none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (ma) {\n return (0, exports.isNone)(ma) ? defaultSeparated : (0, Separated_1.separated)((0, exports.getLeft)(ma.value), (0, exports.getRight)(ma.value));\n};\nexports.separate = separate;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : predicate(fa.value) ? fa : exports.none;\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : f(fa.value);\n}; };\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return function (fa) {\n return (0, Separated_1.separated)(_filter(fa, (0, Predicate_1.not)(predicate)), _filter(fa, predicate));\n };\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, function_1.flow)((0, exports.map)(f), exports.separate); };\nexports.partitionMap = partitionMap;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(f(ta.value), exports.some);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(ta.value, exports.some);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nvar throwError = function () { return exports.none; };\nexports.throwError = throwError;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n throwError: exports.throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromEither = exports.getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onNone, onSome) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : onSome(ma.value);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onNone) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : ma.value;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainEitherK = \n/*#__PURE__*/ (0, FromEither_1.chainEitherK)(exports.FromEither, exports.Chain);\n/**\n * @category sequencing\n * @since 2.12.0\n */\nexports.chainFirstEitherK = \n/*#__PURE__*/ (0, FromEither_1.chainFirstEitherK)(exports.FromEither, exports.Chain);\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (a) { return (a == null ? exports.none : (0, exports.some)(a)); };\nexports.fromNullable = fromNullable;\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f) {\n try {\n return (0, exports.some)(f());\n }\n catch (e) {\n return exports.none;\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); });\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nvar fromNullableK = function (f) { return (0, function_1.flow)(f, exports.fromNullable); };\nexports.fromNullableK = fromNullableK;\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nvar chainNullableK = function (f) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? exports.none : (0, exports.fromNullable)(f(ma.value));\n };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toNullable = (0, exports.match)(function_1.constNull, function_1.identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toUndefined = (0, exports.match)(function_1.constUndefined, function_1.identity);\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isNone)(ma) ? false : E.equals(a, ma.value);\n };\n}\nexports.elem = elem;\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? false : predicate(ma.value);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if ((0, exports.isNone)(o)) {\n return exports.none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if ((0, exports.isNone)(o_1)) {\n return exports.none;\n }\n out.push(o_1.value);\n }\n return (0, exports.some)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) {\n return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); });\n};\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getRefinement(getOption) {\n return function (a) { return (0, exports.isSome)(getOption(a)); };\n}\nexports.getRefinement = getRefinement;\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.mapNullable = exports.chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.option = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n zero: exports.zero,\n alt: _alt,\n extend: _extend,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getFirstMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.first)()); };\nexports.getFirstMonoid = getFirstMonoid;\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getLastMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.last)()); };\nexports.getLastMonoid = getLastMonoid;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endsWith = exports.startsWith = exports.includes = exports.split = exports.size = exports.isEmpty = exports.slice = exports.trimRight = exports.trimLeft = exports.trim = exports.replace = exports.toLowerCase = exports.toUpperCase = exports.isString = exports.Show = exports.Ord = exports.Monoid = exports.empty = exports.Semigroup = exports.Eq = void 0;\nvar ReadonlyNonEmptyArray_1 = require(\"./ReadonlyNonEmptyArray\");\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true)\n * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * `string` semigroup under concatenation.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab')\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Semigroup = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * An empty `string`.\n *\n * @since 2.10.0\n */\nexports.empty = '';\n/**\n * `string` monoid under concatenation.\n *\n * The `empty` value is `''`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab')\n * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a')\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Monoid = {\n concat: exports.Semigroup.concat,\n empty: exports.empty\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0)\n * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1)\n * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Ord = {\n equals: exports.Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Show.show('a'), '\"a\"')\n *\n * @category instances\n * @since 2.10.0\n */\nexports.Show = {\n show: function (s) { return JSON.stringify(s); }\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.isString('a'), true)\n * assert.deepStrictEqual(S.isString(1), false)\n *\n * @category refinements\n * @since 2.11.0\n */\nvar isString = function (u) { return typeof u === 'string'; };\nexports.isString = isString;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A')\n *\n * @since 2.11.0\n */\nvar toUpperCase = function (s) { return s.toUpperCase(); };\nexports.toUpperCase = toUpperCase;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a')\n *\n * @since 2.11.0\n */\nvar toLowerCase = function (s) { return s.toLowerCase(); };\nexports.toLowerCase = toLowerCase;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc')\n *\n * @since 2.11.0\n */\nvar replace = function (searchValue, replaceValue) {\n return function (s) {\n return s.replace(searchValue, replaceValue);\n };\n};\nexports.replace = replace;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trim), 'a')\n *\n * @since 2.11.0\n */\nvar trim = function (s) { return s.trim(); };\nexports.trim = trim;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ')\n *\n * @since 2.11.0\n */\nvar trimLeft = function (s) { return s.trimLeft(); };\nexports.trimLeft = trimLeft;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a')\n *\n * @since 2.11.0\n */\nvar trimRight = function (s) { return s.trimRight(); };\nexports.trimRight = trimRight;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc')\n *\n * @since 2.11.0\n */\nvar slice = function (start, end) {\n return function (s) {\n return s.slice(start, end);\n };\n};\nexports.slice = slice;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `string` is empty.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('', S.isEmpty), true)\n * assert.deepStrictEqual(pipe('a', S.isEmpty), false)\n *\n * @since 2.10.0\n */\nvar isEmpty = function (s) { return s.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Calculate the number of characters in a `string`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.size), 3)\n *\n * @since 2.10.0\n */\nvar size = function (s) { return s.length; };\nexports.size = size;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c'])\n * assert.deepStrictEqual(pipe('', S.split('')), [''])\n *\n * @since 2.11.0\n */\nvar split = function (separator) {\n return function (s) {\n var out = s.split(separator);\n return (0, ReadonlyNonEmptyArray_1.isNonEmpty)(out) ? out : [s];\n };\n};\nexports.split = split;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.includes('b')), true)\n * assert.deepStrictEqual(pipe('abc', S.includes('d')), false)\n *\n * @since 2.11.0\n */\nvar includes = function (searchString, position) {\n return function (s) {\n return s.includes(searchString, position);\n };\n};\nexports.includes = includes;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true)\n * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false)\n *\n * @since 2.11.0\n */\nvar startsWith = function (searchString, position) {\n return function (s) {\n return s.startsWith(searchString, position);\n };\n};\nexports.startsWith = startsWith;\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true)\n * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false)\n *\n * @since 2.11.0\n */\nvar endsWith = function (searchString, position) {\n return function (s) {\n return s.endsWith(searchString, position);\n };\n};\nexports.endsWith = endsWith;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._partition = exports._filterMap = exports._filter = exports._reduceRight = exports._foldMap = exports._reduce = exports._mapWithIndex = exports._map = exports.difference = exports.intersection = exports.union = exports.elem = exports.some = exports.every = exports.fromEntries = exports.toEntries = exports.fromFoldableMap = exports.fromFoldable = exports.filterWithIndex = exports.filterMapWithIndex = exports.partitionWithIndex = exports.partitionMapWithIndex = exports.wilt = exports.wither = exports.sequence = exports.traverse = exports.traverseWithIndex = exports.singleton = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.map = exports.mapWithIndex = exports.empty = exports.lookup = exports.isSubrecord = exports.pop = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.has = exports.upsertAt = exports.toUnfoldable = exports.toReadonlyArray = exports.collect = exports.keys = exports.isEmpty = exports.size = exports.toRecord = exports.fromRecord = void 0;\nexports.readonlyRecord = exports.hasOwnProperty = exports.insertAt = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getWitherable = exports.getTraversableWithIndex = exports.getTraversable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.getFoldableWithIndex = exports.getFoldable = exports.FunctorWithIndex = exports.flap = exports.Functor = exports.getMonoid = exports.getEq = exports.getShow = exports.URI = exports.separate = exports.compact = exports.reduceRight = exports.foldMap = exports.reduce = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports._sequence = exports._traverse = exports._filterWithIndex = exports._filterMapWithIndex = exports._partitionWithIndex = exports._partitionMapWithIndex = exports._reduceRightWithIndex = exports._foldMapWithIndex = exports._reduceWithIndex = exports._partitionMap = void 0;\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Separated_1 = require(\"./Separated\");\nvar S = __importStar(require(\"./string\"));\nvar Witherable_1 = require(\"./Witherable\");\n/**\n * Builds a `ReadonlyRecord` by copying a `Record`.\n *\n * @example\n * import { ReadonlyRecord, fromRecord } from \"fp-ts/ReadonlyRecord\"\n *\n * const x: Record = { a: 1, b: 2 };\n * const y: ReadonlyRecord = fromRecord(x);\n * assert.deepStrictEqual(x,y);\n * // `y.a = 5` gives compiler error\n *\n * @category conversions\n * @since 2.5.0\n */\nvar fromRecord = function (r) { return Object.assign({}, r); };\nexports.fromRecord = fromRecord;\n/**\n * Builds a mutable `Record` from a `ReadonlyRecord`.\n *\n * @example\n * import { ReadonlyRecord, toRecord } from \"fp-ts/ReadonlyRecord\"\n *\n * const x: ReadonlyRecord = { a: 1, b: 2 };\n * const y: Record = toRecord(x);\n * assert.deepStrictEqual(x,y);\n * y.a = 5; // it's ok, y is mutable\n *\n * @category conversions\n * @since 2.5.0\n */\nvar toRecord = function (r) { return Object.assign({}, r); };\nexports.toRecord = toRecord;\n/**\n * Calculate the number of key/value pairs in a `ReadonlyRecord`,\n *\n * @example\n * import { size } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(size({ a: true, b: 2, c: \"three\" }), 3);\n *\n * @since 2.5.0\n */\nvar size = function (r) { return Object.keys(r).length; };\nexports.size = size;\n/**\n * Test whether a `ReadonlyRecord` is empty.\n *\n * @example\n * import { isEmpty } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(isEmpty({}), true);\n * assert.deepStrictEqual(isEmpty({ a: 3 }), false);\n * @since 2.5.0\n */\nvar isEmpty = function (r) {\n for (var k in r) {\n if (_.has.call(r, k)) {\n return false;\n }\n }\n return true;\n};\nexports.isEmpty = isEmpty;\nvar keys_ = function (O) {\n return function (r) {\n return Object.keys(r).sort(O.compare);\n };\n};\n/**\n * @since 2.5.0\n */\nexports.keys = keys_(S.Ord);\nfunction collect(O) {\n if (typeof O === 'function') {\n return collect(S.Ord)(O);\n }\n var keysO = keys_(O);\n return function (f) {\n return function (r) {\n var out = [];\n for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) {\n var key = _a[_i];\n out.push(f(key, r[key]));\n }\n return out;\n };\n };\n}\nexports.collect = collect;\n/**\n * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`.\n *\n * @example\n * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord'\n *\n * const x = { c: 3, a: \"foo\", b: false };\n * assert.deepStrictEqual(toReadonlyArray(x), [\n * [\"a\", \"foo\"],\n * [\"b\", false],\n * [\"c\", 3],\n * ]);\n *\n * @category conversions\n * @since 2.5.0\n */\nexports.toReadonlyArray = \n/*#__PURE__*/ collect(S.Ord)(function (k, a) { return [k, a]; });\nfunction toUnfoldable(U) {\n return function (r) {\n var sas = (0, exports.toReadonlyArray)(r);\n var len = sas.length;\n return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); });\n };\n}\nexports.toUnfoldable = toUnfoldable;\n/**\n * Insert or replace a key/value pair in a `ReadonlyRecord`.\n *\n * @example\n * import { upsertAt } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(upsertAt(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(upsertAt(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n *\n * @since 2.10.0\n */\nvar upsertAt = function (k, a) {\n return function (r) {\n if (_.has.call(r, k) && r[k] === a) {\n return r;\n }\n var out = Object.assign({}, r);\n out[k] = a;\n return out;\n };\n};\nexports.upsertAt = upsertAt;\n/**\n * Test whether or not a key exists in a `ReadonlyRecord`.\n *\n * Note. This function is not pipeable because is a `Refinement`.\n *\n * @example\n * import { has } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(has(\"a\", { a: 1, b: 2 }), true);\n * assert.deepStrictEqual(has(\"c\", { a: 1, b: 2 }), false);\n *\n * @since 2.10.0\n */\nvar has = function (k, r) { return _.has.call(r, k); };\nexports.has = has;\nfunction deleteAt(k) {\n return function (r) {\n if (!_.has.call(r, k)) {\n return r;\n }\n var out = Object.assign({}, r);\n delete out[k];\n return out;\n };\n}\nexports.deleteAt = deleteAt;\n/**\n * Replace a key/value pair in a `ReadonlyRecord`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(updateAt(\"a\", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(updateAt(\"c\", 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.5.0\n */\nvar updateAt = function (k, a) {\n return function (r) {\n if (!(0, exports.has)(k, r)) {\n return _.none;\n }\n if (r[k] === a) {\n return _.some(r);\n }\n var out = Object.assign({}, r);\n out[k] = a;\n return _.some(out);\n };\n};\nexports.updateAt = updateAt;\n/**\n * Applies a mapping function to one specific key/value pair in a `ReadonlyRecord`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(modifyAt(\"a\", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(modifyAt(\"c\", (x: number) => x * 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.5.0\n */\nvar modifyAt = function (k, f) {\n return function (r) {\n if (!(0, exports.has)(k, r)) {\n return _.none;\n }\n var next = f(r[k]);\n if (next === r[k]) {\n return _.some(r);\n }\n var out = Object.assign({}, r);\n out[k] = next;\n return _.some(out);\n };\n};\nexports.modifyAt = modifyAt;\nfunction pop(k) {\n var deleteAtk = deleteAt(k);\n return function (r) {\n var oa = lookup(k, r);\n return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]);\n };\n}\nexports.pop = pop;\nfunction isSubrecord(E) {\n return function (me, that) {\n if (that === undefined) {\n var isSubrecordE_1 = isSubrecord(E);\n return function (that) { return isSubrecordE_1(that, me); };\n }\n for (var k in me) {\n if (!_.has.call(that, k) || !E.equals(me[k], that[k])) {\n return false;\n }\n }\n return true;\n };\n}\nexports.isSubrecord = isSubrecord;\nfunction lookup(k, r) {\n if (r === undefined) {\n return function (r) { return lookup(k, r); };\n }\n return _.has.call(r, k) ? _.some(r[k]) : _.none;\n}\nexports.lookup = lookup;\n/**\n * @since 2.5.0\n */\nexports.empty = {};\nfunction mapWithIndex(f) {\n return function (r) {\n var out = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n out[k] = f(k, r[k]);\n }\n }\n return out;\n };\n}\nexports.mapWithIndex = mapWithIndex;\nfunction map(f) {\n return mapWithIndex(function (_, a) { return f(a); });\n}\nexports.map = map;\nfunction reduceWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 2) {\n return reduceWithIndex(S.Ord).apply(void 0, args);\n }\n var keysO = keys_(args[0]);\n return function (b, f) { return function (fa) {\n var out = b;\n var ks = keysO(fa);\n var len = ks.length;\n for (var i = 0; i < len; i++) {\n var k = ks[i];\n out = f(k, out, fa[k]);\n }\n return out;\n }; };\n}\nexports.reduceWithIndex = reduceWithIndex;\nfunction foldMapWithIndex(O) {\n if ('compare' in O) {\n var keysO_1 = keys_(O);\n return function (M) {\n return function (f) {\n return function (fa) {\n var out = M.empty;\n var ks = keysO_1(fa);\n var len = ks.length;\n for (var i = 0; i < len; i++) {\n var k = ks[i];\n out = M.concat(out, f(k, fa[k]));\n }\n return out;\n };\n };\n };\n }\n return foldMapWithIndex(S.Ord)(O);\n}\nexports.foldMapWithIndex = foldMapWithIndex;\nfunction reduceRightWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 2) {\n return reduceRightWithIndex(S.Ord).apply(void 0, args);\n }\n var keysO = keys_(args[0]);\n return function (b, f) { return function (fa) {\n var out = b;\n var ks = keysO(fa);\n var len = ks.length;\n for (var i = len - 1; i >= 0; i--) {\n var k = ks[i];\n out = f(k, fa[k], out);\n }\n return out;\n }; };\n}\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * Create a `ReadonlyRecord` with one key/value pair.\n *\n * @example\n * import { singleton } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(singleton(\"a\", 1), { a: 1 });\n *\n * @category constructors\n * @since 2.5.0\n */\nvar singleton = function (k, a) {\n var _a;\n return (_a = {}, _a[k] = a, _a);\n};\nexports.singleton = singleton;\nfunction traverseWithIndex(F) {\n var traverseWithIndexOF = _traverseWithIndex(S.Ord)(F);\n return function (f) { return function (ta) { return traverseWithIndexOF(ta, f); }; };\n}\nexports.traverseWithIndex = traverseWithIndex;\nfunction traverse(F) {\n var traverseOF = (0, exports._traverse)(S.Ord)(F);\n return function (f) { return function (ta) { return traverseOF(ta, f); }; };\n}\nexports.traverse = traverse;\nfunction sequence(F) {\n return (0, exports._sequence)(S.Ord)(F);\n}\nexports.sequence = sequence;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.compact); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.separate); }; };\n};\nexports.wilt = wilt;\nfunction partitionMapWithIndex(f) {\n return function (r) {\n var left = {};\n var right = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var e = f(k, r[k]);\n switch (e._tag) {\n case 'Left':\n left[k] = e.left;\n break;\n case 'Right':\n right[k] = e.right;\n break;\n }\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n}\nexports.partitionMapWithIndex = partitionMapWithIndex;\nfunction partitionWithIndex(predicateWithIndex) {\n return function (r) {\n var left = {};\n var right = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var a = r[k];\n if (predicateWithIndex(k, a)) {\n right[k] = a;\n }\n else {\n left[k] = a;\n }\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n}\nexports.partitionWithIndex = partitionWithIndex;\nfunction filterMapWithIndex(f) {\n return function (r) {\n var out = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var ob = f(k, r[k]);\n if (_.isSome(ob)) {\n out[k] = ob.value;\n }\n }\n }\n return out;\n };\n}\nexports.filterMapWithIndex = filterMapWithIndex;\nfunction filterWithIndex(predicateWithIndex) {\n return function (fa) {\n var out = {};\n var changed = false;\n for (var key in fa) {\n if (_.has.call(fa, key)) {\n var a = fa[key];\n if (predicateWithIndex(key, a)) {\n out[key] = a;\n }\n else {\n changed = true;\n }\n }\n }\n return changed ? out : fa;\n };\n}\nexports.filterWithIndex = filterWithIndex;\nfunction fromFoldable(M, F) {\n var fromFoldableMapM = fromFoldableMap(M, F);\n return function (fka) { return fromFoldableMapM(fka, function_1.identity); };\n}\nexports.fromFoldable = fromFoldable;\nfunction fromFoldableMap(M, F) {\n return function (ta, f) {\n return F.reduce(ta, {}, function (r, a) {\n var _a = f(a), k = _a[0], b = _a[1];\n r[k] = _.has.call(r, k) ? M.concat(r[k], b) : b;\n return r;\n });\n };\n}\nexports.fromFoldableMap = fromFoldableMap;\n/**\n * Alias of [`toReadonlyArray`](#toreadonlyarray).\n *\n * @example\n * import { toEntries } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]])\n *\n * @category conversions\n * @since 2.12.0\n */\nexports.toEntries = exports.toReadonlyArray;\n/**\n * Converts a `ReadonlyArray` of `[key, value]` tuples into a `ReadonlyRecord`.\n *\n * @example\n * import { fromEntries } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 })\n *\n * @since 2.12.0\n * @category conversions\n */\nvar fromEntries = function (fa) {\n var out = {};\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var a = fa_1[_i];\n out[a[0]] = a[1];\n }\n return out;\n};\nexports.fromEntries = fromEntries;\nfunction every(predicate) {\n return function (r) {\n for (var k in r) {\n if (!predicate(r[k])) {\n return false;\n }\n }\n return true;\n };\n}\nexports.every = every;\n/**\n * Test if at least one value in a `ReadonlyRecord` satisfies the predicate.\n *\n * @example\n * import { some } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true);\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false);\n *\n * @since 2.5.0\n */\nfunction some(predicate) {\n return function (r) {\n for (var k in r) {\n if (predicate(r[k])) {\n return true;\n }\n }\n return false;\n };\n}\nexports.some = some;\nfunction elem(E) {\n return function (a, fa) {\n if (fa === undefined) {\n var elemE_1 = elem(E);\n return function (fa) { return elemE_1(a, fa); };\n }\n for (var k in fa) {\n if (E.equals(fa[k], a)) {\n return true;\n }\n }\n return false;\n };\n}\nexports.elem = elem;\n/**\n * Union of two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the\n * entries of the two inputs.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements with the same key.\n *\n * @example\n * import { union } from \"fp-ts/ReadonlyRecord\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 });\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar union = function (M) {\n return function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return second;\n }\n if ((0, exports.isEmpty)(second)) {\n return first;\n }\n var out = {};\n for (var k in first) {\n if ((0, exports.has)(k, second)) {\n out[k] = M.concat(first[k], second[k]);\n }\n else {\n out[k] = first[k];\n }\n }\n for (var k in second) {\n if (!(0, exports.has)(k, out)) {\n out[k] = second[k];\n }\n }\n return out;\n };\n };\n};\nexports.union = union;\n/**\n * Intersection of two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the\n * entries of the two inputswith the same key.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements.\n *\n * @example\n * import { intersection } from \"fp-ts/ReadonlyRecord\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4});\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1});\n *\n * @since 2.11.0\n */\nvar intersection = function (M) {\n return function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) {\n return exports.empty;\n }\n var out = {};\n for (var k in first) {\n if ((0, exports.has)(k, second)) {\n out[k] = M.concat(first[k], second[k]);\n }\n }\n return out;\n };\n };\n};\nexports.intersection = intersection;\n/**\n * Difference between two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the\n * entries of the two inputs, removing the entries with the same\n * key in both inputs.\n *\n * @example\n * import { difference } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar difference = function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return second;\n }\n if ((0, exports.isEmpty)(second)) {\n return first;\n }\n var out = {};\n for (var k in first) {\n if (!(0, exports.has)(k, second)) {\n out[k] = first[k];\n }\n }\n for (var k in second) {\n if (!(0, exports.has)(k, first)) {\n out[k] = second[k];\n }\n }\n return out;\n };\n};\nexports.difference = difference;\n/** @internal */\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, map(f)); };\nexports._map = _map;\n/** @internal */\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, mapWithIndex(f)); };\nexports._mapWithIndex = _mapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _reduce = function (O) {\n var reduceO = reduce(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceO(b, f)); };\n};\nexports._reduce = _reduce;\n/** @internal */\nvar _foldMap = function (O) { return function (M) {\n var foldMapM = foldMap(O)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n}; };\nexports._foldMap = _foldMap;\n/** @internal */\n/* istanbul ignore next */\nvar _reduceRight = function (O) {\n var reduceRightO = reduceRight(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightO(b, f)); };\n};\nexports._reduceRight = _reduceRight;\n/** @internal */\n/* istanbul ignore next */\nvar _filter = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.filter)(predicate));\n};\nexports._filter = _filter;\n/** @internal */\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\nexports._filterMap = _filterMap;\n/** @internal */\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); };\nexports._partition = _partition;\n/** @internal */\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\nexports._partitionMap = _partitionMap;\n/** @internal */\n/* istanbul ignore next */\nvar _reduceWithIndex = function (O) {\n var reduceWithIndexO = reduceWithIndex(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceWithIndexO(b, f)); };\n};\nexports._reduceWithIndex = _reduceWithIndex;\n/** @internal */\nvar _foldMapWithIndex = function (O) {\n var foldMapWithIndexO = foldMapWithIndex(O);\n return function (M) {\n var foldMapWithIndexM = foldMapWithIndexO(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n };\n};\nexports._foldMapWithIndex = _foldMapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (O) {\n var reduceRightWithIndexO = reduceRightWithIndex(O);\n return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightWithIndexO(b, f)); };\n};\nexports._reduceRightWithIndex = _reduceRightWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, partitionMapWithIndex(f)); };\nexports._partitionMapWithIndex = _partitionMapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _partitionWithIndex = function (fa, predicateWithIndex) {\n return (0, function_1.pipe)(fa, partitionWithIndex(predicateWithIndex));\n};\nexports._partitionWithIndex = _partitionWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, filterMapWithIndex(f)); };\nexports._filterMapWithIndex = _filterMapWithIndex;\n/** @internal */\n/* istanbul ignore next */\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, filterWithIndex(predicateWithIndex)); };\nexports._filterWithIndex = _filterWithIndex;\n/** @internal */\nvar _traverse = function (O) {\n var traverseWithIndexO = _traverseWithIndex(O);\n return function (F) {\n var traverseWithIndexOF = traverseWithIndexO(F);\n return function (ta, f) { return traverseWithIndexOF(ta, (0, function_1.flow)(function_1.SK, f)); };\n };\n};\nexports._traverse = _traverse;\n/** @internal */\nvar _sequence = function (O) {\n var traverseO = (0, exports._traverse)(O);\n return function (F) {\n var traverseOF = traverseO(F);\n return function (ta) { return traverseOF(ta, function_1.identity); };\n };\n};\nexports._sequence = _sequence;\nvar _traverseWithIndex = function (O) {\n return function (F) {\n var keysO = keys_(O);\n return function (ta, f) {\n var ks = keysO(ta);\n if (ks.length === 0) {\n return F.of(exports.empty);\n }\n var fr = F.of({});\n var _loop_1 = function (key) {\n fr = F.ap(F.map(fr, function (r) { return function (b) {\n var _a;\n return Object.assign({}, r, (_a = {}, _a[key] = b, _a));\n }; }), f(key, ta[key]));\n };\n for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {\n var key = ks_1[_i];\n _loop_1(key);\n }\n return fr;\n };\n };\n};\n/**\n * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a\n * value that satisfies the provided predicate.\n *\n * @example\n * import { filter } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo\",\n * b: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar filter = function (predicate) {\n return filterWithIndex(function (_, a) { return predicate(a); });\n};\nexports.filter = filter;\n/**\n * Maps a `ReadonlyRecord` with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from \"fp-ts/ReadonlyRecord\"\n * import { option } from \"fp-ts\"\n *\n * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none\n * assert.deepStrictEqual(filterMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar filterMap = function (f) { return filterMapWithIndex(function (_, a) { return f(a); }); };\nexports.filterMap = filterMap;\n/**\n * Partition a `ReadonlyRecord` into two parts according to a `Predicate`.\n *\n * @example\n * import { partition } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left:{\n * c: \"verylong\"\n * },\n * right: {\n * a: \"foo\",\n * b: \"bar\",\n * },\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar partition = function (predicate) {\n return partitionWithIndex(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * Maps a `ReadonlyRecord` with a function returning an `Either` and\n * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMap } from \"fp-ts/ReadonlyRecord\"\n * import { either } from \"fp-ts\"\n *\n * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`));\n * assert.deepStrictEqual(partitionMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left: {\n * c: \"verylong is not short\",\n * },\n * right: {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * },\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMap = function (f) {\n return partitionMapWithIndex(function (_, a) { return f(a); });\n};\nexports.partitionMap = partitionMap;\nfunction reduce() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 1) {\n var reduceWithIndexO_1 = reduceWithIndex(args[0]);\n return function (b, f) { return reduceWithIndexO_1(b, function (_, b, a) { return f(b, a); }); };\n }\n return reduce(S.Ord).apply(void 0, args);\n}\nexports.reduce = reduce;\nfunction foldMap(O) {\n if ('compare' in O) {\n var foldMapWithIndexO_1 = foldMapWithIndex(O);\n return function (M) {\n var foldMapWithIndexM = foldMapWithIndexO_1(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n };\n }\n return foldMap(S.Ord)(O);\n}\nexports.foldMap = foldMap;\nfunction reduceRight() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 1) {\n var reduceRightWithIndexO_1 = reduceRightWithIndex(args[0]);\n return function (b, f) { return reduceRightWithIndexO_1(b, function (_, b, a) { return f(b, a); }); };\n }\n return reduceRight(S.Ord).apply(void 0, args);\n}\nexports.reduceRight = reduceRight;\n/**\n * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and\n * keeping the `Some` values.\n *\n * @example\n * import { compact } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(compact({ a: option.some(\"foo\"), b: option.none, c: option.some(\"bar\") }), {\n * a: \"foo\",\n * c: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.5.0\n */\nvar compact = function (r) {\n var out = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var oa = r[k];\n if (_.isSome(oa)) {\n out[k] = oa.value;\n }\n }\n }\n return out;\n};\nexports.compact = compact;\n/**\n * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s.\n *\n * @example\n * import { separate } from 'fp-ts/ReadonlyRecord'\n * import { either } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * separate({ a: either.right(\"foo\"), b: either.left(\"bar\"), c: either.right(\"baz\") }),\n * {\n * right: {\n * a: \"foo\",\n * c: \"baz\",\n * },\n * left: {\n * b: \"bar\",\n * },\n * }\n * );\n *\n * @category filtering\n * @since 2.5.0\n */\nvar separate = function (r) {\n var left = {};\n var right = {};\n for (var k in r) {\n if (_.has.call(r, k)) {\n var e = r[k];\n if (_.isLeft(e)) {\n left[k] = e.left;\n }\n else {\n right[k] = e.right;\n }\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyRecord';\nfunction getShow(O) {\n if ('compare' in O) {\n return function (S) { return ({\n show: function (r) {\n var elements = collect(O)(function (k, a) { return \"\".concat(JSON.stringify(k), \": \").concat(S.show(a)); })(r).join(', ');\n return elements === '' ? '{}' : \"{ \".concat(elements, \" }\");\n }\n }); };\n }\n return getShow(S.Ord)(O);\n}\nexports.getShow = getShow;\nfunction getEq(E) {\n var isSubrecordE = isSubrecord(E);\n return (0, Eq_1.fromEquals)(function (x, y) { return isSubrecordE(x)(y) && isSubrecordE(y)(x); });\n}\nexports.getEq = getEq;\nfunction getMonoid(S) {\n return {\n concat: function (first, second) {\n if ((0, exports.isEmpty)(first)) {\n return second;\n }\n if ((0, exports.isEmpty)(second)) {\n return first;\n }\n var r = Object.assign({}, first);\n for (var k in second) {\n if (_.has.call(second, k)) {\n r[k] = _.has.call(first, k) ? S.concat(first[k], second[k]) : second[k];\n }\n }\n return r;\n },\n empty: exports.empty\n };\n}\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: exports._map\n};\n/**\n * Takes a value and a `ReadonlyRecord` of functions and returns a\n * `ReadonlyRecord` by applying each function to the input value.\n *\n * @example\n * import { flap } from \"fp-ts/ReadonlyRecord\"\n *\n * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` };\n * assert.deepStrictEqual(flap(3)(fab), {\n * x: \"3 times 2\",\n * y: \"6\",\n * });\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex\n};\n/**\n * Produces a `Foldable` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldable = function (O) { return ({\n URI: exports.URI,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O)\n}); };\nexports.getFoldable = getFoldable;\n/**\n * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldableWithIndex = function (O) { return ({\n URI: exports.URI,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n reduceWithIndex: (0, exports._reduceWithIndex)(O),\n foldMapWithIndex: (0, exports._foldMapWithIndex)(O),\n reduceRightWithIndex: (0, exports._reduceRightWithIndex)(O)\n}); };\nexports.getFoldableWithIndex = getFoldableWithIndex;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: exports._map,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n filterMapWithIndex: exports._filterMapWithIndex,\n filterWithIndex: exports._filterWithIndex,\n partitionMapWithIndex: exports._partitionMapWithIndex,\n partitionWithIndex: exports._partitionWithIndex\n};\n/**\n * Produces a `Traversable` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversable = function (O) { return ({\n URI: exports.URI,\n map: exports._map,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n traverse: (0, exports._traverse)(O),\n sequence: (0, exports._sequence)(O)\n}); };\nexports.getTraversable = getTraversable;\n/**\n * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversableWithIndex = function (O) { return ({\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n reduceWithIndex: (0, exports._reduceWithIndex)(O),\n foldMapWithIndex: (0, exports._foldMapWithIndex)(O),\n reduceRightWithIndex: (0, exports._reduceRightWithIndex)(O),\n traverse: (0, exports._traverse)(O),\n sequence: (0, exports._sequence)(O),\n traverseWithIndex: _traverseWithIndex(O)\n}); };\nexports.getTraversableWithIndex = getTraversableWithIndex;\n/**\n * @category filtering\n * @since 2.11.0\n */\nvar getWitherable = function (O) {\n var T = (0, exports.getTraversable)(O);\n return {\n URI: exports.URI,\n map: exports._map,\n reduce: (0, exports._reduce)(O),\n foldMap: (0, exports._foldMap)(O),\n reduceRight: (0, exports._reduceRight)(O),\n traverse: T.traverse,\n sequence: T.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n wither: (0, Witherable_1.witherDefault)(T, exports.Compactable),\n wilt: (0, Witherable_1.wiltDefault)(T, exports.Compactable)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `ReadonlyRecord` of the base type.\n * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by\n * `union`.\n *\n * @example\n * import { getUnionSemigroup, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sReadonlyRecord: Semigroup> = getUnionSemigroup(sNumber);\n * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (S) {\n var unionS = (0, exports.union)(S);\n return {\n concat: function (first, second) { return unionS(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Same as `getMonoid`.\n * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `ReadonlyRecord`s combining the\n * entries that have the same key with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord'\n *\n * const M = getUnionMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (S) { return ({\n concat: (0, exports.getUnionSemigroup)(S).concat,\n empty: exports.empty\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `ReadonlyRecord` of the base type.\n * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by\n * `intersection`.\n *\n * @example\n * import { getIntersectionSemigroup, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sReadonlyRecord: Semigroup> = getIntersectionSemigroup(sNumber);\n * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (S) {\n var intersectionS = (0, exports.intersection)(S);\n return {\n concat: function (first, second) { return intersectionS(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Produces a `Magma` with a `concat` function that combines\n * two `ReadonlyRecord`s by making the `difference`.\n *\n * @example\n * import { getDifferenceMagma, difference, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Magma } from \"fp-ts/Magma\"\n *\n * const r1 = { a: 3, c: 3 };\n * const r2 = { a: 1, b: 2 };\n * const m: Magma> = getDifferenceMagma();\n * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1));\n * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function () { return ({\n concat: function (first, second) { return (0, exports.difference)(second)(first); }\n}); };\nexports.getDifferenceMagma = getDifferenceMagma;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `getFoldable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord)\n};\n/**\n * Use `getFoldableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord)\n};\n/**\n * Use `getTraversable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Traversable = {\n URI: exports.URI,\n map: exports._map,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence\n};\n/**\n * Use `getTraversableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: exports._map,\n mapWithIndex: exports._mapWithIndex,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord)\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * Use `getWitherable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Witherable = {\n URI: exports.URI,\n map: exports._map,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Use [`upsertAt`](#upsertat) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.insertAt = exports.upsertAt;\nfunction hasOwnProperty(k, r) {\n return _.has.call(r === undefined ? this : r, k);\n}\nexports.hasOwnProperty = hasOwnProperty;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RR.Functor` instead of `RR.readonlyRecord`\n * (where `RR` is from `import RR from 'fp-ts/ReadonlyRecord'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyRecord = {\n URI: exports.URI,\n map: exports._map,\n reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord),\n foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord),\n reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord),\n traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: exports._filter,\n filterMap: exports._filterMap,\n partition: exports._partition,\n partitionMap: exports._partitionMap,\n mapWithIndex: exports._mapWithIndex,\n reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord),\n filterMapWithIndex: exports._filterMapWithIndex,\n filterWithIndex: exports._filterWithIndex,\n partitionMapWithIndex: exports._partitionMapWithIndex,\n partitionWithIndex: exports._partitionWithIndex,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord),\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getShow = exports.URI = exports.separate = exports.compact = exports.reduceRight = exports.foldMap = exports.reduce = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.difference = exports.intersection = exports.union = exports.elem = exports.some = exports.every = exports.fromFoldableMap = exports.fromEntries = exports.toEntries = exports.fromFoldable = exports.filterWithIndex = exports.filterMapWithIndex = exports.partitionWithIndex = exports.partitionMapWithIndex = exports.wilt = exports.wither = exports.sequence = exports.traverse = exports.traverseWithIndex = exports.singleton = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.map = exports.mapWithIndex = exports.lookup = exports.isSubrecord = exports.pop = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.has = exports.upsertAt = exports.toUnfoldable = exports.toArray = exports.collect = exports.keys = exports.isEmpty = exports.size = void 0;\nexports.record = exports.hasOwnProperty = exports.insertAt = exports.empty = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getWitherable = exports.getTraversableWithIndex = exports.getTraversable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.getFoldableWithIndex = exports.getFoldable = exports.FunctorWithIndex = exports.flap = exports.Functor = exports.getMonoid = exports.getEq = void 0;\nvar A = __importStar(require(\"./Array\"));\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar RR = __importStar(require(\"./ReadonlyRecord\"));\nvar Se = __importStar(require(\"./Semigroup\"));\nvar S = __importStar(require(\"./string\"));\nvar Witherable_1 = require(\"./Witherable\");\n// -------------------------------------------------------------------------------------\n// model\n// -------------------------------------------------------------------------------------\n/**\n * Calculate the number of key/value pairs in a `Record`.\n *\n * @example\n * import { size } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(size({ a: true, b: 2, c: \"three\" }), 3);\n *\n * @since 2.0.0\n */\nexports.size = RR.size;\n/**\n * Test whether a `Record` is empty.\n *\n * @example\n * import { isEmpty } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(isEmpty({}), true);\n * assert.deepStrictEqual(isEmpty({ a: 3 }), false);\n *\n * @since 2.0.0\n */\nexports.isEmpty = RR.isEmpty;\nvar keys_ = function (O) {\n return function (r) {\n return Object.keys(r).sort(O.compare);\n };\n};\n/**\n * The keys of a `Record`, sorted alphabetically.\n *\n * @example\n * import { keys } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), [\"a\", \"b\", \"c\"]);\n *\n * @since 2.0.0\n */\nexports.keys = keys_(S.Ord);\nfunction collect(O) {\n if (typeof O === 'function') {\n return collect(S.Ord)(O);\n }\n var keysO = keys_(O);\n return function (f) {\n return function (r) {\n var out = [];\n for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) {\n var key = _a[_i];\n out.push(f(key, r[key]));\n }\n return out;\n };\n };\n}\nexports.collect = collect;\n/**\n * Get a sorted `Array` of the key/value pairs contained in a `Record`.\n * Sorted alphabetically by key.\n *\n * @example\n * import { toArray } from 'fp-ts/Record'\n *\n * const x = { c: 3, a: \"foo\", b: false };\n * assert.deepStrictEqual(toArray(x), [\n * [\"a\", \"foo\"],\n * [\"b\", false],\n * [\"c\", 3],\n * ]);\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toArray = collect(S.Ord)(function (k, a) { return [\n k,\n a\n]; });\nfunction toUnfoldable(U) {\n return function (r) {\n var sas = (0, exports.toArray)(r);\n var len = sas.length;\n return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); });\n };\n}\nexports.toUnfoldable = toUnfoldable;\n/**\n * Insert or replace a key/value pair in a `Record`.\n *\n * @example\n * import { upsertAt } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(upsertAt(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(upsertAt(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n *\n * @since 2.10.0\n */\nexports.upsertAt = RR.upsertAt;\n/**\n * Test whether or not a key exists in a `Record`.\n *\n * Note. This function is not pipeable because is a `Refinement`.\n *\n * @example\n * import { has } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(has(\"a\", { a: 1, b: 2 }), true);\n * assert.deepStrictEqual(has(\"c\", { a: 1, b: 2 }), false);\n *\n * @since 2.10.0\n */\nexports.has = RR.has;\nfunction deleteAt(k) {\n return function (r) {\n if (!_.has.call(r, k)) {\n return r;\n }\n var out = Object.assign({}, r);\n delete out[k];\n return out;\n };\n}\nexports.deleteAt = deleteAt;\n/**\n * Replace a key/value pair in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { updateAt } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(updateAt(\"a\", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(updateAt(\"c\", 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.0.0\n */\nvar updateAt = function (k, a) {\n return (0, exports.modifyAt)(k, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * Applies a mapping function to one spcific key/value pair in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { modifyAt } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(modifyAt(\"a\", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(modifyAt(\"c\", (x: number) => x * 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.0.0\n */\nvar modifyAt = function (k, f) {\n return function (r) {\n if (!(0, exports.has)(k, r)) {\n return _.none;\n }\n var out = Object.assign({}, r);\n out[k] = f(r[k]);\n return _.some(out);\n };\n};\nexports.modifyAt = modifyAt;\nfunction pop(k) {\n var deleteAtk = deleteAt(k);\n return function (r) {\n var oa = (0, exports.lookup)(k, r);\n return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]);\n };\n}\nexports.pop = pop;\n// TODO: remove non-curried overloading in v3\n/**\n * Test whether one `Record` contains all of the keys and values\n * contained in another `Record`.\n *\n * @example\n * import { isSubrecord } from 'fp-ts/Record'\n * import { string } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", b: \"bar\", c: \"baz\" }),\n * true\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", c: \"baz\" }),\n * true\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", b: \"not-bar\", c: \"baz\" }),\n * false\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\" })({ a: \"foo\", b: \"bar\", c: \"baz\" }),\n * false\n * );\n *\n * @since 2.0.0\n */\nexports.isSubrecord = RR.isSubrecord;\n// TODO: remove non-curried overloading in v3\n/**\n * Lookup the value for a key in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing the value,\n * otherwise it returns `None`\n *\n * @example\n * import { lookup } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(lookup(\"b\")({ a: \"foo\", b: \"bar\" }), option.some(\"bar\"));\n * assert.deepStrictEqual(lookup(\"c\")({ a: \"foo\", b: \"bar\" }), option.none);\n *\n * @since 2.0.0\n */\nexports.lookup = RR.lookup;\n/**\n * Map a `Record` passing the key/value pairs to the iterating function.\n *\n * @example\n * import { mapWithIndex } from \"fp-ts/Record\";\n *\n * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`;\n * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: \"A-3\", b: \"B-5\" });\n *\n * @since 2.0.0\n */\nexports.mapWithIndex = RR.mapWithIndex;\n/**\n * Map a `Record` passing the values to the iterating function.\n *\n * @example\n * import { map } from \"fp-ts/Record\";\n *\n * const f = (n: number) => `-${n}-`;\n * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: \"-3-\", b: \"-5-\" });\n *\n * @category mapping\n * @since 2.0.0\n */\nexports.map = RR.map;\nfunction reduceWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduceWithIndex(args[0]) : RR.reduceWithIndex(S.Ord).apply(void 0, args);\n}\nexports.reduceWithIndex = reduceWithIndex;\nfunction foldMapWithIndex(O) {\n return 'compare' in O ? RR.foldMapWithIndex(O) : RR.foldMapWithIndex(S.Ord)(O);\n}\nexports.foldMapWithIndex = foldMapWithIndex;\nfunction reduceRightWithIndex() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduceRightWithIndex(args[0]) : RR.reduceRightWithIndex(S.Ord).apply(void 0, args);\n}\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * Create a `Record` with one key/value pair.\n *\n * @example\n * import { singleton } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(singleton(\"a\", 1), { a: 1 });\n *\n * @since 2.0.0\n */\nexports.singleton = RR.singleton;\nfunction traverseWithIndex(F) {\n return RR.traverseWithIndex(F);\n}\nexports.traverseWithIndex = traverseWithIndex;\nfunction traverse(F) {\n return RR.traverse(F);\n}\nexports.traverse = traverse;\nfunction sequence(F) {\n return RR.sequence(F);\n}\nexports.sequence = sequence;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.compact); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var traverseF = traverse(F);\n return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.separate); }; };\n};\nexports.wilt = wilt;\n/**\n * Maps a `Record` with a function returning an `Either` and\n * partitions the resulting `Record` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMapWithIndex } from \"fp-ts/Record\"\n * import { either } from \"fp-ts\"\n *\n * const f = (key: string, a: number) =>\n * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`);\n * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), {\n * left: {\n * a: \"a is < 0 (-1)\",\n * },\n * right: {\n * b: \"b is >= 0 (2)\",\n * c: \"c is >= 0 (123)\",\n * },\n * });\n *\n * @since 2.0.0\n */\nexports.partitionMapWithIndex = RR.partitionMapWithIndex;\nfunction partitionWithIndex(predicateWithIndex) {\n return RR.partitionWithIndex(predicateWithIndex);\n}\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * Maps a `Record` with an iterating function that takes key and value and\n * returns an `Option`, keeping only the `Some` values and discarding `None`s.\n *\n * @example\n * import { filterMapWithIndex } from \"fp-ts/Record\"\n * import { option } from \"fp-ts\"\n *\n * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none);\n * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), {\n * b: \"b2\",\n * c: \"c3\",\n * });\n *\n * @since 2.0.0\n */\nexports.filterMapWithIndex = RR.filterMapWithIndex;\nfunction filterWithIndex(predicateWithIndex) {\n return RR.filterWithIndex(predicateWithIndex);\n}\nexports.filterWithIndex = filterWithIndex;\nfunction fromFoldable(M, F) {\n return RR.fromFoldable(M, F);\n}\nexports.fromFoldable = fromFoldable;\n/**\n * Alias of [`toArray`](#toArray).\n *\n * @example\n * import { toEntries } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]])\n *\n * @since 2.12.0\n * @category conversions\n */\nexports.toEntries = exports.toArray;\n/**\n * Converts an `Array` of `[key, value]` tuples into a `Record`.\n *\n * @example\n * import { fromEntries } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 })\n *\n * @since 2.12.0\n * @category conversions\n */\nvar fromEntries = function (fa) { return fromFoldable(Se.last(), A.Foldable)(fa); };\nexports.fromEntries = fromEntries;\nfunction fromFoldableMap(M, F) {\n return RR.fromFoldableMap(M, F);\n}\nexports.fromFoldableMap = fromFoldableMap;\n/**\n * Test if every value in a `Record` satisfies the predicate.\n *\n * @example\n * import { every } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true);\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false);\n *\n * @since 2.0.0\n */\nexports.every = RR.every;\n/**\n * Test if at least one value in a `Record` satisfies the predicate.\n *\n * @example\n * import { some } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true);\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false);\n *\n * @since 2.0.0\n */\nexports.some = RR.some;\n// TODO: remove non-curried overloading in v3\n/**\n * Given an `Eq` checks if a `Record` contains an entry with\n * value equal to a provided value.\n *\n * @example\n * import { elem } from \"fp-ts/Record\"\n * import { number } from \"fp-ts\"\n *\n * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true);\n * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false);\n *\n * @since 2.0.0\n */\nexports.elem = RR.elem;\n/**\n * Union of two `Record`s.\n * Takes two `Record`s and produces a `Record` combining all the\n * entries of the two inputs.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements with the same key.\n *\n * @example\n * import { union } from \"fp-ts/Record\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 });\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar union = function (M) {\n var unionM = RR.union(M);\n return function (second) { return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return __assign({}, second);\n }\n if ((0, exports.isEmpty)(second)) {\n return __assign({}, first);\n }\n return unionM(second)(first);\n }; };\n};\nexports.union = union;\n/**\n * Intersection of two `Record`s.\n * Takes two `Record`s and produces a `Record` combining only the\n * entries of the two inputswith the same key.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements.\n *\n * @example\n * import { intersection } from \"fp-ts/Record\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4});\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1});\n *\n * @since 2.11.0\n */\nvar intersection = function (M) {\n return function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) {\n return {};\n }\n return RR.intersection(M)(second)(first);\n };\n };\n};\nexports.intersection = intersection;\n/**\n * Difference between two `Record`s.\n * Takes two `Record`s and produces a `Record` composed by the\n * entries of the two inputs, removing the entries with the same\n * key in both inputs.\n *\n * @example\n * import { difference } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 });\n *\n * @since 2.11.0\n */\nvar difference = function (second) {\n return function (first) {\n if ((0, exports.isEmpty)(first)) {\n return __assign({}, second);\n }\n if ((0, exports.isEmpty)(second)) {\n return __assign({}, first);\n }\n return RR.difference(second)(first);\n };\n};\nexports.difference = difference;\nvar _map = RR._map;\nvar _mapWithIndex = RR._mapWithIndex;\nvar _reduce = RR._reduce;\nvar _foldMap = RR._foldMap;\nvar _reduceRight = RR._reduceRight;\nvar _filter = RR._filter;\nvar _filterMap = RR._filterMap;\nvar _partition = RR._partition;\nvar _partitionMap = RR._partitionMap;\nvar _reduceWithIndex = RR._reduceWithIndex;\nvar _foldMapWithIndex = RR._foldMapWithIndex;\nvar _reduceRightWithIndex = RR._reduceRightWithIndex;\nvar _partitionMapWithIndex = RR._partitionMapWithIndex;\nvar _partitionWithIndex = RR._partitionWithIndex;\nvar _filterMapWithIndex = RR._filterMapWithIndex;\nvar _filterWithIndex = RR._filterWithIndex;\nvar _traverse = RR._traverse;\nvar _sequence = RR._sequence;\nvar _traverseWithIndex = function (O) {\n return function (F) {\n var keysO = keys_(O);\n return function (ta, f) {\n var ks = keysO(ta);\n if (ks.length === 0) {\n return F.of({});\n }\n var fr = F.of({});\n var _loop_1 = function (key) {\n fr = F.ap(F.map(fr, function (r) { return function (b) {\n r[key] = b;\n return r;\n }; }), f(key, ta[key]));\n };\n for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {\n var key = ks_1[_i];\n _loop_1(key);\n }\n return fr;\n };\n };\n};\n/**\n * Given a `Predicate`, it produces a new `Record` keeping only the entries with a\n * value that satisfies the provided predicate.\n *\n * @example\n * import { filter } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo\",\n * b: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filter = RR.filter;\n/**\n * Maps a `Record` with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from \"fp-ts/Record\"\n * import { option } from \"fp-ts\"\n *\n * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none\n * assert.deepStrictEqual(filterMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filterMap = RR.filterMap;\n/**\n * Partition a `Record` into two parts according to a `Predicate`.\n *\n * @example\n * import { partition } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left:{\n * c: \"verylong\"\n * },\n * right: {\n * a: \"foo\",\n * b: \"bar\",\n * },\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.partition = RR.partition;\n/**\n * Maps a `Record` with a function returning an `Either` and\n * partitions the resulting `Record` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMap } from \"fp-ts/Record\"\n * import { either } from \"fp-ts\"\n *\n * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`));\n * assert.deepStrictEqual(partitionMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left: {\n * c: \"verylong is not short\",\n * },\n * right: {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * },\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.partitionMap = RR.partitionMap;\nfunction reduce() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduce(args[0]) : RR.reduce(S.Ord).apply(void 0, args);\n}\nexports.reduce = reduce;\nfunction foldMap(O) {\n return 'compare' in O ? RR.foldMap(O) : RR.foldMap(S.Ord)(O);\n}\nexports.foldMap = foldMap;\nfunction reduceRight() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? RR.reduceRight(args[0]) : RR.reduceRight(S.Ord).apply(void 0, args);\n}\nexports.reduceRight = reduceRight;\n/**\n * Compact a `Record` of `Option`s discarding the `None` values and\n * keeping the `Some` values.\n *\n * @example\n * import { compact } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(compact({ a: option.some(\"foo\"), b: option.none, c: option.some(\"bar\") }), {\n * a: \"foo\",\n * c: \"bar\",\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = RR.compact;\n/**\n * Separate a `Record` of `Either`s into `Left`s and `Right`s.\n *\n * @example\n * import { separate } from 'fp-ts/Record'\n * import { either } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * separate({ a: either.right(\"foo\"), b: either.left(\"bar\"), c: either.right(\"baz\") }),\n * {\n * right: {\n * a: \"foo\",\n * c: \"baz\",\n * },\n * left: {\n * b: \"bar\",\n * },\n * }\n * );\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.separate = RR.separate;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Record';\nfunction getShow(O) {\n return 'compare' in O ? RR.getShow(O) : RR.getShow(S.Ord)(O);\n}\nexports.getShow = getShow;\n/**\n * Given an `Eq` for the base type, it produces an `Eq`\n * for a `Record` of that base type.\n *\n * @example\n * import { getEq } from \"fp-ts/Record\";\n * import { string } from \"fp-ts\";\n * import { Eq } from \"fp-ts/Eq\";\n *\n * const eq: Eq> = getEq(string.Eq);\n * assert.deepStrictEqual(eq.equals({ a: \"foo\" }, { b: \"bar\" }), false);\n * assert.deepStrictEqual(eq.equals({ a: \"foo\" }, { a: \"foo\" }), true);\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RR.getEq;\n/**\n * Returns a `Monoid` instance for `Record`s, given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `Record`s comining the\n * overlapping entries with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getMonoid } from 'fp-ts/Record'\n *\n * const M = getMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getMonoid = RR.getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Takes a value and a `Record` of functions and returns a\n * `Record` by applying each function to the input value.\n *\n * @example\n * import { flap } from \"fp-ts/Record\"\n *\n * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` };\n * assert.deepStrictEqual(flap(3)(fab), {\n * x: \"3 times 2\",\n * y: \"6\",\n * });\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * Produces a `Foldable` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldable = function (O) { return ({\n URI: exports.URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O)\n}); };\nexports.getFoldable = getFoldable;\n/**\n * Produces a `FoldableWithIndex1` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category folding\n * @since 2.11.0\n */\nvar getFoldableWithIndex = function (O) { return ({\n URI: exports.URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O)\n}); };\nexports.getFoldableWithIndex = getFoldableWithIndex;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex\n};\n/**\n * Produces a `Traversable` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversable = function (O) { return ({\n URI: exports.URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: _traverse(O),\n sequence: _sequence(O)\n}); };\nexports.getTraversable = getTraversable;\n/**\n * Produces a `TraversableWithIndex` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar getTraversableWithIndex = function (O) { return ({\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O),\n traverse: _traverse(O),\n sequence: _sequence(O),\n traverseWithIndex: _traverseWithIndex(O)\n}); };\nexports.getTraversableWithIndex = getTraversableWithIndex;\n/**\n * @category filtering\n * @since 2.11.0\n */\nvar getWitherable = function (O) {\n var T = (0, exports.getTraversable)(O);\n return {\n URI: exports.URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: T.traverse,\n sequence: T.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: (0, Witherable_1.witherDefault)(T, exports.Compactable),\n wilt: (0, Witherable_1.wiltDefault)(T, exports.Compactable)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `Record` of the base type.\n * The resulting `Semigroup` concatenates two `Record`s by\n * `union`.\n *\n * @example\n * import { getUnionSemigroup } from \"fp-ts/Record\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sRecord: Semigroup> = getUnionSemigroup(sNumber);\n * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (S) {\n var unionS = (0, exports.union)(S);\n return {\n concat: function (first, second) { return unionS(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Same as `getMonoid`.\n * Returns a `Monoid` instance for `Record`s given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `Record`s combining the\n * entries that have the same key with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getUnionMonoid } from 'fp-ts/Record'\n *\n * const M = getUnionMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (S) { return ({\n concat: (0, exports.getUnionSemigroup)(S).concat,\n empty: {}\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `Record` of the base type.\n * The resulting `Semigroup` concatenates two `Record`s by\n * `intersection`.\n *\n * @example\n * import { getIntersectionSemigroup } from \"fp-ts/Record\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sRecord: Semigroup> = getIntersectionSemigroup(sNumber);\n * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (S) {\n var intersectionS = (0, exports.intersection)(S);\n return {\n concat: function (first, second) { return intersectionS(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Produces a `Magma` with a `concat` function that combines\n * two `Record`s by making the `difference`.\n *\n * @example\n * import { getDifferenceMagma, difference } from \"fp-ts/Record\"\n * import { Magma } from \"fp-ts/Magma\"\n *\n * const r1 = { a: 3, c: 3 };\n * const r2 = { a: 1, b: 2 };\n * const m: Magma> = getDifferenceMagma();\n * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1));\n * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 });\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function () { return ({\n concat: function (first, second) { return (0, exports.difference)(second)(first); }\n}); };\nexports.getDifferenceMagma = getDifferenceMagma;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `getFoldable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord)\n};\n/**\n * Use `getFoldableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord)\n};\n/**\n * Use `getTraversable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence\n};\n/**\n * Use the `getTraversableWithIndex` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord)\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * Use `getWitherable` instead.\n *\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Use a new `{}` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.empty = {};\n/**\n * Use [`upsertAt`](#upsertat) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.insertAt = exports.upsertAt;\n/**\n * Use [`has`](#has) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.hasOwnProperty = RR.hasOwnProperty;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.record`\n * (where `R` is from `import R from 'fp-ts/Record'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.record = {\n URI: exports.URI,\n map: _map,\n reduce: /*#__PURE__*/ _reduce(S.Ord),\n foldMap: /*#__PURE__*/ _foldMap(S.Ord),\n reduceRight: /*#__PURE__*/ _reduceRight(S.Ord),\n traverse: /*#__PURE__*/ _traverse(S.Ord),\n sequence: sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord),\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord),\n wither: _wither,\n wilt: _wilt\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pipe = exports.pipeable = exports.compose = exports.promap = exports.partitionMapWithIndex = exports.partitionWithIndex = exports.filterMapWithIndex = exports.filterWithIndex = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.alt = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.reduceRight = exports.foldMap = exports.reduce = exports.extend = exports.mapLeft = exports.bimap = exports.chain = exports.ap = exports.mapWithIndex = exports.contramap = exports.map = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nfunction map(F) {\n return function (f) { return function (fa) { return F.map(fa, f); }; };\n}\nexports.map = map;\nfunction contramap(F) {\n return function (f) { return function (fa) { return F.contramap(fa, f); }; };\n}\nexports.contramap = contramap;\nfunction mapWithIndex(F) {\n return function (f) { return function (fa) { return F.mapWithIndex(fa, f); }; };\n}\nexports.mapWithIndex = mapWithIndex;\nfunction ap(F) {\n return function (fa) { return function (fab) { return F.ap(fab, fa); }; };\n}\nexports.ap = ap;\nfunction chain(F) {\n return function (f) { return function (fa) { return F.chain(fa, f); }; };\n}\nexports.chain = chain;\nfunction bimap(F) {\n return function (f, g) { return function (fea) { return F.bimap(fea, f, g); }; };\n}\nexports.bimap = bimap;\nfunction mapLeft(F) {\n return function (f) { return function (fea) { return F.mapLeft(fea, f); }; };\n}\nexports.mapLeft = mapLeft;\nfunction extend(F) {\n return function (f) { return function (wa) { return F.extend(wa, f); }; };\n}\nexports.extend = extend;\nfunction reduce(F) {\n return function (b, f) { return function (fa) { return F.reduce(fa, b, f); }; };\n}\nexports.reduce = reduce;\nfunction foldMap(F) {\n return function (M) {\n var foldMapM = F.foldMap(M);\n return function (f) { return function (fa) { return foldMapM(fa, f); }; };\n };\n}\nexports.foldMap = foldMap;\nfunction reduceRight(F) {\n return function (b, f) { return function (fa) { return F.reduceRight(fa, b, f); }; };\n}\nexports.reduceRight = reduceRight;\nfunction reduceWithIndex(F) {\n return function (b, f) { return function (fa) { return F.reduceWithIndex(fa, b, f); }; };\n}\nexports.reduceWithIndex = reduceWithIndex;\nfunction foldMapWithIndex(F) {\n return function (M) {\n var foldMapWithIndexM = F.foldMapWithIndex(M);\n return function (f) { return function (fa) { return foldMapWithIndexM(fa, f); }; };\n };\n}\nexports.foldMapWithIndex = foldMapWithIndex;\nfunction reduceRightWithIndex(F) {\n return function (b, f) { return function (fa) { return F.reduceRightWithIndex(fa, b, f); }; };\n}\nexports.reduceRightWithIndex = reduceRightWithIndex;\nfunction alt(F) {\n return function (that) { return function (fa) { return F.alt(fa, that); }; };\n}\nexports.alt = alt;\nfunction filter(F) {\n return function (predicate) { return function (fa) { return F.filter(fa, predicate); }; };\n}\nexports.filter = filter;\nfunction filterMap(F) {\n return function (f) { return function (fa) { return F.filterMap(fa, f); }; };\n}\nexports.filterMap = filterMap;\nfunction partition(F) {\n return function (f) { return function (fa) { return F.partition(fa, f); }; };\n}\nexports.partition = partition;\nfunction partitionMap(F) {\n return function (f) { return function (fa) { return F.partitionMap(fa, f); }; };\n}\nexports.partitionMap = partitionMap;\nfunction filterWithIndex(F) {\n return function (predicate) { return function (fa) { return F.filterWithIndex(fa, predicate); }; };\n}\nexports.filterWithIndex = filterWithIndex;\nfunction filterMapWithIndex(F) {\n return function (f) { return function (fa) { return F.filterMapWithIndex(fa, f); }; };\n}\nexports.filterMapWithIndex = filterMapWithIndex;\nfunction partitionWithIndex(F) {\n return function (f) { return function (fa) { return F.partitionWithIndex(fa, f); }; };\n}\nexports.partitionWithIndex = partitionWithIndex;\nfunction partitionMapWithIndex(F) {\n return function (f) { return function (fa) { return F.partitionMapWithIndex(fa, f); }; };\n}\nexports.partitionMapWithIndex = partitionMapWithIndex;\nfunction promap(F) {\n return function (f, g) { return function (fbc) { return F.promap(fbc, f, g); }; };\n}\nexports.promap = promap;\nfunction compose(F) {\n return function (ea) { return function (ab) { return F.compose(ab, ea); }; };\n}\nexports.compose = compose;\nvar isFunctor = function (I) { return typeof I.map === 'function'; };\nvar isContravariant = function (I) { return typeof I.contramap === 'function'; };\nvar isFunctorWithIndex = function (I) { return typeof I.mapWithIndex === 'function'; };\nvar isApply = function (I) { return typeof I.ap === 'function'; };\nvar isChain = function (I) { return typeof I.chain === 'function'; };\nvar isBifunctor = function (I) { return typeof I.bimap === 'function'; };\nvar isExtend = function (I) { return typeof I.extend === 'function'; };\nvar isFoldable = function (I) { return typeof I.reduce === 'function'; };\nvar isFoldableWithIndex = function (I) { return typeof I.reduceWithIndex === 'function'; };\nvar isAlt = function (I) { return typeof I.alt === 'function'; };\nvar isCompactable = function (I) { return typeof I.compact === 'function'; };\nvar isFilterable = function (I) { return typeof I.filter === 'function'; };\nvar isFilterableWithIndex = function (I) {\n return typeof I.filterWithIndex === 'function';\n};\nvar isProfunctor = function (I) { return typeof I.promap === 'function'; };\nvar isSemigroupoid = function (I) { return typeof I.compose === 'function'; };\nvar isMonadThrow = function (I) { return typeof I.throwError === 'function'; };\n/** @deprecated */\nfunction pipeable(I) {\n var r = {};\n if (isFunctor(I)) {\n r.map = map(I);\n }\n if (isContravariant(I)) {\n r.contramap = contramap(I);\n }\n if (isFunctorWithIndex(I)) {\n r.mapWithIndex = mapWithIndex(I);\n }\n if (isApply(I)) {\n r.ap = ap(I);\n r.apFirst = (0, Apply_1.apFirst)(I);\n r.apSecond = (0, Apply_1.apSecond)(I);\n }\n if (isChain(I)) {\n r.chain = chain(I);\n r.chainFirst = (0, Chain_1.chainFirst)(I);\n r.flatten = r.chain(function_1.identity);\n }\n if (isBifunctor(I)) {\n r.bimap = bimap(I);\n r.mapLeft = mapLeft(I);\n }\n if (isExtend(I)) {\n r.extend = extend(I);\n r.duplicate = r.extend(function_1.identity);\n }\n if (isFoldable(I)) {\n r.reduce = reduce(I);\n r.foldMap = foldMap(I);\n r.reduceRight = reduceRight(I);\n }\n if (isFoldableWithIndex(I)) {\n r.reduceWithIndex = reduceWithIndex(I);\n r.foldMapWithIndex = foldMapWithIndex(I);\n r.reduceRightWithIndex = reduceRightWithIndex(I);\n }\n if (isAlt(I)) {\n r.alt = alt(I);\n }\n if (isCompactable(I)) {\n r.compact = I.compact;\n r.separate = I.separate;\n }\n if (isFilterable(I)) {\n r.filter = filter(I);\n r.filterMap = filterMap(I);\n r.partition = partition(I);\n r.partitionMap = partitionMap(I);\n }\n if (isFilterableWithIndex(I)) {\n r.filterWithIndex = filterWithIndex(I);\n r.filterMapWithIndex = filterMapWithIndex(I);\n r.partitionWithIndex = partitionWithIndex(I);\n r.partitionMapWithIndex = partitionMapWithIndex(I);\n }\n if (isProfunctor(I)) {\n r.promap = promap(I);\n }\n if (isSemigroupoid(I)) {\n r.compose = compose(I);\n }\n if (isMonadThrow(I)) {\n var fromOption = function (onNone) { return function (ma) {\n return ma._tag === 'None' ? I.throwError(onNone()) : I.of(ma.value);\n }; };\n var fromEither = function (ma) {\n return ma._tag === 'Left' ? I.throwError(ma.left) : I.of(ma.right);\n };\n var fromPredicate = function (predicate, onFalse) {\n return function (a) {\n return predicate(a) ? I.of(a) : I.throwError(onFalse(a));\n };\n };\n var filterOrElse = function (predicate, onFalse) {\n return function (ma) {\n return I.chain(ma, function (a) { return (predicate(a) ? I.of(a) : I.throwError(onFalse(a))); });\n };\n };\n r.fromOption = fromOption;\n r.fromEither = fromEither;\n r.fromPredicate = fromPredicate;\n r.filterOrElse = filterOrElse;\n }\n return r;\n}\nexports.pipeable = pipeable;\n/**\n * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#pipe) from `function` module instead.\n *\n * @since 2.0.0\n * @deprecated\n */\nexports.pipe = function_1.pipe;\n", "/**\n * @since 1.1.0\n */\nimport {Predicate} from 'fp-ts/function'\n\n/**\n * @since 1.1.0\n */\n/* eslint-disable @typescript-eslint/array-type */\nexport const takeUntil =\n (predicate: Predicate) =>\n (as: ReadonlyArray): ReadonlyArray => {\n const init = []\n\n // eslint-disable-next-line unicorn/no-for-loop\n for (let i = 0; i < as.length; i++) {\n init[i] = as[i]\n if (predicate(as[i])) {\n return init\n }\n }\n\n return init\n }\n/* eslint-enable @typescript-eslint/array-type */\n", "/**\n * An [io-ts Reporter](https://gcanti.github.io/io-ts/modules/Reporter.ts.html#reporter-interface).\n *\n * @example\n *\n * import * as t from 'io-ts';\n * import Reporter from 'io-ts-reporters';\n *\n * const User = t.interface({ name: t.string });\n *\n * assert.deepEqual(\n * Reporter.report(User.decode({ nam: 'Jane' })),\n * ['Expecting string at name but instead got: undefined'],\n * )\n * assert.deepEqual( Reporter.report(User.decode({ name: 'Jane' })), [])\n *\n * @since 1.2.0\n */\nimport * as A from 'fp-ts/Array'\nimport * as E from 'fp-ts/Either'\nimport * as NEA from 'fp-ts/NonEmptyArray'\nimport * as O from 'fp-ts/Option'\nimport * as R from 'fp-ts/Record'\nimport {pipe} from 'fp-ts/pipeable'\nimport * as t from 'io-ts'\nimport {Reporter} from 'io-ts/lib/Reporter'\n\nimport {takeUntil} from './utils'\n\nconst isUnionType = ({type}: t.ContextEntry) => type instanceof t.UnionType\n\nconst jsToString = (value: t.mixed) =>\n value === undefined ? 'undefined' : JSON.stringify(value)\n\nconst keyPath = (ctx: t.Context) =>\n // The context entry with an empty key is the original\n // type (\"default context\"), not a type error.\n ctx\n .map((c) => c.key)\n .filter(Boolean)\n .join('.')\n\n// The actual error is last in context\nconst getErrorFromCtx = (validation: t.ValidationError) =>\n // https://github.com/gcanti/fp-ts/pull/544/files\n A.last(validation.context as t.ContextEntry[])\n\nconst getValidationContext = (validation: t.ValidationError) =>\n // https://github.com/gcanti/fp-ts/pull/544/files\n validation.context as t.ContextEntry[]\n\n/**\n * @category internals\n * @since 1.2.1\n */\nexport const TYPE_MAX_LEN = 160 // Two lines of 80-col text\nconst truncateType = (type: string, options: ReporterOptions = {}): string => {\n const {truncateLongTypes = true} = options\n\n if (truncateLongTypes && type.length > TYPE_MAX_LEN) {\n return `${type.slice(0, TYPE_MAX_LEN - 3)}...`\n }\n\n return type\n}\n\nconst errorMessageSimple = (\n expectedType: string,\n path: string,\n error: t.ValidationError,\n options?: ReporterOptions,\n) =>\n // https://github.com/elm-lang/core/blob/18c9e84e975ed22649888bfad15d1efdb0128ab2/src/Native/Json.js#L199\n [\n `Expecting ${truncateType(expectedType, options)}`,\n path === '' ? '' : `at ${path}`,\n `but instead got: ${jsToString(error.value)}`,\n error.message ? `(${error.message})` : '',\n ]\n .filter(Boolean)\n .join(' ')\n\nconst errorMessageUnion = (\n expectedTypes: string[],\n path: string,\n value: unknown,\n options?: ReporterOptions,\n) =>\n // https://github.com/elm-lang/core/blob/18c9e84e975ed22649888bfad15d1efdb0128ab2/src/Native/Json.js#L199\n [\n 'Expecting one of:\\n',\n expectedTypes\n .map((type) => ` ${truncateType(type, options)}`)\n .join('\\n'),\n path === '' ? '\\n' : `\\nat ${path} `,\n `but instead got: ${jsToString(value)}`,\n ]\n .filter(Boolean)\n .join('')\n\n// Find the union type in the list of ContextEntry\n// The next ContextEntry should be the type of this branch of the union\nconst findExpectedType = (ctx: t.ContextEntry[]) =>\n pipe(\n ctx,\n A.findIndex(isUnionType),\n O.chain((n) => A.lookup(n + 1, ctx)),\n )\n\nconst formatValidationErrorOfUnion = (\n path: string,\n errors: NEA.NonEmptyArray,\n options?: ReporterOptions,\n) => {\n const expectedTypes = pipe(\n errors,\n A.map(getValidationContext),\n A.map(findExpectedType),\n A.compact,\n )\n\n const value = pipe(\n expectedTypes,\n A.head,\n O.map((v) => v.actual),\n O.getOrElse((): unknown => undefined),\n )\n\n const expected = expectedTypes.map(({type}) => type.name)\n\n return expected.length > 0\n ? O.some(errorMessageUnion(expected, path, value, options))\n : O.none\n}\n\nconst formatValidationCommonError = (\n path: string,\n error: t.ValidationError,\n options?: ReporterOptions,\n) =>\n pipe(\n error,\n getErrorFromCtx,\n O.map((errorContext) =>\n errorMessageSimple(errorContext.type.name, path, error, options),\n ),\n )\n\nconst groupByKey = NEA.groupBy((error: t.ValidationError) =>\n pipe(error.context, takeUntil(isUnionType), keyPath),\n)\n\nconst format = (\n path: string,\n errors: NEA.NonEmptyArray,\n options?: ReporterOptions,\n) =>\n NEA.tail(errors).length > 0\n ? formatValidationErrorOfUnion(path, errors, options)\n : formatValidationCommonError(path, NEA.head(errors), options)\n\n/**\n * Format a single validation error.\n *\n * @category formatters\n * @since 1.0.0\n */\nexport const formatValidationError = (\n error: t.ValidationError,\n options?: ReporterOptions,\n) => formatValidationCommonError(keyPath(error.context), error, options)\n\n/**\n * Format validation errors (`t.Errors`).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import * as t from 'io-ts'\n * import { formatValidationErrors } from 'io-ts-reporters'\n *\n * const result = t.string.decode(123)\n *\n * assert.deepEqual(\n * E.mapLeft(formatValidationErrors)(result),\n * E.left(['Expecting string but instead got: 123'])\n * )\n *\n * @category formatters\n * @since 1.2.0\n */\nexport const formatValidationErrors = (\n errors: t.Errors,\n options?: ReporterOptions,\n) =>\n pipe(\n errors,\n groupByKey,\n R.mapWithIndex((path, errors) => format(path, errors, options)),\n R.compact,\n R.toArray,\n A.map(([_key, error]) => error),\n )\n\n/**\n * @category formatters\n * @since 1.2.2\n */\nexport interface ReporterOptions {\n truncateLongTypes?: boolean\n}\n\n/**\n * Deprecated, use the default export instead.\n *\n * @category deprecated\n * @deprecated\n * @since 1.0.0\n */\nexport const reporter = (\n validation: t.Validation,\n options?: ReporterOptions,\n) =>\n pipe(\n validation,\n E.mapLeft((errors) => formatValidationErrors(errors, options)),\n E.fold(\n (errors) => errors,\n () => [],\n ),\n )\n\ninterface PrettyReporter extends Reporter {\n report: (\n validation: t.Validation,\n options?: ReporterOptions,\n ) => string[]\n}\n\nconst prettyReporter: PrettyReporter = {report: reporter}\nexport default prettyReporter\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryCache = void 0;\nclass InMemoryCache {\n constructor() {\n this.cache = new Map();\n this.set = async (namespace, key, value) => {\n if (value !== null) {\n this.cache.set(namespace + '$$' + key, value);\n }\n else {\n this.cache.delete(namespace + '$$' + key);\n }\n };\n this.get = async (namespace, key) => {\n let res = this.cache.get(namespace + '$$' + key);\n if (res !== undefined) {\n return res;\n }\n else {\n return null;\n }\n };\n }\n}\nexports.InMemoryCache = InMemoryCache;\n", "\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array and returns Promise>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n\n var cacheKey = this._cacheKeyFn(key); // If caching and there is a cache-hit, return cached Promise.\n\n\n if (cacheMap) {\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n };\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize && (!existingBatch.cacheHits || existingBatch.cacheHits.length < loader._maxBatchSize)) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise = loader._batchLoadFn(batch.keys); // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array and returns Promise>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array and returns Promise>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array and returns Promise>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var value = values[i];\n\n if (value instanceof Error) {\n batch.callbacks[i].reject(value);\n } else {\n batch.callbacks[i].resolve(value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;", "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n", "module.exports = {\n \"version\": \"0.25.0\"\n};", "'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", "{\n \"name\": \"ton\",\n \"version\": \"13.4.1\",\n \"repository\": \"https://github.com/ton-core/ton.git\",\n \"author\": \"Whales Corp. \",\n \"license\": \"MIT\",\n \"main\": \"dist/index.js\",\n \"files\": [\n \"dist\"\n ],\n \"scripts\": {\n \"docs\": \"rm -fr docs && typedoc src/index.ts\",\n \"build\": \"rm -fr dist && tsc --declaration\",\n \"test\": \"jest --verbose --runInBand\",\n \"release\": \"yarn build && yarn release-it --npm.yarn1\"\n },\n \"devDependencies\": {\n \"@release-it/keep-a-changelog\": \"^3.1.0\",\n \"@types/jest\": \"^27.0.1\",\n \"@types/node\": \"^16.7.10\",\n \"buffer\": \"^6.0.3\",\n \"expect\": \"^27.1.0\",\n \"jest\": \"^27.1.0\",\n \"jest-mock\": \"^27.1.0\",\n \"karma\": \"^6.3.4\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-jasmine\": \"^4.0.1\",\n \"karma-typescript\": \"^5.5.2\",\n \"karma-webpack\": \"^5.0.0\",\n \"prando\": \"^6.0.1\",\n \"release-it\": \"^15.5.1\",\n \"ton-core\": \"^0.48.0\",\n \"ton-crypto\": \"3.2.0\",\n \"ton-emulator\": \"^2.1.1\",\n \"ts-jest\": \"^27.0.5\",\n \"ts-loader\": \"^9.2.5\",\n \"ts-node\": \"^10.7.0\",\n \"typedoc\": \"^0.23.24\",\n \"typescript\": \"^4.4.2\",\n \"webpack\": \"^5.51.2\"\n },\n \"dependencies\": {\n \"axios\": \"^0.25.0\",\n \"dataloader\": \"^2.0.0\",\n \"fp-ts\": \"^2.11.1\",\n \"io-ts\": \"^2.2.16\",\n \"io-ts-reporters\": \"^2.0.0\",\n \"symbol.inspect\": \"1.0.1\",\n \"teslabot\": \"^1.3.0\"\n },\n \"peerDependencies\": {\n \"ton-core\": \">=0.48.0\",\n \"ton-crypto\": \">=3.2.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n },\n \"release-it\": {\n \"github\": {\n \"release\": true\n },\n \"plugins\": {\n \"@release-it/keep-a-changelog\": {\n \"filename\": \"CHANGELOG.md\"\n }\n }\n },\n \"packageManager\": \"yarn@3.4.1\"\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpApi = void 0;\nconst t = __importStar(require(\"io-ts\"));\nconst Either_1 = require(\"fp-ts/lib/Either\");\nconst io_ts_reporters_1 = __importDefault(require(\"io-ts-reporters\"));\nconst TonCache_1 = require(\"./TonCache\");\nconst dataloader_1 = __importDefault(require(\"dataloader\"));\nconst axios_1 = __importDefault(require(\"axios\"));\nconst version = require('../../../package.json').version;\nconst blockIdExt = t.type({\n '@type': t.literal('ton.blockIdExt'),\n workchain: t.number,\n shard: t.string,\n seqno: t.number,\n root_hash: t.string,\n file_hash: t.string\n});\nconst addressInformation = t.type({\n balance: t.union([t.number, t.string]),\n state: t.union([t.literal('active'), t.literal('uninitialized'), t.literal('frozen')]),\n data: t.string,\n code: t.string,\n last_transaction_id: t.type({\n '@type': t.literal('internal.transactionId'),\n lt: t.string,\n hash: t.string\n }),\n block_id: blockIdExt,\n sync_utime: t.number\n});\nconst bocResponse = t.type({\n '@type': t.literal('ok')\n});\nconst feeResponse = t.type({\n '@type': t.literal('query.fees'),\n source_fees: t.type({\n '@type': t.literal('fees'),\n in_fwd_fee: t.number,\n storage_fee: t.number,\n gas_fee: t.number,\n fwd_fee: t.number\n })\n});\nconst callGetMethod = t.type({\n gas_used: t.number,\n exit_code: t.number,\n stack: t.array(t.unknown)\n});\nconst messageData = t.union([\n t.type({\n '@type': t.literal('msg.dataRaw'),\n 'body': t.string\n }),\n t.type({\n '@type': t.literal('msg.dataText'),\n 'text': t.string\n }),\n t.type({\n '@type': t.literal('msg.dataDecryptedText'),\n 'text': t.string\n }),\n t.type({\n '@type': t.literal('msg.dataEncryptedText'),\n 'text': t.string\n })\n]);\nconst message = t.type({\n source: t.string,\n destination: t.string,\n value: t.string,\n fwd_fee: t.string,\n ihr_fee: t.string,\n created_lt: t.string,\n body_hash: t.string,\n msg_data: messageData\n});\nconst transaction = t.type({\n data: t.string,\n utime: t.number,\n transaction_id: t.type({\n lt: t.string,\n hash: t.string\n }),\n fee: t.string,\n storage_fee: t.string,\n other_fee: t.string,\n in_msg: t.union([t.undefined, message]),\n out_msgs: t.array(message)\n});\nconst getTransactions = t.array(transaction);\nconst getMasterchain = t.type({\n state_root_hash: t.string,\n last: blockIdExt,\n init: blockIdExt\n});\nconst getShards = t.type({\n shards: t.array(blockIdExt)\n});\nconst blockShortTxt = t.type({\n '@type': t.literal('blocks.shortTxId'),\n mode: t.number,\n account: t.string,\n lt: t.string,\n hash: t.string\n});\nconst getBlockTransactions = t.type({\n id: blockIdExt,\n req_count: t.number,\n incomplete: t.boolean,\n transactions: t.array(blockShortTxt)\n});\nclass TypedCache {\n constructor(namespace, cache, codec, keyEncoder) {\n this.namespace = namespace;\n this.cache = cache;\n this.codec = codec;\n this.keyEncoder = keyEncoder;\n }\n async get(key) {\n let ex = await this.cache.get(this.namespace, this.keyEncoder(key));\n if (ex) {\n let decoded = this.codec.decode(JSON.parse(ex));\n if ((0, Either_1.isRight)(decoded)) {\n return decoded.right;\n }\n }\n return null;\n }\n async set(key, value) {\n if (value !== null) {\n await this.cache.set(this.namespace, this.keyEncoder(key), JSON.stringify(value));\n }\n else {\n await this.cache.set(this.namespace, this.keyEncoder(key), null);\n }\n }\n}\nclass HttpApi {\n constructor(endpoint, parameters) {\n this.endpoint = endpoint;\n this.cache = new TonCache_1.InMemoryCache();\n this.parameters = {\n timeout: parameters?.timeout || 30000,\n apiKey: parameters?.apiKey\n };\n // Shard\n this.shardCache = new TypedCache('ton-shard', this.cache, t.array(blockIdExt), (src) => src + '');\n this.shardLoader = new dataloader_1.default(async (src) => {\n return await Promise.all(src.map(async (v) => {\n const cached = await this.shardCache.get(v);\n if (cached) {\n return cached;\n }\n let loaded = (await this.doCall('shards', { seqno: v }, getShards)).shards;\n await this.shardCache.set(v, loaded);\n return loaded;\n }));\n });\n // Shard Transactions\n this.shardTransactionsCache = new TypedCache('ton-shard-tx', this.cache, getBlockTransactions, (src) => src.workchain + ':' + src.shard + ':' + src.seqno);\n this.shardTransactionsLoader = new dataloader_1.default(async (src) => {\n return await Promise.all(src.map(async (v) => {\n const cached = await this.shardTransactionsCache.get(v);\n if (cached) {\n return cached;\n }\n let loaded = await this.doCall('getBlockTransactions', { workchain: v.workchain, seqno: v.seqno, shard: v.shard }, getBlockTransactions);\n await this.shardTransactionsCache.set(v, loaded);\n return loaded;\n }));\n }, { cacheKeyFn: (src) => src.workchain + ':' + src.shard + ':' + src.seqno });\n }\n getAddressInformation(address) {\n return this.doCall('getAddressInformation', { address: address.toString() }, addressInformation);\n }\n async getTransactions(address, opts) {\n const inclusive = opts.inclusive;\n delete opts.inclusive;\n // Convert hash\n let hash = undefined;\n if (opts.hash) {\n hash = Buffer.from(opts.hash, 'base64').toString('hex');\n }\n // Adjust limit\n let limit = opts.limit;\n if (opts.hash && opts.lt && inclusive !== true) {\n limit++;\n }\n // Do request\n let res = await this.doCall('getTransactions', { address: address.toString(), ...opts, limit, hash }, getTransactions);\n if (res.length > limit) {\n res = res.slice(0, limit);\n }\n // Adjust result\n if (opts.hash && opts.lt && inclusive !== true) {\n res.shift();\n return res;\n }\n else {\n return res;\n }\n }\n async getMasterchainInfo() {\n return await this.doCall('getMasterchainInfo', {}, getMasterchain);\n }\n async getShards(seqno) {\n return await this.shardLoader.load(seqno);\n }\n async getBlockTransactions(workchain, seqno, shard) {\n return await this.shardTransactionsLoader.load({ workchain, seqno, shard });\n }\n async getTransaction(address, lt, hash) {\n let convHash = Buffer.from(hash, 'base64').toString('hex');\n let res = await this.doCall('getTransactions', { address: address.toString(), lt, hash: convHash, limit: 1 }, getTransactions);\n let ex = res.find((v) => v.transaction_id.lt === lt && v.transaction_id.hash === hash);\n if (ex) {\n return ex;\n }\n else {\n return null;\n }\n }\n async callGetMethod(address, method, stack) {\n return await this.doCall('runGetMethod', { address: address.toString(), method, stack: serializeStack(stack) }, callGetMethod);\n }\n async sendBoc(body) {\n await this.doCall('sendBoc', { boc: body.toString('base64') }, bocResponse);\n }\n async estimateFee(address, args) {\n return await this.doCall('estimateFee', {\n address: address.toString(),\n body: args.body.toBoc().toString('base64'),\n 'init_data': args.initData ? args.initData.toBoc().toString('base64') : '',\n 'init_code': args.initCode ? args.initCode.toBoc().toString('base64') : '',\n ignore_chksig: args.ignoreSignature\n }, feeResponse);\n }\n async doCall(method, body, codec) {\n let headers = {\n 'Content-Type': 'application/json',\n 'X-Ton-Client-Version': version,\n };\n if (this.parameters.apiKey) {\n headers['X-API-Key'] = this.parameters.apiKey;\n }\n let res = await axios_1.default.post(this.endpoint, JSON.stringify({\n id: '1',\n jsonrpc: '2.0',\n method: method,\n params: body\n }), {\n headers,\n timeout: this.parameters.timeout,\n });\n if (res.status !== 200 || !res.data.ok) {\n throw Error('Received error: ' + JSON.stringify(res.data));\n }\n let decoded = codec.decode(res.data.result);\n if ((0, Either_1.isRight)(decoded)) {\n return decoded.right;\n }\n else {\n throw Error('Malformed response: ' + io_ts_reporters_1.default.report(decoded).join(', '));\n }\n }\n}\nexports.HttpApi = HttpApi;\nfunction serializeStack(src) {\n let stack = [];\n for (let s of src) {\n if (s.type === 'int') {\n stack.push(['num', s.value.toString()]);\n }\n else if (s.type === 'cell') {\n stack.push(['tvm.Cell', s.cell.toBoc().toString('base64')]);\n }\n else if (s.type === 'slice') {\n stack.push(['tvm.Slice', s.cell.toBoc().toString('base64')]);\n }\n else if (s.type === 'builder') {\n stack.push(['tvm.Builder', s.cell.toBoc().toString('base64')]);\n }\n else {\n throw Error('Unsupported stack item type: ' + s.type);\n }\n }\n return stack;\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TonClient_api;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TonClient = void 0;\nconst HttpApi_1 = require(\"./api/HttpApi\");\nconst ton_core_1 = require(\"ton-core\");\nclass TonClient {\n constructor(parameters) {\n _TonClient_api.set(this, void 0);\n this.parameters = {\n endpoint: parameters.endpoint\n };\n __classPrivateFieldSet(this, _TonClient_api, new HttpApi_1.HttpApi(this.parameters.endpoint, {\n timeout: parameters.timeout,\n apiKey: parameters.apiKey,\n adapter: parameters.httpAdapter\n }), \"f\");\n }\n /**\n * Get Address Balance\n * @param address address for balance check\n * @returns balance\n */\n async getBalance(address) {\n return (await this.getContractState(address)).balance;\n }\n /**\n * Invoke get method\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n */\n async runMethod(address, name, stack = []) {\n let res = await __classPrivateFieldGet(this, _TonClient_api, \"f\").callGetMethod(address, name, stack);\n if (res.exit_code !== 0) {\n throw Error('Unable to execute get method. Got exit_code: ' + res.exit_code);\n }\n return { gas_used: res.gas_used, stack: parseStack(res.stack) };\n }\n /**\n * Invoke get method\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n * @deprecated use runMethod instead\n */\n async callGetMethod(address, name, stack = []) {\n return this.runMethod(address, name, stack);\n }\n /**\n * Invoke get method that returns error code instead of throwing error\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n */\n async runMethodWithError(address, name, params = []) {\n let res = await __classPrivateFieldGet(this, _TonClient_api, \"f\").callGetMethod(address, name, params);\n return { gas_used: res.gas_used, stack: parseStack(res.stack), exit_code: res.exit_code };\n }\n /**\n * Invoke get method that returns error code instead of throwing error\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n * @deprecated use runMethodWithError instead\n */\n async callGetMethodWithError(address, name, stack = []) {\n return this.runMethodWithError(address, name, stack);\n }\n /**\n * Get transactions\n * @param address address\n */\n async getTransactions(address, opts) {\n // Fetch transactions\n let tx = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getTransactions(address, opts);\n let res = [];\n for (let r of tx) {\n res.push((0, ton_core_1.loadTransaction)(ton_core_1.Cell.fromBoc(Buffer.from(r.data, 'base64'))[0].beginParse()));\n }\n return res;\n }\n /**\n * Get transaction by it's id\n * @param address address\n * @param lt logical time\n * @param hash transaction hash\n * @returns transaction or null if not exist\n */\n async getTransaction(address, lt, hash) {\n let res = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getTransaction(address, lt, hash);\n if (res) {\n return (0, ton_core_1.loadTransaction)(ton_core_1.Cell.fromBoc(Buffer.from(res.data, 'base64'))[0].beginParse());\n }\n else {\n return null;\n }\n }\n /**\n * Fetch latest masterchain info\n * @returns masterchain info\n */\n async getMasterchainInfo() {\n let r = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getMasterchainInfo();\n return {\n workchain: r.init.workchain,\n shard: r.last.shard,\n initSeqno: r.init.seqno,\n latestSeqno: r.last.seqno\n };\n }\n /**\n * Fetch latest workchain shards\n * @param seqno masterchain seqno\n */\n async getWorkchainShards(seqno) {\n let r = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getShards(seqno);\n return r.map((m) => ({\n workchain: m.workchain,\n shard: m.shard,\n seqno: m.seqno\n }));\n }\n /**\n * Fetch transactions inf shards\n * @param workchain\n * @param seqno\n * @param shard\n */\n async getShardTransactions(workchain, seqno, shard) {\n let tx = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getBlockTransactions(workchain, seqno, shard);\n if (tx.incomplete) {\n throw Error('Unsupported');\n }\n return tx.transactions.map((v) => ({\n account: ton_core_1.Address.parseRaw(v.account),\n lt: v.lt,\n hash: v.hash\n }));\n }\n /**\n * Send message to a network\n * @param src source message\n */\n async sendMessage(src) {\n const boc = (0, ton_core_1.beginCell)()\n .store((0, ton_core_1.storeMessage)(src))\n .endCell()\n .toBoc();\n await __classPrivateFieldGet(this, _TonClient_api, \"f\").sendBoc(boc);\n }\n /**\n * Send file to a network\n * @param src source file\n */\n async sendFile(src) {\n await __classPrivateFieldGet(this, _TonClient_api, \"f\").sendBoc(src);\n }\n /**\n * Estimate fees for external message\n * @param address target address\n * @returns\n */\n async estimateExternalMessageFee(address, args) {\n return await __classPrivateFieldGet(this, _TonClient_api, \"f\").estimateFee(address, { body: args.body, initCode: args.initCode, initData: args.initData, ignoreSignature: args.ignoreSignature });\n }\n /**\n * Send external message to contract\n * @param contract contract to send message\n * @param src message body\n */\n async sendExternalMessage(contract, src) {\n if (await this.isContractDeployed(contract.address) || !contract.init) {\n const message = (0, ton_core_1.external)({\n to: contract.address,\n body: src\n });\n await this.sendMessage(message);\n }\n else {\n const message = (0, ton_core_1.external)({\n to: contract.address,\n init: { code: contract.init.code, data: contract.init.data },\n body: src\n });\n await this.sendMessage(message);\n }\n }\n /**\n * Check if contract is deployed\n * @param address addres to check\n * @returns true if contract is in active state\n */\n async isContractDeployed(address) {\n return (await this.getContractState(address)).state === 'active';\n }\n /**\n * Resolves contract state\n * @param address contract address\n */\n async getContractState(address) {\n let info = await __classPrivateFieldGet(this, _TonClient_api, \"f\").getAddressInformation(address);\n let balance = BigInt(info.balance);\n let state = info.state;\n return {\n balance,\n state,\n code: info.code !== '' ? Buffer.from(info.code, 'base64') : null,\n data: info.data !== '' ? Buffer.from(info.data, 'base64') : null,\n lastTransaction: info.last_transaction_id.lt !== '0' ? {\n lt: info.last_transaction_id.lt,\n hash: info.last_transaction_id.hash,\n } : null,\n blockId: {\n workchain: info.block_id.workchain,\n shard: info.block_id.shard,\n seqno: info.block_id.seqno\n },\n timestampt: info.sync_utime\n };\n }\n /**\n * Open contract\n * @param src source contract\n * @returns contract\n */\n open(src) {\n return (0, ton_core_1.openContract)(src, (args) => createProvider(this, args.address, args.init));\n }\n /**\n * Create a provider\n * @param address address\n * @param init optional init\n * @returns provider\n */\n provider(address, init) {\n return createProvider(this, address, init);\n }\n}\nexports.TonClient = TonClient;\n_TonClient_api = new WeakMap();\nfunction parseStack(src) {\n let stack = [];\n for (let s of src) {\n if (s[0] === 'num') {\n let val = s[1];\n if (val.startsWith('-')) {\n stack.push({ type: 'int', value: -BigInt(val.slice(1)) });\n }\n else {\n stack.push({ type: 'int', value: BigInt(val) });\n }\n }\n else if (s[0] === 'null') {\n stack.push({ type: 'null' });\n }\n else if (s[0] === 'cell') {\n stack.push({ type: 'cell', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] });\n }\n else if (s[0] === 'slice') {\n stack.push({ type: 'slice', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] });\n }\n else if (s[0] === 'builder') {\n stack.push({ type: 'builder', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] });\n }\n else {\n throw Error('Unsupported stack item type: ' + s[0]);\n }\n }\n return new ton_core_1.TupleReader(stack);\n}\nfunction createProvider(client, address, init) {\n return {\n async getState() {\n let state = await client.getContractState(address);\n let balance = state.balance;\n let last = state.lastTransaction ? { lt: BigInt(state.lastTransaction.lt), hash: Buffer.from(state.lastTransaction.hash, 'base64') } : null;\n let storage;\n if (state.state === 'active') {\n storage = {\n type: 'active',\n code: state.code ? state.code : null,\n data: state.data ? state.data : null,\n };\n }\n else if (state.state === 'uninitialized') {\n storage = {\n type: 'uninit',\n };\n }\n else if (state.state === 'frozen') {\n storage = {\n type: 'frozen',\n stateHash: Buffer.alloc(0),\n };\n }\n else {\n throw Error('Unsupported state');\n }\n return {\n balance,\n last,\n state: storage,\n };\n },\n async get(name, args) {\n let method = await client.callGetMethod(address, name, args);\n return { stack: method.stack };\n },\n async external(message) {\n //\n // Resolve init\n //\n let neededInit = null;\n if (init && !await client.isContractDeployed(address)) {\n neededInit = init;\n }\n //\n // Send package\n //\n const ext = (0, ton_core_1.external)({\n to: address,\n init: neededInit ? { code: neededInit.code, data: neededInit.data } : null,\n body: message\n });\n let boc = (0, ton_core_1.beginCell)()\n .store((0, ton_core_1.storeMessage)(ext))\n .endCell()\n .toBoc();\n await client.sendFile(boc);\n },\n async internal(via, message) {\n // Resolve init\n let neededInit = null;\n if (init && (!await client.isContractDeployed(address))) {\n neededInit = init;\n }\n // Resolve bounce\n let bounce = true;\n if (message.bounce !== null && message.bounce !== undefined) {\n bounce = message.bounce;\n }\n // Resolve value\n let value;\n if (typeof message.value === 'string') {\n value = (0, ton_core_1.toNano)(message.value);\n }\n else {\n value = message.value;\n }\n // Resolve body\n let body = null;\n if (typeof message.body === 'string') {\n body = (0, ton_core_1.comment)(message.body);\n }\n else if (message.body) {\n body = message.body;\n }\n // Send internal message\n await via.send({\n to: address,\n value,\n bounce,\n sendMode: message.sendMode,\n init: neededInit,\n body\n });\n }\n };\n}\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUrlSafe = void 0;\nfunction toUrlSafe(src) {\n while (src.indexOf('/') >= 0) {\n src = src.replace('/', '_');\n }\n while (src.indexOf('+') >= 0) {\n src = src.replace('+', '-');\n }\n while (src.indexOf('=') >= 0) {\n src = src.replace('=', '');\n }\n return src;\n}\nexports.toUrlSafe = toUrlSafe;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _TonClient4_endpoint, _TonClient4_timeout, _TonClient4_adapter;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TonClient4 = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst t = __importStar(require(\"io-ts\"));\nconst ton_core_1 = require(\"ton-core\");\nconst toUrlSafe_1 = require(\"../utils/toUrlSafe\");\nclass TonClient4 {\n constructor(args) {\n _TonClient4_endpoint.set(this, void 0);\n _TonClient4_timeout.set(this, void 0);\n _TonClient4_adapter.set(this, void 0);\n __classPrivateFieldSet(this, _TonClient4_endpoint, args.endpoint, \"f\");\n __classPrivateFieldSet(this, _TonClient4_timeout, args.timeout || 5000, \"f\");\n __classPrivateFieldSet(this, _TonClient4_adapter, args.httpAdapter, \"f\");\n }\n /**\n * Get Last Block\n * @returns last block info\n */\n async getLastBlock() {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/latest', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!lastBlockCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Get block info\n * @param seqno block sequence number\n * @returns block info\n */\n async getBlock(seqno) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!blockCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n if (!res.data.exist) {\n throw Error('Block is out of scope');\n }\n return res.data.block;\n }\n /**\n * Get block info by unix timestamp\n * @param ts unix timestamp\n * @returns block info\n */\n async getBlockByUtime(ts) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/utime/' + ts, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!blockCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n if (!res.data.exist) {\n throw Error('Block is out of scope');\n }\n return res.data.block;\n }\n /**\n * Get block info by unix timestamp\n * @param seqno block sequence number\n * @param address account address\n * @returns account info\n */\n async getAccount(seqno, address) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!accountCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Get account lite info (without code and data)\n * @param seqno block sequence number\n * @param address account address\n * @returns account lite info\n */\n async getAccountLite(seqno, address) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/lite', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!accountLiteCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Check if contract is deployed\n * @param address addres to check\n * @returns true if contract is in active state\n */\n async isContractDeployed(seqno, address) {\n let account = await this.getAccountLite(seqno, address);\n return account.account.state.type === 'active';\n }\n /**\n * Check if account was updated since\n * @param seqno block sequence number\n * @param address account address\n * @param lt account last transaction lt\n * @returns account change info\n */\n async isAccountChanged(seqno, address, lt) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/changed/' + lt.toString(10), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!changedCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Load one unparsed account transaction\n * @param seqno block sequence number\n * @param address account address\n * @param lt account last transaction lt\n * @returns one unparsed transaction\n */\n async getTransaction(seqno, address, lt) {\n const urladdr = address.toString({ urlSafe: true });\n const urlpath = `/block/${seqno}/${urladdr}/tx/${lt.toString(10)}`;\n const res = await axios_1.default.get(new URL(urlpath, __classPrivateFieldGet(this, _TonClient4_endpoint, \"f\")).href, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!transactionCodec.is(res.data))\n throw Error('Mailformed response');\n const txcell = ton_core_1.Cell.fromBoc(Buffer.from(res.data.boc, 'base64'))[0];\n return { tx: (0, ton_core_1.loadTransaction)(txcell.beginParse()), ...res.data };\n }\n /**\n * Load unparsed account transactions\n * @param address address\n * @param lt last transaction lt\n * @param hash last transaction hash\n * @returns unparsed transactions\n */\n async getAccountTransactions(address, lt, hash) {\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/account/' + address.toString({ urlSafe: true }) + '/tx/' + lt.toString(10) + '/' + (0, toUrlSafe_1.toUrlSafe)(hash.toString('base64')), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!transactionsCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n let data = res.data;\n let tx = [];\n let cells = ton_core_1.Cell.fromBoc(Buffer.from(data.boc, 'base64'));\n for (let i = 0; i < data.blocks.length; i++) {\n tx.push({\n block: data.blocks[i],\n tx: (0, ton_core_1.loadTransaction)(cells[i].beginParse())\n });\n }\n return tx;\n }\n /**\n * Get network config\n * @param seqno block sequence number\n * @param ids optional config ids\n * @returns network config\n */\n async getConfig(seqno, ids) {\n let tail = '';\n if (ids && ids.length > 0) {\n tail = '/' + [...ids].sort().join(',');\n }\n let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/config' + tail, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!configCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return res.data;\n }\n /**\n * Execute run method\n * @param seqno block sequence number\n * @param address account address\n * @param name method name\n * @param args method arguments\n * @returns method result\n */\n async runMethod(seqno, address, name, args) {\n let tail = args && args.length > 0 ? '/' + (0, toUrlSafe_1.toUrlSafe)((0, ton_core_1.serializeTuple)(args).toBoc({ idx: false, crc32: false }).toString('base64')) : '';\n let url = __classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/run/' + name + tail;\n let res = await axios_1.default.get(url, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!runMethodCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n let resultTuple = res.data.resultRaw ? (0, ton_core_1.parseTuple)(ton_core_1.Cell.fromBoc(Buffer.from(res.data.resultRaw, 'base64'))[0]) : [];\n return {\n exitCode: res.data.exitCode,\n result: resultTuple,\n resultRaw: res.data.resultRaw,\n block: res.data.block,\n shardBlock: res.data.shardBlock,\n reader: new ton_core_1.TupleReader(resultTuple),\n };\n }\n /**\n * Send external message\n * @param message message boc\n * @returns message status\n */\n async sendMessage(message) {\n let res = await axios_1.default.post(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/send', { boc: message.toString('base64') }, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n if (!sendCodec.is(res.data)) {\n throw Error('Mailformed response');\n }\n return { status: res.data.status };\n }\n /**\n * Open smart contract\n * @param contract contract\n * @returns opened contract\n */\n open(contract) {\n return (0, ton_core_1.openContract)(contract, (args) => createProvider(this, null, args.address, args.init));\n }\n /**\n * Open smart contract\n * @param block block number\n * @param contract contract\n * @returns opened contract\n */\n openAt(block, contract) {\n return (0, ton_core_1.openContract)(contract, (args) => createProvider(this, block, args.address, args.init));\n }\n /**\n * Create provider\n * @param address address\n * @param init optional init data\n * @returns provider\n */\n provider(address, init) {\n return createProvider(this, null, address, init ? init : null);\n }\n /**\n * Create provider at specified block number\n * @param block block number\n * @param address address\n * @param init optional init data\n * @returns provider\n */\n providerAt(block, address, init) {\n return createProvider(this, block, address, init ? init : null);\n }\n}\nexports.TonClient4 = TonClient4;\n_TonClient4_endpoint = new WeakMap(), _TonClient4_timeout = new WeakMap(), _TonClient4_adapter = new WeakMap();\nfunction createProvider(client, block, address, init) {\n return {\n async getState() {\n // Resolve block\n let sq = block;\n if (sq === null) {\n let res = await client.getLastBlock();\n sq = res.last.seqno;\n }\n // Load state\n let state = await client.getAccount(sq, address);\n // Convert state\n let last = state.account.last ? { lt: BigInt(state.account.last.lt), hash: Buffer.from(state.account.last.hash, 'base64') } : null;\n let storage;\n if (state.account.state.type === 'active') {\n storage = {\n type: 'active',\n code: state.account.state.code ? Buffer.from(state.account.state.code, 'base64') : null,\n data: state.account.state.data ? Buffer.from(state.account.state.data, 'base64') : null,\n };\n }\n else if (state.account.state.type === 'uninit') {\n storage = {\n type: 'uninit',\n };\n }\n else if (state.account.state.type === 'frozen') {\n storage = {\n type: 'frozen',\n stateHash: Buffer.from(state.account.state.stateHash, 'base64'),\n };\n }\n else {\n throw Error('Unsupported state');\n }\n return {\n balance: BigInt(state.account.balance.coins),\n last: last,\n state: storage\n };\n },\n async get(name, args) {\n let sq = block;\n if (sq === null) {\n let res = await client.getLastBlock();\n sq = res.last.seqno;\n }\n let method = await client.runMethod(sq, address, name, args);\n if (method.exitCode !== 0 && method.exitCode !== 1) {\n throw Error('Exit code: ' + method.exitCode);\n }\n return {\n stack: new ton_core_1.TupleReader(method.result),\n };\n },\n async external(message) {\n // Resolve last\n let last = await client.getLastBlock();\n // Resolve init\n let neededInit = null;\n if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') {\n neededInit = init;\n }\n // Send with state init\n const ext = (0, ton_core_1.external)({\n to: address,\n init: neededInit ? { code: neededInit.code, data: neededInit.data } : null,\n body: message\n });\n let pkg = (0, ton_core_1.beginCell)()\n .store((0, ton_core_1.storeMessage)(ext))\n .endCell()\n .toBoc();\n await client.sendMessage(pkg);\n },\n async internal(via, message) {\n // Resolve last\n let last = await client.getLastBlock();\n // Resolve init\n let neededInit = null;\n if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') {\n neededInit = init;\n }\n // Resolve bounce\n let bounce = true;\n if (message.bounce !== null && message.bounce !== undefined) {\n bounce = message.bounce;\n }\n // Resolve value\n let value;\n if (typeof message.value === 'string') {\n value = (0, ton_core_1.toNano)(message.value);\n }\n else {\n value = message.value;\n }\n // Resolve body\n let body = null;\n if (typeof message.body === 'string') {\n body = (0, ton_core_1.comment)(message.body);\n }\n else if (message.body) {\n body = message.body;\n }\n // Send internal message\n await via.send({\n to: address,\n value,\n bounce,\n sendMode: message.sendMode,\n init: neededInit,\n body\n });\n }\n };\n}\n//\n// Codecs\n//\nconst lastBlockCodec = t.type({\n last: t.type({\n seqno: t.number,\n shard: t.string,\n workchain: t.number,\n fileHash: t.string,\n rootHash: t.string\n }),\n init: t.type({\n fileHash: t.string,\n rootHash: t.string\n }),\n stateRootHash: t.string,\n now: t.number\n});\nconst blockCodec = t.union([t.type({\n exist: t.literal(false)\n }), t.type({\n exist: t.literal(true),\n block: t.type({\n shards: t.array(t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string,\n transactions: t.array(t.type({\n account: t.string,\n hash: t.string,\n lt: t.string\n }))\n }))\n })\n })]);\n// {\"lastPaid\":1653099243,\"duePayment\":null,\"used\":{\"bits\":119,\"cells\":1,\"publicCells\":0}}\nconst storageStatCodec = t.type({\n lastPaid: t.number,\n duePayment: t.union([t.null, t.string]),\n used: t.type({\n bits: t.number,\n cells: t.number,\n publicCells: t.number\n })\n});\nconst accountCodec = t.type({\n account: t.type({\n state: t.union([\n t.type({ type: t.literal('uninit') }),\n t.type({ type: t.literal('active'), code: t.union([t.string, t.null]), data: t.union([t.string, t.null]) }),\n t.type({ type: t.literal('frozen'), stateHash: t.string })\n ]),\n balance: t.type({\n coins: t.string\n }),\n last: t.union([\n t.null,\n t.type({\n lt: t.string,\n hash: t.string\n })\n ]),\n storageStat: t.union([t.null, storageStatCodec])\n }),\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })\n});\nconst accountLiteCodec = t.type({\n account: t.type({\n state: t.union([\n t.type({ type: t.literal('uninit') }),\n t.type({ type: t.literal('active'), codeHash: t.string, dataHash: t.string }),\n t.type({ type: t.literal('frozen'), stateHash: t.string })\n ]),\n balance: t.type({\n coins: t.string\n }),\n last: t.union([\n t.null,\n t.type({\n lt: t.string,\n hash: t.string\n })\n ]),\n storageStat: t.union([t.null, storageStatCodec])\n })\n});\nconst changedCodec = t.type({\n changed: t.boolean,\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })\n});\nconst runMethodCodec = t.type({\n exitCode: t.number,\n resultRaw: t.union([t.string, t.null]),\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n }),\n shardBlock: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })\n});\nconst configCodec = t.type({\n config: t.type({\n cell: t.string,\n address: t.string,\n globalBalance: t.type({\n coins: t.string\n })\n })\n});\nconst sendCodec = t.type({\n status: t.number\n});\nconst transactionsCodec = t.type({\n blocks: t.array(t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n fileHash: t.string\n })),\n boc: t.string\n});\nconst transactionCodec = t.type({\n block: t.type({\n workchain: t.number,\n seqno: t.number,\n shard: t.string,\n rootHash: t.string,\n }),\n boc: t.string,\n proof: t.string\n});\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createWalletTransferV4 = exports.createWalletTransferV3 = exports.createWalletTransferV2 = exports.createWalletTransferV1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst ton_crypto_1 = require(\"ton-crypto\");\nfunction createWalletTransferV1(args) {\n // Create message\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.seqno, 32);\n if (args.message) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(args.message)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV1 = createWalletTransferV1;\nfunction createWalletTransferV2(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n // Create message\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.seqno, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV2 = createWalletTransferV2;\nfunction createWalletTransferV3(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n // Create message to sign\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.walletId, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage.storeUint(args.seqno, 32);\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV3 = createWalletTransferV3;\nfunction createWalletTransferV4(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n let signingMessage = (0, ton_core_1.beginCell)()\n .storeUint(args.walletId, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage.storeUint(args.seqno, 32);\n signingMessage.storeUint(0, 8); // Simple order\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, ton_crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nexports.createWalletTransferV4 = createWalletTransferV4;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R1 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEARAAAhP8AIN2k8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVEH98Ik=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV1R1(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n return ton_core_1.Cell.fromBoc(state.state.data)[0].beginParse().loadUint(32);\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R1 = WalletContractV1R1;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R2 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R2 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAUwAAov8AIN0gggFMl7qXMO1E0NcLH+Ck8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVNDieG8=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV1R2(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R2 = WalletContractV1R2;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R3 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R3 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAXwAAuv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVLW4bkI=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV1R3(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(executor, message) {\n await executor.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode: sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R3 = WalletContractV1R3;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV2R1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV2R1 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAVwAAqv8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VShNwu2', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV2R1(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV2)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV2R1 = WalletContractV2R1;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV2R2 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV2R2 {\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAYwAAwv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VQETNeh', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV2R2(args.workchain, args.publicKey);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV2)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV2R2 = WalletContractV2R2;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV3R1 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV3R1 {\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAYgAAwP8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVD++buA=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV3R1(args.workchain, args.publicKey, args.walletId);\n }\n /**\n * Get wallet balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV3)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV3R1 = WalletContractV3R1;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV3R2 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV3R2 {\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAcQAA3v8AIN0gggFMl7ohggEznLqxn3Gw7UTQ0x/THzHXC//jBOCk8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVBC9ba0=', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV3R2(args.workchain, args.publicKey, args.walletId);\n }\n /**\n * Get wallet balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV3)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV3R2 = WalletContractV3R2;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV4 = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV4 {\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = ton_core_1.Cell.fromBoc(Buffer.from('te6ccgECFAEAAtQAART/APSkE/S88sgLAQIBIAIDAgFIBAUE+PKDCNcYINMf0x/THwL4I7vyZO1E0NMf0x/T//QE0VFDuvKhUVG68qIF+QFUEGT5EPKj+AAkpMjLH1JAyx9SMMv/UhD0AMntVPgPAdMHIcAAn2xRkyDXSpbTB9QC+wDoMOAhwAHjACHAAuMAAcADkTDjDQOkyMsfEssfy/8QERITAubQAdDTAyFxsJJfBOAi10nBIJJfBOAC0x8hghBwbHVnvSKCEGRzdHK9sJJfBeAD+kAwIPpEAcjKB8v/ydDtRNCBAUDXIfQEMFyBAQj0Cm+hMbOSXwfgBdM/yCWCEHBsdWe6kjgw4w0DghBkc3RyupJfBuMNBgcCASAICQB4AfoA9AQw+CdvIjBQCqEhvvLgUIIQcGx1Z4MesXCAGFAEywUmzxZY+gIZ9ADLaRfLH1Jgyz8gyYBA+wAGAIpQBIEBCPRZMO1E0IEBQNcgyAHPFvQAye1UAXKwjiOCEGRzdHKDHrFwgBhQBcsFUAPPFiP6AhPLassfyz/JgED7AJJfA+ICASAKCwBZvSQrb2omhAgKBrkPoCGEcNQICEekk30pkQzmkD6f+YN4EoAbeBAUiYcVnzGEAgFYDA0AEbjJftRNDXCx+AA9sp37UTQgQFA1yH0BDACyMoHy//J0AGBAQj0Cm+hMYAIBIA4PABmtznaiaEAga5Drhf/AABmvHfaiaEAQa5DrhY/AAG7SB/oA1NQi+QAFyMoHFcv/ydB3dIAYyMsFywIizxZQBfoCFMtrEszMyXP7AMhAFIEBCPRR8qcCAHCBAQjXGPoA0z/IVCBHgQEI9FHyp4IQbm90ZXB0gBjIywXLAlAGzxZQBPoCFMtqEssfyz/Jc/sAAgBsgQEI1xj6ANM/MFIkgQEI9Fnyp4IQZHN0cnB0gBjIywXLAlAFzxZQA/oCE8tqyx8Syz/Jc/sAAAr0AMntVA==', 'base64'))[0];\n let data = (0, ton_core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(this.publicKey)\n .storeBit(0) // Empty plugins dict\n .endCell();\n this.init = { code, data };\n this.address = (0, ton_core_1.contractAddress)(workchain, { code, data });\n }\n static create(args) {\n return new WalletContractV4(args.workchain, args.publicKey, args.walletId);\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = ton_core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV4)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, ton_core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV4 = WalletContractV4;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JettonMaster = void 0;\nconst ton_core_1 = require(\"ton-core\");\nclass JettonMaster {\n constructor(address) {\n this.address = address;\n }\n static create(address) {\n return new JettonMaster(address);\n }\n async getWalletAddress(provider, owner) {\n let res = await provider.get('get_wallet_address', [{ type: 'slice', cell: (0, ton_core_1.beginCell)().storeAddress(owner).endCell() }]);\n return res.stack.readAddress();\n }\n async getJettonData(provider) {\n let res = await provider.get('get_jetton_data', []);\n let totalSupply = res.stack.readBigNumber();\n let mintable = res.stack.readBoolean();\n let adminAddress = res.stack.readAddress();\n let content = res.stack.readCell();\n let walletCode = res.stack.readCell();\n return {\n totalSupply,\n mintable,\n adminAddress,\n content,\n walletCode\n };\n }\n}\nexports.JettonMaster = JettonMaster;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JettonWallet = void 0;\nclass JettonWallet {\n constructor(address) {\n this.address = address;\n }\n static create(address) {\n return new JettonWallet(address);\n }\n async getBalance(provider) {\n let state = await provider.getState();\n if (state.state.type !== 'active') {\n return 0n;\n }\n let res = await provider.get('get_wallet_data', []);\n return res.stack.readBigNumber();\n }\n}\nexports.JettonWallet = JettonWallet;\n", "\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigOrder = void 0;\nconst ton_crypto_1 = require(\"ton-crypto\");\nconst ton_core_1 = require(\"ton-core\");\nclass MultisigOrder {\n constructor(payload) {\n this.signatures = {};\n this.payload = payload;\n }\n static fromCell(cell) {\n let s = cell.beginParse();\n let signatures = s.loadMaybeRef()?.beginParse();\n const messagesCell = s.asCell();\n let order = new MultisigOrder(messagesCell);\n if (signatures) {\n while (signatures.remainingBits > 0) {\n const signature = signatures.loadBuffer(64);\n const ownerId = signatures.loadUint(8);\n order.signatures[ownerId] = signature;\n if (signatures.remainingRefs > 0) {\n signatures = signatures.loadRef().asSlice();\n }\n else {\n signatures.skip(1);\n }\n }\n signatures.endParse();\n }\n return order;\n }\n static fromPayload(payload) {\n return new MultisigOrder(payload);\n }\n addSignature(ownerId, signature, multisig) {\n const signingHash = this.payload.hash();\n if (!(0, ton_crypto_1.signVerify)(signingHash, signature, multisig.owners.get(ownerId).slice(0, -1))) {\n throw Error('invalid signature');\n }\n this.signatures[ownerId] = signature;\n }\n sign(ownerId, secretKey) {\n const signingHash = this.payload.hash();\n this.signatures[ownerId] = (0, ton_crypto_1.sign)(signingHash, secretKey);\n return signingHash;\n }\n unionSignatures(other) {\n this.signatures = Object.assign({}, this.signatures, other.signatures);\n }\n clearSignatures() {\n this.signatures = {};\n }\n toCell(ownerId) {\n let b = (0, ton_core_1.beginCell)().storeBit(0);\n for (const ownerId in this.signatures) {\n const signature = this.signatures[ownerId];\n b = (0, ton_core_1.beginCell)()\n .storeBit(1)\n .storeRef((0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeUint(parseInt(ownerId), 8)\n .storeBuilder(b)\n .endCell());\n }\n return (0, ton_core_1.beginCell)()\n .storeUint(ownerId, 8)\n .storeBuilder(b)\n .storeBuilder(this.payload.asBuilder())\n .endCell();\n }\n}\nexports.MultisigOrder = MultisigOrder;\n", "\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigOrderBuilder = void 0;\nconst ton_core_1 = require(\"ton-core\");\nconst MultisigOrder_1 = require(\"./MultisigOrder\");\nclass MultisigOrderBuilder {\n constructor(walletId, offset) {\n this.messages = (0, ton_core_1.beginCell)();\n this.queryId = 0n;\n this.walletId = walletId;\n this.queryOffset = offset || 7200;\n }\n addMessage(message, mode) {\n if (this.messages.refs >= 4) {\n throw Error('only 4 refs are allowed');\n }\n this.updateQueryId();\n this.messages.storeUint(mode, 8);\n this.messages.storeRef((0, ton_core_1.beginCell)().store((0, ton_core_1.storeMessageRelaxed)(message)).endCell());\n }\n clearMessages() {\n this.messages = (0, ton_core_1.beginCell)();\n }\n build() {\n return MultisigOrder_1.MultisigOrder.fromPayload((0, ton_core_1.beginCell)()\n .storeUint(this.walletId, 32)\n .storeUint(this.queryId, 64)\n .storeBuilder(this.messages)\n .endCell());\n }\n updateQueryId() {\n const time = BigInt(Math.floor(Date.now() / 1000 + this.queryOffset));\n this.queryId = time << 32n;\n }\n}\nexports.MultisigOrderBuilder = MultisigOrderBuilder;\n", "\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigWallet = void 0;\nconst ton_crypto_1 = require(\"ton-crypto\");\nconst ton_core_1 = require(\"ton-core\");\nconst MULTISIG_CODE = ton_core_1.Cell.fromBase64('te6ccgECKwEABBgAART/APSkE/S88sgLAQIBIAIDAgFIBAUE2vIgxwCOgzDbPOCDCNcYIPkBAdMH2zwiwAAToVNxePQOb6Hyn9s8VBq6+RDyoAb0BCD5AQHTH1EYuvKq0z9wUwHwCgHCCAGDCryx8mhTFYBA9A5voSCYDqQgwgryZw7f+COqH1NAufJhVCOjU04gIyEiAgLMBgcCASAMDQIBIAgJAgFmCgsAA9GEAiPymAvHoHN9CYbZ5S7Z4BPHohwhJQAtAKkItdJEqCTItdKlwLUAdAT8ArobBKAATwhbpEx4CBukTDgAdAg10rDAJrUAvALyFjPFszJ4HHXI8gBzxb0AMmACASAODwIBIBQVARW77ZbVA0cFUg2zyCoCAUgQEQIBIBITAXOxHXQgwjXGCD5AQHTB4IB1MTtQ9hTIHj0Dm+h8p/XC/9eMfkQ8qCuAfQEIW6TW3Ey4PkBWNs8AaQBgJwA9rtqA6ADoAPoCAXoCEfyAgPyA3XlP+AXkegAA54tkwAAXrhlXP8EA1WZ2oexAAgEgFhcCASAYGQFRtyVbZ4YmRmpGEAgegc30McJNhFpAADMaYeYuAFrgJhwLb+4cC3d0bhAjAYm1WZtnhqvgb+2xxsoicAgej430pBHEoFpAADHDhBACGuQkuuBk9kUWE5kAOeLKhACQCB6IYFImHFImHFImXEA2YlzNijAjAgEgGhsAF7UGtc4QQDVZnah7EAIBIBwdAgOZOB4fARGsGm2eL4G2CUAjABWt+UEAzJV2oewYQAENqTbPBVfBYCMAFa3f3CCAarM7UPYgAiDbPALyZfgAUENxQxPbPO1UIyoACtP/0wcwBKDbPC+uUyCw8mISsQKkJbNTHLmwJYEA4aojoCi8sPJpggGGoPgBBZcCERACPj4wjo0REB/bPEDXePRDEL0F4lQWW1Rz51YQU9zbPFRxClR6vCQlKCYAIO1E0NMf0wfTB9M/9AT0BNEAXgGOGjDSAAHyo9MH0wdQA9cBIPkBBfkBFbrypFAD4GwhIddKqgIi10m68qtwVCATAAwByMv/ywcE1ts87VT4D3AlblOJvrGYEG4QLVDHXwePGzBUJANQTds8UFWgRlAQSRA6SwlTuds8UFQWf+L4AAeDJaGOLCaAQPSWb6UglDBTA7neII4WODk5CNIAAZfTBzAW8AcFkTDifwgHBZJsMeKz5jAGKicoKQBgcI4pA9CDCNcY0wf0BDBTFnj0Dm+h8qXXC/9URUT5EPKmrlIgsVIDvRShI27mbCIyAH5SML6OIF8D+ACTItdKmALTB9QC+wAC6DJwyMoAQBSAQPRDAvAHjhdxyMsAFMsHEssHWM8BWM8WQBOAQPRDAeIBII6KEEUQNEMA2zztVJJfBuIqABzIyx/LB8sHyz/0APQAyQ==');\nclass MultisigWallet {\n constructor(publicKeys, workchain, walletId, k, opts) {\n this.provider = null;\n this.owners = ton_core_1.Dictionary.empty();\n this.workchain = workchain;\n this.walletId = walletId;\n this.k = k;\n for (let i = 0; i < publicKeys.length; i += 1) {\n this.owners.set(i, Buffer.concat([publicKeys[i], Buffer.alloc(1)]));\n }\n this.init = {\n code: MULTISIG_CODE,\n data: (0, ton_core_1.beginCell)()\n .storeUint(this.walletId, 32)\n .storeUint(this.owners.size, 8)\n .storeUint(this.k, 8)\n .storeUint(0, 64)\n .storeDict(this.owners, ton_core_1.Dictionary.Keys.Uint(8), ton_core_1.Dictionary.Values.Buffer(33))\n .storeBit(0)\n .endCell(),\n };\n this.address = opts?.address || (0, ton_core_1.contractAddress)(workchain, this.init);\n if (opts?.provider) {\n this.provider = opts.provider;\n }\n else if (opts?.client) {\n this.provider = opts.client.provider(this.address, {\n code: this.init.code,\n data: this.init.data,\n });\n }\n }\n static async fromAddress(address, opts) {\n let provider;\n if (opts.provider) {\n provider = opts.provider;\n }\n else {\n if (!opts.client) {\n throw Error('Either provider or client must be specified');\n }\n provider = opts.client.provider(address, {\n code: null,\n data: null,\n });\n }\n const contractState = (await provider.getState()).state;\n if (contractState.type !== 'active') {\n throw Error('Contract must be active');\n }\n const data = ton_core_1.Cell.fromBoc(contractState.data)[0].beginParse();\n const walletId = data.loadUint(32);\n data.skip(8);\n const k = data.loadUint(8);\n data.skip(64);\n const owners = data.loadDict(ton_core_1.Dictionary.Keys.Uint(8), ton_core_1.Dictionary.Values.Buffer(33));\n let publicKeys = [];\n for (const [key, value] of owners) {\n const publicKey = value.subarray(0, 32);\n publicKeys.push(publicKey);\n }\n return new MultisigWallet(publicKeys, address.workChain, walletId, k, {\n address,\n provider,\n client: opts.client,\n });\n }\n async deployExternal(provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n await provider.external(ton_core_1.Cell.EMPTY);\n }\n async deployInternal(sender, value = 1000000000n) {\n await sender.send({\n sendMode: 3,\n to: this.address,\n value: value,\n init: this.init,\n body: ton_core_1.Cell.EMPTY,\n bounce: true,\n });\n }\n async sendOrder(order, secretKey, provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n let publicKey = (0, ton_crypto_1.keyPairFromSecretKey)(secretKey).publicKey;\n let ownerId = this.getOwnerIdByPubkey(publicKey);\n let cell = order.toCell(ownerId);\n let signature = (0, ton_crypto_1.sign)(cell.hash(), secretKey);\n cell = (0, ton_core_1.beginCell)()\n .storeBuffer(signature)\n .storeSlice(cell.asSlice())\n .endCell();\n await provider.external(cell);\n }\n getOwnerIdByPubkey(publicKey) {\n for (const [key, value] of this.owners) {\n if (value.subarray(0, 32).equals(publicKey)) {\n return key;\n }\n }\n throw Error('public key is not an owner');\n }\n}\nexports.MultisigWallet = MultisigWallet;\n", "\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigWallet = exports.MultisigOrderBuilder = exports.MultisigOrder = exports.JettonWallet = exports.JettonMaster = exports.WalletContractV4 = exports.WalletContractV3R2 = exports.WalletContractV3R1 = exports.WalletContractV2R2 = exports.WalletContractV2R1 = exports.WalletContractV1R3 = exports.WalletContractV1R2 = exports.WalletContractV1R1 = exports.TonClient4 = exports.TonClient = exports.HttpApi = void 0;\n__exportStar(require(\"ton-core\"), exports);\n//\n// toncenter Client\n//\nvar HttpApi_1 = require(\"./client/api/HttpApi\");\nObject.defineProperty(exports, \"HttpApi\", { enumerable: true, get: function () { return HttpApi_1.HttpApi; } });\nvar TonClient_1 = require(\"./client/TonClient\");\nObject.defineProperty(exports, \"TonClient\", { enumerable: true, get: function () { return TonClient_1.TonClient; } });\n//\n// API V4 Client\n//\nvar TonClient4_1 = require(\"./client/TonClient4\");\nObject.defineProperty(exports, \"TonClient4\", { enumerable: true, get: function () { return TonClient4_1.TonClient4; } });\n//\n// Wallets\n//\nvar WalletContractV1R1_1 = require(\"./wallets/WalletContractV1R1\");\nObject.defineProperty(exports, \"WalletContractV1R1\", { enumerable: true, get: function () { return WalletContractV1R1_1.WalletContractV1R1; } });\nvar WalletContractV1R2_1 = require(\"./wallets/WalletContractV1R2\");\nObject.defineProperty(exports, \"WalletContractV1R2\", { enumerable: true, get: function () { return WalletContractV1R2_1.WalletContractV1R2; } });\nvar WalletContractV1R3_1 = require(\"./wallets/WalletContractV1R3\");\nObject.defineProperty(exports, \"WalletContractV1R3\", { enumerable: true, get: function () { return WalletContractV1R3_1.WalletContractV1R3; } });\nvar WalletContractV2R1_1 = require(\"./wallets/WalletContractV2R1\");\nObject.defineProperty(exports, \"WalletContractV2R1\", { enumerable: true, get: function () { return WalletContractV2R1_1.WalletContractV2R1; } });\nvar WalletContractV2R2_1 = require(\"./wallets/WalletContractV2R2\");\nObject.defineProperty(exports, \"WalletContractV2R2\", { enumerable: true, get: function () { return WalletContractV2R2_1.WalletContractV2R2; } });\nvar WalletContractV3R1_1 = require(\"./wallets/WalletContractV3R1\");\nObject.defineProperty(exports, \"WalletContractV3R1\", { enumerable: true, get: function () { return WalletContractV3R1_1.WalletContractV3R1; } });\nvar WalletContractV3R2_1 = require(\"./wallets/WalletContractV3R2\");\nObject.defineProperty(exports, \"WalletContractV3R2\", { enumerable: true, get: function () { return WalletContractV3R2_1.WalletContractV3R2; } });\nvar WalletContractV4_1 = require(\"./wallets/WalletContractV4\");\nObject.defineProperty(exports, \"WalletContractV4\", { enumerable: true, get: function () { return WalletContractV4_1.WalletContractV4; } });\n//\n// Jettons\n//\nvar JettonMaster_1 = require(\"./jetton/JettonMaster\");\nObject.defineProperty(exports, \"JettonMaster\", { enumerable: true, get: function () { return JettonMaster_1.JettonMaster; } });\nvar JettonWallet_1 = require(\"./jetton/JettonWallet\");\nObject.defineProperty(exports, \"JettonWallet\", { enumerable: true, get: function () { return JettonWallet_1.JettonWallet; } });\n//\n// Multisig\n//\nvar MultisigOrder_1 = require(\"./multisig/MultisigOrder\");\nObject.defineProperty(exports, \"MultisigOrder\", { enumerable: true, get: function () { return MultisigOrder_1.MultisigOrder; } });\nvar MultisigOrderBuilder_1 = require(\"./multisig/MultisigOrderBuilder\");\nObject.defineProperty(exports, \"MultisigOrderBuilder\", { enumerable: true, get: function () { return MultisigOrderBuilder_1.MultisigOrderBuilder; } });\nvar MultisigWallet_1 = require(\"./multisig/MultisigWallet\");\nObject.defineProperty(exports, \"MultisigWallet\", { enumerable: true, get: function () { return MultisigWallet_1.MultisigWallet; } });\n", "(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n", "// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n", null, "{\n \"name\": \"@orbs-network/ton-access\",\n \"version\": \"2.3.3\",\n \"description\": \"Unthrottled anonymous RPC access to TON blockchain via a robust decentralized network\",\n \"source\": \"lib/index.js\",\n \"main\": \"lib/index.js\",\n \"types\": \"lib/index.d.ts\",\n \"files\": [\n \"lib/**/*\"\n ],\n \"scripts\": {\n \"test\": \"env mocha -r ts-node/register test/**/*.ts\",\n \"test:v2\": \"env mocha -r ts-node/register test/ton-v2.ts\",\n \"test:v4\": \"env mocha -r ts-node/register test/ton-v4.ts\",\n \"cleanup\": \"rimraf ./lib\",\n \"build:web:reg\": \"esbuild ./lib/web.js --bundle --sourcemap --target=es2015 --outfile=./dist/index.js\",\n \"build:web:min\": \"esbuild ./lib/web.js --bundle --minify --target=es2015 --outfile=./dist/index.min.js\",\n \"build:web\": \"rimraf ./dist && npm run build:web:reg && npm run build:web:min\",\n \"build\": \"npm run lint && rimraf ./lib && tsc && npm run build:web\",\n \"format\": \"prettier --write \\\"src/**/*.ts\\\"\",\n \"lint\": \"tslint -p tsconfig.json\",\n \"prepare\": \"npm run build\",\n \"prepublishOnly\": \"npm test && npm run lint\",\n \"preversion\": \"npm run lint\",\n \"version\": \"npm run format && git add -A src\",\n \"postversion\": \"git push && git push --tags\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/orbs-network/ton-access.git\"\n },\n \"author\": \"yuval@orbs.com\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/orbs-network/ton-access/issues\"\n },\n \"homepage\": \"https://github.com/orbs-network/ton-access#readme\",\n \"dependencies\": {\n \"isomorphic-fetch\": \"^3.0.0\"\n },\n \"devDependencies\": {\n \"@types/bn.js\": \"^5.1.1\",\n \"@types/chai\": \"^4.3.4\",\n \"@types/isomorphic-fetch\": \"^0.0.36\",\n \"@types/mocha\": \"^10.0.0\",\n \"buffer\": \"^6.0.3\",\n \"chai\": \"^4.3.7\",\n \"esbuild\": \"^0.15.14\",\n \"mocha\": \"^10.1.0\",\n \"prettier\": \"^2.7.1\",\n \"rimraf\": \"^3.0.2\",\n \"ton\": \"^12.1.3\",\n \"ton-lite-client\": \"npm:@truecarry/ton-lite-client@^1.6.1\",\n \"tonweb\": \"^0.0.58\",\n \"ts-node\": \"^10.9.1\",\n \"tslib\": \"^2.4.0\",\n \"tslint\": \"^6.1.3\",\n \"tslint-config-prettier\": \"^1.18.0\"\n }\n}\n", null, "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n", "/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n", "import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nfunction fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst pureJs_1 = require(\"./pureJs\");\nconst whatwgEncodingApi_1 = require(\"./whatwgEncodingApi\");\nconst fromUtf8 = (input) => typeof TextEncoder === \"function\" ? (0, whatwgEncodingApi_1.fromUtf8)(input) : (0, pureJs_1.fromUtf8)(input);\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => typeof TextDecoder === \"function\" ? (0, whatwgEncodingApi_1.toUtf8)(input) : (0, pureJs_1.toUtf8)(input);\nexports.toUtf8 = toUtf8;\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n", "import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n", "export * from \"./jsSha256\";\n", "var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope || (node.sublanguage && node.language);\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = \"\";\n if (node.sublanguage) {\n className = `language-${node.language}`;\n } else {\n className = scopeToCSSClass(node.scope, { prefix: this.classPrefix });\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, scope)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(scope)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n addKeyword(text, scope) {\n if (text === \"\") { return; }\n\n this.openNode(scope);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.sublanguage = true;\n node.language = name;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.6.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6.exports(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n", "import { ContractVerifier as _ContractVerifier } from \"./contract-verifier\";\nimport { ContractVerifierUI as _ContractVerifierUI } from \"./contract-verifier-ui\";\n\ndeclare global {\n var ContractVerifier: typeof _ContractVerifier;\n var ContractVerifierUI: typeof _ContractVerifierUI;\n}\n\nwindow.ContractVerifier = _ContractVerifier;\nwindow.ContractVerifierUI = _ContractVerifierUI;\n\nexport { ContractVerifierUI } from \"./contract-verifier-ui\";\nexport * from \"./contract-verifier\";\n", "import { TonClient4, Address, TupleReader, TupleBuilder } from \"ton\";\nimport { getHttpV4Endpoint } from \"@orbs-network/ton-access\";\nimport { Sha256 } from \"@aws-crypto/sha256-js\";\n\ninterface GetSourcesOptions {\n verifier?: string;\n httpApiEndpointV4?: string;\n testnet?: boolean;\n}\n\nexport declare type FuncCompilerVersion = string;\nexport declare type TactVersion = string;\nexport declare type FiftVersion = FuncCompilerVersion; // Fift is tied to a FunC version\n\nexport declare type FuncCompilerSettings = {\n funcVersion: FuncCompilerVersion;\n commandLine: string;\n};\nexport type FiftCliCompileSettings = {\n fiftVersion: FiftVersion;\n commandLine: string;\n};\nexport type TactCliCompileSettings = {\n tactVersion: TactVersion;\n};\n\nexport type FuncSource = {\n name: string;\n content: string;\n isEntrypoint: boolean;\n};\nexport type TactSource = {\n name: string;\n content: string;\n};\n\nexport interface SourcesData {\n files: (TactSource | FuncSource)[];\n compiler: \"func\" | \"tact\" | \"fift\";\n compilerSettings:\n | FuncCompilerSettings\n | FiftCliCompileSettings\n | TactCliCompileSettings;\n verificationDate: Date;\n ipfsHttpLink: string;\n}\n\ntype IpfsUrlConverterFunc = (ipfsUrl: string, testnet: boolean) => string;\n\nconst SOURCES_REGISTRY = Address.parse(\n \"EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL\",\n);\nconst SOURCES_REGISTRY_TESTNET = Address.parse(\n \"EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8\",\n);\n\nfunction toSha256Buffer(s: string) {\n const sha = new Sha256();\n sha.update(s);\n return Buffer.from(sha.digestSync());\n}\n\nfunction defaultIpfsConverter(ipfs: string, testnet: boolean) {\n let endpoint: string;\n\n if (testnet) {\n endpoint = \"https://tonsource-testnet.infura-ipfs.io/ipfs/\";\n } else {\n endpoint = \"https://files.orbs.network/ipfs/\";\n }\n\n return ipfs.replace(\"ipfs://\", endpoint);\n}\n\nfunction bigIntFromBuffer(buffer: Buffer) {\n return BigInt(`0x${buffer.toString(\"hex\")}`);\n}\n\nexport const ContractVerifier = {\n async getSourcesJsonUrl(\n codeCellHash: string,\n options?: GetSourcesOptions,\n ): Promise {\n const tc = new TonClient4({\n endpoint:\n options?.httpApiEndpointV4 ??\n (await getHttpV4Endpoint({\n network: options.testnet ? \"testnet\" : \"mainnet\",\n })),\n });\n const {\n last: { seqno },\n } = await tc.getLastBlock();\n\n const args = new TupleBuilder();\n args.writeNumber(\n bigIntFromBuffer(toSha256Buffer(options?.verifier ?? \"orbs.com\")),\n );\n args.writeNumber(bigIntFromBuffer(Buffer.from(codeCellHash, \"base64\")));\n const { result: itemAddRes } = await tc.runMethod(\n seqno,\n options.testnet ? SOURCES_REGISTRY_TESTNET : SOURCES_REGISTRY,\n \"get_source_item_address\",\n args.build(),\n );\n\n let reader = new TupleReader(itemAddRes);\n const sourceItemAddr = reader.readAddress();\n const isDeployed = await tc.isContractDeployed(seqno, sourceItemAddr);\n\n if (isDeployed) {\n const { result: sourceItemDataRes } = await tc.runMethod(\n seqno,\n sourceItemAddr,\n \"get_source_item_data\",\n );\n\n reader = new TupleReader(sourceItemDataRes);\n const contentCell = reader.skip(3).readCell().beginParse();\n const version = contentCell.loadUint(8);\n if (version !== 1) throw new Error(\"Unsupported version\");\n const ipfsLink = contentCell.loadStringTail();\n\n return ipfsLink;\n }\n return null;\n },\n\n async getSourcesData(\n sourcesJsonUrl: string,\n options?: {\n ipfsConverter?: IpfsUrlConverterFunc;\n testnet?: boolean;\n },\n ): Promise {\n const ipfsConverter = options.ipfsConverter ?? defaultIpfsConverter;\n const ipfsHttpLink = ipfsConverter(sourcesJsonUrl, !!options.testnet);\n\n const verifiedContract = await (\n await fetch(ipfsConverter(sourcesJsonUrl, !!options.testnet))\n ).json();\n\n const files = (\n await Promise.all(\n verifiedContract.sources.map(\n async (source: {\n url: string;\n filename: string;\n isEntrypoint?: boolean;\n }) => {\n const url = ipfsConverter(source.url, !!options.testnet);\n const content = await fetch(url).then((u) => u.text());\n return {\n name: source.filename,\n content,\n isEntrypoint: source.isEntrypoint,\n };\n },\n ),\n )\n )\n .reverse()\n .sort((a, b) => {\n return Number(b.isEntrypoint) - Number(a.isEntrypoint);\n });\n\n return {\n files,\n verificationDate: new Date(verifiedContract.verificationDate),\n compilerSettings: verifiedContract.compilerSettings,\n compiler: verifiedContract.compiler,\n ipfsHttpLink,\n };\n },\n};\n", "import hljs from \"highlight.js/lib/core\";\nimport hljsDefine from \"highlightjs-func\";\nimport { SourcesData } from \"./contract-verifier\";\nimport { div } from \"./dom\";\nimport { TreeFile, TreeFolder } from \"./file-structure\";\nimport style from \"./style.css\";\n\nhljsDefine(hljs);\n\ntype Theme = \"light\" | \"dark\";\n\nexport const classNames = {\n CONTAINER: \"contract-verifier-container\",\n FILES: \"contract-verifier-files\",\n FILE: \"contract-verifier-file\",\n FOLDER: \"contract-verifier-folder\",\n TREE_ITEM: \"contract-verifier-tree-item\",\n FOLDER_CONTAINER: \"contract-verifier-folder-container\",\n CODE_CONTAINER: \"contract-verifier-code\",\n CODE_LINES: \"contract-verifier-code-lines\",\n CODE_CONTENT: \"contract-verifier-code-content\",\n};\n\nexport const ContractVerifierUI = {\n _stylesPopulated: {\n internal: false,\n },\n _populateStyle(theme: \"dark\" | \"light\") {\n if (!this._stylesPopulated[theme]) {\n this._stylesPopulated[theme] = true;\n const styleEl = document.createElement(\"style\");\n styleEl.innerHTML = `${\n theme === \"light\"\n ? require(\"highlight.js/styles/atom-one-light.css\").toString()\n : require(\"highlight.js/styles/atom-one-dark.css\").toString()\n }`;\n\n document.head.appendChild(styleEl);\n }\n if (!this._stylesPopulated.internal) {\n this._stylesPopulated.internal = true;\n const styleEl = document.createElement(\"style\");\n styleEl.innerHTML = style;\n document.head.appendChild(styleEl);\n }\n },\n _populateCode(contentSelector: string, theme: \"dark\" | \"light\") {\n const codeContainer = document.querySelector(contentSelector);\n codeContainer.classList.add(classNames.CODE_CONTAINER);\n codeContainer.classList.add(theme);\n codeContainer.innerHTML = `
`;\n },\n\n _setCode(\n { name, content }: { name: string; content: string },\n codeWrapperEl: HTMLElement,\n filesListEl?: HTMLElement,\n fileEl?: HTMLElement,\n ) {\n if (fileEl?.classList.contains(\"active\")) return;\n codeWrapperEl.scrollTo(0, 0);\n content = content.trim();\n const codeEl = codeWrapperEl.querySelector(\"code\");\n codeEl.innerHTML = \"\";\n codeEl.appendChild(\n div(\n { className: classNames.CODE_LINES },\n content\n .split(\"\\n\")\n .map((_, i) => i + 1)\n .join(\"\\n\"),\n ),\n );\n\n const contentEl = div({ className: classNames.CODE_CONTENT }, content);\n codeEl.appendChild(contentEl);\n\n if (name.match(/\\.fif(t)?$/)) {\n contentEl.classList.add(\"language-fift\");\n } else {\n contentEl.classList.add(\"language-func\");\n }\n\n hljs.highlightElement(contentEl);\n\n filesListEl\n ?.querySelector(`.${classNames.FILE}.active`)\n ?.classList.remove(\"active\");\n\n fileEl?.classList.add(\"active\");\n },\n\n setCode(contentSelector: string, content: string) {\n this._setCode(\n { name: \"\", content },\n document.querySelector(contentSelector),\n );\n },\n\n _populateFiles(\n fileListSelector: string,\n contentSelector: string,\n files: { name: string; content: string }[],\n theme: \"dark\" | \"light\",\n ) {\n const filePart = document.querySelector(fileListSelector);\n filePart.innerHTML = \"\";\n filePart.classList.add(theme);\n filePart.classList.add(classNames.FILES);\n\n // Prepare folder hierarchy\n const root = {\n type: \"root\",\n children: [],\n };\n\n files.forEach((file) => {\n const nameParts = Array.from(\n file.name.matchAll(/(?:\\/|^)([^\\/\\n]+)/g),\n ).map((m) => m[1]);\n\n const folders =\n nameParts.length > 1 ? nameParts.slice(0, nameParts.length - 1) : [];\n\n let levelToPushTo = root;\n\n folders.forEach((folder) => {\n let existingFolder = levelToPushTo.children.find(\n (obj) => obj.type === \"folder\" && obj.name === folder,\n );\n\n if (!existingFolder) {\n const newLevel = {\n type: \"folder\",\n name: folder,\n children: [],\n };\n levelToPushTo.children.push(newLevel);\n\n existingFolder = newLevel;\n }\n\n levelToPushTo = existingFolder;\n });\n\n levelToPushTo.children.push({\n type: \"file\",\n name: nameParts[nameParts.length - 1],\n content: file.content,\n });\n });\n\n function processLevel(level) {\n return level.children\n .filter((obj) => obj.type === \"file\")\n .map((child) => {\n const file = TreeFile({ name: child.name }, theme);\n file.onclick = () => {\n ContractVerifierUI._setCode(\n { name: child.name, content: child.content },\n document.querySelector(contentSelector),\n document.querySelector(fileListSelector),\n file,\n );\n };\n return file;\n })\n .concat(\n level.children\n .filter((obj) => obj.type === \"folder\")\n .map((child) =>\n TreeFolder(\n { name: child.name, opened: true },\n theme,\n ...processLevel(child),\n ),\n ),\n );\n }\n\n processLevel(root).forEach((el) => filePart.appendChild(el));\n },\n\n _populateContainer(selector: string, hideLineNumbers: boolean) {\n const el = document.querySelector(selector);\n el.classList.add(classNames.CONTAINER);\n\n if (!hideLineNumbers) {\n el.classList.add(\"lineNumbers\");\n }\n },\n\n loadSourcesData(\n sourcesData: SourcesData,\n opts: {\n containerSelector: string;\n fileListSelector?: string;\n contentSelector: string;\n theme: Theme;\n hideLineNumbers?: boolean;\n },\n ) {\n this._populateContainer(opts.containerSelector, !!opts.hideLineNumbers);\n\n if (opts.fileListSelector) {\n this._populateFiles(\n opts.fileListSelector,\n opts.contentSelector,\n sourcesData.files,\n opts.theme,\n );\n }\n this._populateStyle(opts.theme);\n this._populateCode(opts.contentSelector, opts.theme);\n this._setCode(\n sourcesData.files[0],\n document.querySelector(opts.contentSelector),\n document.querySelector(opts.fileListSelector),\n document.querySelector(\n `${opts.fileListSelector} .contract-verifier-file`,\n ), // Get first file\n );\n },\n};\n", "// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards\nimport HighlightJS from '../lib/core.js';\nexport { HighlightJS };\nexport default HighlightJS;\n", "import hljsDefineFunc from './languages/func.js'\nimport hljsDefineFift from './languages/fift.js'\nimport hljsDefineTLB from './languages/tlb.js'\n\nexport default function (hljs) {\n hljs.registerLanguage('fift', hljsDefineFift)\n hljs.registerLanguage('func', hljsDefineFunc)\n hljs.registerLanguage('tlb', hljsDefineTLB)\n}\n", "/*\nLanguage: FunC\nAuthor: Nikita Sobolev \nDescription: FunC is a smart-contract programming language that feels like C\nWebsite: https://ton.org/docs\nCategory: smartcontracts\n*/\n\nconst IDENTIFIER = '(?!\")(`([^`]+)`|' +\n '((?=_)_|' +\n '(?=\\\\{)\\\\{|' +\n '(?=\\\\})\\\\}|' +\n '(?![_`{}]))([^;,\\\\[\\\\]\\\\(\\\\)\\\\s~.]+))'\n\nconst STRING = /\\\"[^\\n\\\"]+\\\"[Hhcusa]?/\nlet NUMBER;\n\ntry {\n NUMBER = new RegExp(\"(-?(?!_)([\\\\d_]+|0x[\\\\d_a-fA-F]+)|0b[1_0]+)(?=/, /<=/, /=/, />/, //, />=/, /<=/, /!=/, /==/, /\\^>>/, /~>>/,\n />>/, /<>=/, /~>>=/, /\\^>>=/, /&=/, /\\^=/, /\\|=/,\n /\\^/, /=/, /~/, /\\//, /%/, /-/, /\\*/, /\\+/,/>/,\n /\nDescription: Fift is a simple stack-based programming language designed for TON\nWebsite: https://ton.org/fiftbase.pdf\nCategory: smartcontracts\n*/\n\nconst IDENTIFIER = /[0-9A-Za-z$_-]+/\nconst WORD_DEFS = /(::_|::|:_|=:|:)/\n\nexport default function(hljs) {\n return {\n 'name': 'Fift',\n 'aliases': ['fift'],\n 'case_insensitive': false,\n\n 'keywords': {\n 'keyword': [\n // It is kinda hard to tell what is a keyword and what is an operator\n // in fift. So, we do this instead:\n // - If something contains letters / numbers / `-`,\n // we treat it as a keywrod\n // - If something contains any other chars like `,`, `-`, `?`, `+`,\n // then we treat it as an operator\n '-roll', '-rot|10', '-trailing', '-trailing0',\n\n '2constant|10', '2drop|10', '2dup|10', '2over|10', '2swap|10',\n 'abort', 'abs', 'allot', 'and', 'anon', 'atom',\n\n 'bbitrefs', 'bbits', 'bl', 'box', 'brefs', 'brembitrefs', 'brembits',\n 'bremrefs', 'bye',\n\n 'cadr', 'caddr', 'car', 'cddr', 'cdr', 'char', 'chr', 'cmp',\n 'cond', 'cons', 'constant',\n 'count', 'cr', 'create',\n\n 'drop', 'depth',\n 'dictmap', 'dictmerge', 'dictnew',\n 'does', 'drop', 'dup',\n\n 'ed25519_chksign', 'ed25519_sign', 'ed25519_sign_uint',\n 'emit', 'exch', 'exch2|10', 'execute', 'explode',\n\n 'find', 'first', 'fits', 'forget',\n 'gasrunvm', 'gasrunvmcode', 'gasrunvmctx', 'gasrunvmdict',\n 'halt', 'hash', 'hashB', 'hashu', 'hold', 'hole',\n 'if', 'ifnot', 'include',\n\n 'list',\n 'minmax', 'max', 'min', 'mod',\n\n 'negate', 'newkeypair', 'nil', 'nip', 'nop', 'not', 'now', 'null',\n 'or', 'over',\n 'pair', 'pick',\n 'quit',\n\n 'remaining', 'reverse', 'roll', 'rot',\n 'runvm', 'runvmcode', 'runvmctx', 'runvmdict',\n\n 'sbitrefs', 'sbits', 'second', 'sgn', 'sign', 'shash', 'space', 'swap',\n 'single', 'skipspc', 'srefs',\n\n 'ten', 'third', 'times', 'triple', 'tuck', 'tuple', 'type',\n 'ufits', 'uncons', 'unpair', 'unsingle', 'until', 'untriple', 'untuple',\n\n 'variable',\n 'while',\n 'word', 'words',\n 'xor',\n ],\n 'literal': ['true', 'false'],\n 'type': [],\n 'built_in': [],\n },\n\n 'contains': [\n // Comments\n {\n 'scope': 'comment',\n 'variants': [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ],\n 'relevance': 0,\n },\n\n // Words, variables, and constants\n {\n 'match': [\n /\\s/,\n /2?constant/,\n /\\s+/,\n IDENTIFIER,\n ],\n 'scope': {\n 2: 'keyword',\n 4: 'variable.constant',\n },\n },\n {\n 'match': [\n /\\s/,\n /variable/,\n /\\s+/,\n IDENTIFIER,\n ],\n 'scope': {\n 2: 'keyword',\n 4: 'variable',\n },\n },\n {\n 'match': [\n /}/,\n /\\s+/,\n WORD_DEFS,\n /\\s+/,\n IDENTIFIER,\n ],\n 'scope': {\n 1: 'punctuation',\n 3: 'operator',\n 5: 'function', // this is the closest we have for \"word\" in fift\n },\n },\n\n // Operators\n {\n 'scope': 'operator',\n 'match': hljs.regex.either(\n // Full list can be found in\n // Appendix A. List of Fift words\n // Ordered the same way source code does this.\n // Except: shorter words must follow\n // longer ones with the same base part.\n // Example: `#` comes after `#s`\n /!/,\n\n /#>/, /#s/, /\\$#/, /#/,\n\n /\\$\\+/, /\\$,/, /\\$\\d/, /\\$=/, /\\$(?=\\()/,\n /\\$>smca/, /\\$>s/,\n /\\$@\\+/, /\\$@\\?\\+/, /\\$@\\?/, /\\$@/,\n /\\$cmp/, /\\$len/, /\\$pos/, /\\$reverse/,\n\n /%1<>c/, /\\*>>r/, /\\*>>/, /\\*mod/, /\\*/,\n\n /\\+!/, /\\+/, /,/, /-!/, /-/,\n /-1</, /0=/, /0>/,\n /1\\+!/, /1\\+/, /1-!/, /1-/, /1</, /=/, />>c/, />>r/, />>/, />/,\n\n /\\?dup/,\n\n /@'/, /@/,\n\n /B\\+/, /B,/, /B=/, /B>Li@\\+/, /B>Li@/, /B>Lu@\\+/, /B>Lu@/, /B>boc/,\n /B>file/, /B>i@\\+/, /B>i@/, /B>u@\\+/, /B>u@/,\n /B@\\?\\+/, /B@\\+/, /B@\\?/, /B@/,\n /Bcmp/, /BhashB/, /Bhashu/, /Bhash/, /Blen/, /Bx\\./,\n /B\\|/, /Li>B/, /Lu>B/,\n\n /\\[\\]/, /\\[compile\\]/, /\\[/, /\\]/,\n\n /atom\\?/,\n\n /b\\+/, /b\\._/, /b\\./,\n /b>idict!\\+/, /b>idict!/, /b>sdict!\\+/, /b>sdict!/,\n /b>udict!\\+/, /b>udict!/,\n /b>/, /boc+>B/, /boc>B/,\n\n /csr\\./,\n /def\\?/,\n /empty\\?/, /eq\\?/,\n /file-exists\\?/, /file>B/,\n\n /i,/, /i>B/, /i@\\+/, /i@/, /i@\\?\\+/, /i@\\?/,\n /idict!\\+/, /idict!/, /idict-/, /idict@-/, /idict@/,\n\n /null!/, /null\\?/,\n /pfxdict!\\+/, /pfxdict!/, /pfxdict@/, /priv>pub/,\n /ref@\\+/, /ref@/, /ref@\\?\\+/, /ref@\\?/,\n\n /s,/, /s>c/, /s>/,\n /sdict!\\+/, /sdict!/, /sdict-/, /sdict@-/, /sdict@/,\n /smca>\\$/, /sr,/,\n\n /tuple\\?/,\n\n /u,/, /u>B/, /u@\\+/, /u@\\?\\+/, /u@\\?/,\n /udict!\\+/, /udict!/, /udict-/, /udict@-/, /udict@/,\n /undef\\?/,\n\n /x\\._/, /x\\./,\n\n /\\|\\+/, /\\|/, /\\|_/,\n\n // Should be the last:\n new RegExp(\"(?<=\\\\s)\\\\.(?=\\\\s)\"),\n ),\n },\n\n // Primitives\n {\n 'scope': 'number',\n 'match': hljs.regex.either(\n /(0[xX][0-9a-fA-F]+)/,\n /(0[bB][01]+)/,\n /(-?[0-9]+(\\/-?[0-9]+)?)/,\n ),\n },\n { 'scope': 'string', 'match': /\"([^\"\\r\\n\\\\]|\\\\.)*\"/ },\n {\n // slice hex literal\n 'scope': 'symbol',\n 'match': /[xX]\\{[0-9a-fA-F_]*}/,\n 'relevance': 10,\n },\n {\n // byte hex literal\n 'scope': 'symbol',\n 'match': /[bB]\\{[01]*}/,\n 'relevance': 10,\n },\n {\n // atom\n 'scope': 'symbol',\n 'match': /'[^\\s]+/,\n },\n\n // Punctuation\n { 'scope': 'punctuation', 'match': /[\\[\\{\\}\\],]/ },\n ],\n }\n}\n", "/*\nLanguage: TL-B\nAuthor: Nikita Sobolev \nDescription: TL-B serves to describe the type system, constructors,\n and existing functions.\nWebsite: https://ton.org/docs/#/overviews/TL-B\nCategory: smartcontracts\n*/\n\nconst IDENTIFIER = /[a-zA-Z_][0-9a-zA-Z_]*/\n\nexport default function(hljs) {\n return {\n 'name': 'TL-B',\n 'aliases': ['Tlb', 'tlb', 'TLB', 'tl-b', 'TL-b', 'Tl-B', 'Tl-b'],\n 'case_insensitive': false,\n\n 'keywords': {\n 'keyword': [],\n 'literal': ['True', 'BoolTrue', 'False', 'BoolFalse', 'Null'],\n 'type': [\n // These are special cased, because they are used way too often:\n 'Type', 'Bool', 'Unit', 'Maybe', 'Either', 'Both', 'Cell',\n // Not mentioned, but also widely used:\n 'uint8', 'uint15', 'uint16', 'uint32', 'uint63', 'uint64',\n 'int8', 'int16', 'int32', 'int64',\n 'bits256', 'bits512',\n ],\n 'built_in': [],\n },\n\n 'contains': [\n // Comments\n {\n 'scope': 'comment',\n 'variants': [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE,\n ],\n },\n\n // Type definitions and tags\n {\n 'scope': 'symbol',\n 'match': hljs.regex.either(\n /#[0-9a-f]*_?/,\n /\\$[01]*_?/,\n /##/,\n /#<=/,\n /#=/, //,\n ),\n },\n\n // Primitives\n { 'scope': 'number', 'match': /[0-9]+/ },\n\n // Punctuation\n { 'scope': 'punctuation', 'match': /[;\\(\\):\\[\\]\\{\\}]/ },\n ],\n }\n}\n", "export const div = (props, ...children) =>\n createElement(\"div\", props, ...children);\nexport const code = (props, ...children) =>\n createElement(\"code\", props, ...children);\nexport const img = (props, ...children) =>\n createElement(\"img\", props, ...children);\n\nexport function appendChildren(parent, children) {\n for (const child of children) {\n if (!child) continue;\n switch (typeof child) {\n case \"string\":\n const el = document.createTextNode(child);\n parent.appendChild(el);\n break;\n default:\n parent.appendChild(child);\n break;\n }\n }\n}\n\nexport function setStyle(el, style) {\n if (typeof style === \"string\") {\n el.setAttribute(\"style\", style);\n } else {\n Object.assign(el.style, style);\n }\n}\n\nexport function setClass(el, className) {\n className.split(/\\s/).forEach((element) => {\n if (element) {\n el.classList.add(element);\n }\n });\n}\n\nexport function setProps(el, props) {\n const eventRegex = /^on([a-z]+)$/i;\n for (const propName in props) {\n if (!propName) continue;\n\n if (propName === \"style\") {\n setStyle(el, props[propName]);\n } else if (propName === \"className\") {\n setClass(el, props[propName]);\n } else if (eventRegex.test(propName)) {\n const eventToListen = propName.replace(eventRegex, \"$1\").toLowerCase();\n el.addEventListener(eventToListen, props[propName]);\n } else {\n el.setAttribute(propName, props[propName]);\n }\n }\n}\n\nexport function createElement(type, props, ...children) {\n if (typeof type === \"function\") {\n return type(props);\n } else {\n const el = document.createElement(type);\n if (props && typeof props === \"object\") {\n setProps(el, props);\n }\n if (children) {\n appendChildren(el, children);\n }\n return el;\n }\n}\n", "import { div, img } from \"./dom\";\nimport fileWhite from \"./res/file-white.svg\";\nimport fileBlack from \"./res/file-black.svg\";\nimport folderClosedWhite from \"./res/folder-closed-white.svg\";\nimport folderClosedBlack from \"./res/folder-closed-black.svg\";\nimport folderOpenWhite from \"./res/folder-open-white.svg\";\nimport folderOpenBlack from \"./res/folder-open-black.svg\";\nimport { classNames } from \"./contract-verifier-ui\";\n\nconst icons = {\n dark: {\n file: fileWhite,\n folder: {\n open: folderOpenWhite,\n closed: folderClosedWhite,\n },\n },\n light: {\n file: fileBlack,\n folder: {\n open: folderOpenBlack,\n closed: folderClosedBlack,\n },\n },\n};\n\nconst svgToInline = (svg) =>\n `data:image/svg+xml;base64,${Buffer.from(svg, \"utf8\").toString(\"base64\")}`;\n\nexport const TreeFile = ({ name }, theme) => {\n return div(\n { className: `${classNames.FILE} ${classNames.TREE_ITEM}` },\n img({\n src: svgToInline(icons[theme].file),\n }),\n div(null, name),\n );\n};\n\nfunction changeOpened(theme, event) {\n const folderHeader = event.target.classList.contains(\"folder-header\")\n ? event.target\n : event.target.parentElement;\n const opened = folderHeader.getAttribute(\"opened\") === \"true\";\n const newOpened = !opened;\n\n folderHeader.children[0].attributes.src.value = svgToInline(\n newOpened ? icons[theme].folder.open : icons[theme].folder.closed,\n );\n\n try {\n const sibling = folderHeader.nextElementSibling;\n if (newOpened) {\n sibling.classList.remove(\"hide\");\n } else {\n sibling.classList.add(\"hide\");\n }\n } catch (e) {\n console.warn(`No sibling of elem ${folderHeader} found ...`);\n }\n\n folderHeader.setAttribute(\"opened\", newOpened);\n}\n\nexport const TreeFolder = (props, theme, ...children) => {\n const opened = props.opened || false;\n const folderIcon = icons[theme].folder[opened ? \"open\" : \"closed\"];\n const folderName = props.name || \"unknown\";\n\n return div(\n { className: classNames.FOLDER_CONTAINER },\n div(\n {\n onClick: changeOpened.bind(this, theme),\n className: `folder-header ${classNames.FOLDER} ${classNames.TREE_ITEM}`,\n opened,\n },\n img({\n src: svgToInline(folderIcon),\n }),\n div(null, folderName),\n ),\n div({ className: `${opened ? \"\" : \"hide\"} folder-content` }, ...children),\n );\n};\n"], + "mappings": "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vB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,SAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAOlI,EAAO,EAAA,EAAK,UAAA,EACvB,IAAIkI,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,SAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,UAAY,UAAA,EACvB,IAAIA,EAAO,UAAY,UAAA,EACvB,IAAIA,EAAO,UAAY,UAAA,EACvB,IAAIA,EAAO,UAAY,SAAA,EACvB,IAAIA,EAAO,UAAY,SAAA,EACvB,IAAIA,EAAO,UAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,SAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,SAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,CAAA,EASzB,SAASuB,GAAe/H,EAAAA,CACtB,OAAkBA,IAAd,UACK,CACL,IAAIwG,EAAO,WAAYjI,EAAQ,CAAA,CAAA,EAC/B,IAAIiI,EAAO,WAAajI,EAAQ,CAAA,CAAA,EAChC,IAAIiI,EAAO,WAAYjI,EAAQ,CAAA,CAAA,EAC/B,IAAIiI,EAAO,UAAajI,EAAQ,CAAA,CAAA,EAChC,IAAIiI,EAAO,WAAYjI,EAAQ,CAAA,CAAA,EAC/B,IAAIiI,EAAO,YAAajI,EAAQ,CAAA,CAAA,EAChC,IAAIiI,EAAO,WAAYjI,EAAQ,CAAA,CAAA,EAC/B,IAAIiI,EAAO,WAAajI,EAAQ,CAAA,CAAA,CAAA,EAI3B,CACL,IAAIiI,EAAOhI,EAAO,CAAA,EAAI,UAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,UAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,UAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,UAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,UAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,SAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,UAAA,EACtB,IAAIgI,EAAOhI,EAAO,CAAA,EAAI,SAAA,CAAA,CAAA,CAY5B,SAASwJ,GAAYrD,EAAiBC,EAAAA,CACpC,IAAIjG,EAAGC,EAAGuF,EAAG1B,EAAG4B,GAAGyB,GAAGC,GAAGjG,GAAGkG,GAAIC,GAAInB,GAAGK,GD0Gf5B,GAClB0E,GACJC,GACAC,GC3GIpD,GAAc,CAAA,EAWpB,IATApG,EAAIiG,EAAE,CAAA,EACNhG,EAAIgG,EAAE,CAAA,EACNT,EAAIS,EAAE,CAAA,EACNnC,EAAImC,EAAE,CAAA,EACNP,GAAIO,EAAE,CAAA,EACNkB,GAAIlB,EAAE,CAAA,EACNmB,GAAInB,EAAE,CAAA,EACN9E,GAAI8E,EAAE,CAAA,EAEDE,GAAI,EAAGA,GAAI,GAAIA,IAAK,EACnBA,GAAI,IACNK,GAAa,EAAJL,GACTC,GAAED,EAAAA,EAAK,IAAI0B,EAAO7B,EAAMQ,EAAAA,EAASR,EAAMQ,GAAS,CAAA,CAAA,GAEhDJ,GAAED,EAAAA,EAAKqC,IDwFa5D,GCxFUwB,GAAED,GAAI,CAAA,EDyFlCmD,GAAAA,OACJC,GAAAA,OACAC,GAAAA,OAFIF,GAASxB,GAAQlD,GAAG,EAAA,EACxB2E,GAASzB,GAAQlD,GAAG,EAAA,EACpB4E,GAAOzB,GAAOnD,GAAG,CAAA,EAEZ,IAAIiD,EACTyB,GAAO7B,EAAY8B,GAAO9B,EAAY+B,GAAK/B,EAC3C6B,GAAO5B,EAAW6B,GAAO7B,EAAW8B,GAAK9B,CAAAA,GC/FEtB,GAAED,GAAI,CAAA,EAAIwC,GAAUvC,GAAED,GAAI,EAAA,CAAA,EAAMC,GAAED,GAAI,EAAA,CAAA,EAEjFkB,GAAKoB,GAAatH,GAAG4H,GAAUrD,EAAAA,EAAIsC,GAAMtC,GAAGyB,GAAGC,EAAAA,EAAI+B,GAAShD,EAAAA,EAAIC,GAAED,EAAAA,CAAAA,EAClEmB,GAAKgB,GAAaJ,GAAUlI,CAAAA,EAAIiI,GAAOjI,EAAGC,EAAGuF,CAAAA,CAAAA,EAC7CrE,GAAIiG,GACJA,GAAID,GACJA,GAAIzB,GACJA,GAAI4C,GAAaxE,EAAGuD,EAAAA,EACpBvD,EAAI0B,EACJA,EAAIvF,EACJA,EAAID,EACJA,EAAIsI,GAAajB,GAAIC,EAAAA,EAYvB,OATArB,EAAE,CAAA,EAAKqC,GAAatI,EAAGiG,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAarI,EAAGgG,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAa9C,EAAGS,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAaxE,EAAGmC,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAa5C,GAAGO,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAanB,GAAGlB,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAalB,GAAGnB,EAAE,CAAA,CAAA,EACzBA,EAAE,CAAA,EAAKqC,GAAanH,GAAG8E,EAAE,CAAA,CAAA,EAElBA,CAAAA,CAyFT,IAAAwD,GAAA,SAAArI,EAAA,CAmBE,SAAAuF,EAAYtF,EAAcC,EAAkBZ,EAAAA,CAA5C,IAAAkG,EAAA,KACE,GAAoBvF,IAAd,WAAuCA,IAAd,UAC7B,MAAM,IAAIhE,MAAMyC,CAAAA,EAGlB,IAAM+G,GAAkBnG,GAAW,CAAA,EAAA,OADnCoG,EAAAC,EAAAA,KAAAA,KAAM1F,EAASC,EAAaZ,CAAAA,GAAAA,MAIvBwC,EAAS4D,EAAKnD,EACnBmD,EAAKxD,EAAAA,GACLwD,EAAKvK,EAAAA,GACLuK,EAAKtE,EAAgBtF,EAAgB4J,EAAKxF,EAAawF,EAAK1J,EAAS0J,EAAKvK,CAAAA,EAC1EuK,EAAKjE,EAAYwG,GACjBvC,EAAK1D,EAAiB,SAAU4D,GAAAA,CAC9B,OAAOA,GAAMlE,MAAAA,CAAAA,EAEfgE,EAAKzD,EAAe+F,GACpBtC,EAAK3D,EAAe,SAAUxB,GAAW2E,GAAiBC,GAAiBN,GAAAA,CACzE,OAjHN,SACEtE,GACA2E,GACAC,GACAN,GACA5E,GAAAA,CAYA,QAVI7E,GAMEgK,GAAmD,IAAvCF,GAAkB,MAAS,IAAO,GAElDG,GAAWH,GAAkBC,GAExB5E,GAAU7E,QAAU0J,IACzB7E,GAAU5E,KAAK,CAAA,EAcjB,IAXA4E,GAAU2E,KAAoB,CAAA,GAAM,KAAS,GAAMA,GAAkB,GAKrE3E,GAAU6E,EAAAA,EAAqB,WAAXC,GAGpB9E,GAAU6E,GAAS,CAAA,EAAMC,GN1ND,WM0N0B,EAG7CjK,GAAI,EAAGA,GAAImF,GAAU7E,OAAQN,IAlBd,GAmBlByJ,GAAIoD,GAAY1H,GAAUmB,MAAMtG,GAAGA,GAnBjB,EAAA,EAmBuCyJ,EAAAA,EAwC3D,OArCkB5E,KAAd,UAEO,EADT4E,GAAKA,IAED,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,CAAAA,EAIE,CACPzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,EACLzB,GAAE,CAAA,EAAGwB,EACLxB,GAAE,CAAA,EAAGyB,CAAAA,CAAAA,EA2CiB/F,GAAW2E,GAAiBC,GAAiBN,GAAG5E,CAAAA,CAAAA,EAGxEyF,EAAKlE,EAAoBwG,GAAe/H,CAAAA,EACxCyF,EAAKxE,EAAmB,KACxBwE,EAAKjI,EAA6BwC,IAAd,UAAwB,IAAM,IAClDyF,EAAK9D,EAAAA,GAED6D,GAAyB,SAC3BC,EAAKtD,EAAYzC,EAAiB,UAAW8F,GAAyB,QAAGC,EAAKvK,CAAAA,CAAAA,EAAAA,CAAAA,CAGpF,OAjDmCgI,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAArC,CAAAA,EC/P7BwH,GAAU,CACd,IAAI7B,EAAO,EAAY,CAAA,EACvB,IAAIA,EAAO,EAAY,KAAA,EACvB,IAAIA,EAAO,WAAY,KAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,EAAY,KAAA,EACvB,IAAIA,EAAO,EAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,KAAA,EACvB,IAAIA,EAAO,EAAY,GAAA,EACvB,IAAIA,EAAO,EAAY,GAAA,EACvB,IAAIA,EAAO,EAAY,UAAA,EACvB,IAAIA,EAAO,EAAY,UAAA,EACvB,IAAIA,EAAO,EAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,GAAA,EACvB,IAAIA,EAAO,WAAY,KAAA,EACvB,IAAIA,EAAO,WAAY,KAAA,EACvB,IAAIA,EAAO,WAAY,KAAA,EACvB,IAAIA,EAAO,WAAY,GAAA,EACvB,IAAIA,EAAO,EAAY,KAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,KAAA,EACvB,IAAIA,EAAO,EAAY,UAAA,EACvB,IAAIA,EAAO,WAAY,UAAA,CAAA,EAGnB8B,GAAS,CACb,CAAC,EAAG,GAAI,EAAG,GAAI,EAAA,EACf,CAAC,EAAG,GAAI,GAAI,GAAI,CAAA,EAChB,CAAC,GAAI,EAAG,GAAI,GAAI,EAAA,EAChB,CAAC,GAAI,GAAI,GAAI,GAAI,EAAA,EACjB,CAAC,GAAI,GAAI,GAAI,EAAG,EAAA,CAAA,EASlB,SAAS9D,GAAYC,EAAAA,CACnB,IAAItJ,EACEiD,EAAS,CAAA,EAEf,IAAKjD,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBiD,EAAOjD,CAAAA,EAAK,CAAC,IAAIqL,EAAO,EAAG,CAAA,EAAI,IAAIA,EAAO,EAAG,CAAA,EAAI,IAAIA,EAAO,EAAG,CAAA,EAAI,IAAIA,EAAO,EAAG,CAAA,EAAI,IAAIA,EAAO,EAAG,CAAA,CAAA,EAGrG,OAAOpI,CAAAA,CAST,SAASmK,GAAe5C,EAAAA,CACtB,IAAIxK,EACEqN,EAAQ,CAAA,EACd,IAAKrN,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBqN,EAAMrN,CAAAA,EAAKwK,EAAMxK,CAAAA,EAAGsG,MAAAA,EAGtB,OAAO+G,CAAAA,CAUT,SAASC,GAAU9D,EAAwBgB,EAAAA,CACzC,IAAI+C,EAAOnF,EAAGI,EAAGgF,EF8IMhK,GAAWC,GAAWuF,GAAW1B,GAAW4B,GE7I7DuE,GAAI,CAAA,EACRC,GAAI,CAAA,EAEN,GAAalE,IAAT,KACF,IAAKpB,EAAI,EAAGA,EAAIoB,EAAMlJ,OAAQ8H,GAAK,EACjCoC,GAAOpC,IAAM,GAAK,CAAA,GAAKA,IAAM,GAAK,EAAK,CAAA,EAAK8D,GAC1C1B,GAAOpC,IAAM,GAAK,CAAA,GAAKA,IAAM,GAAK,EAAK,CAAA,EACvC,IAAIiD,EAAO7B,EAAMpB,EAAI,CAAA,EAAIoB,EAAMpB,CAAAA,CAAAA,CAAAA,EAKrC,IAAKmF,EAAQ,EAAGA,EAAQ,GAAIA,GAAS,EAAG,CAKtC,IAHAC,EAAInE,GAAAA,EAGCjB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBqF,GAAErF,CAAAA,GF2HiB5E,GE3HHgH,EAAMpC,CAAAA,EAAG,CAAA,EF2HK3E,GE3HD+G,EAAMpC,CAAAA,EAAG,CAAA,EF2HGY,GE3HCwB,EAAMpC,CAAAA,EAAG,CAAA,EF2HCd,GE3HGkD,EAAMpC,CAAAA,EAAG,CAAA,EF2HDc,GE3HKsB,EAAMpC,CAAAA,EAAG,CAAA,EF4H1E,IAAIiD,EACT7H,GAAEyH,EAAYxH,GAAEwH,EAAYjC,GAAEiC,EAAY3D,GAAE2D,EAAY/B,GAAE+B,EAC1DzH,GAAE0H,EAAWzH,GAAEyH,EAAWlC,GAAEkC,EAAW5D,GAAE4D,EAAWhC,GAAEgC,CAAAA,GE5HtD,IAAK9C,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBsF,GAAEtF,CAAAA,EAAK8D,GAASuB,IAAGrF,EAAI,GAAK,CAAA,EAAI+C,GAAQsC,IAAGrF,EAAI,GAAK,CAAA,EAAI,CAAA,CAAA,EAE1D,IAAKA,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB,IAAKI,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBgC,EAAMpC,CAAAA,EAAGI,CAAAA,EAAK0D,GAAS1B,EAAMpC,CAAAA,EAAGI,CAAAA,EAAIkF,GAAEtF,CAAAA,CAAAA,EAK1C,IAAKA,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB,IAAKI,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBgF,EAAEhF,CAAAA,GAAI,EAAIJ,EAAI,EAAII,GAAK,CAAA,EAAK2C,GAAQX,EAAMpC,CAAAA,EAAGI,CAAAA,EAAI2E,GAAO/E,CAAAA,EAAGI,CAAAA,CAAAA,EAK/D,IAAKJ,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB,IAAKI,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBgC,EAAMpC,CAAAA,EAAGI,CAAAA,EAAK0D,GACZsB,EAAEpF,CAAAA,EAAGI,CAAAA,EACL,IAAI6C,EAAAA,CACDmC,GAAGpF,EAAI,GAAK,CAAA,EAAGI,CAAAA,EAAGyC,EAAYuC,GAAGpF,EAAI,GAAK,CAAA,EAAGI,CAAAA,EAAGyC,EAAAA,CAChDuC,GAAGpF,EAAI,GAAK,CAAA,EAAGI,CAAAA,EAAG0C,EAAWsC,GAAGpF,EAAI,GAAK,CAAA,EAAGI,CAAAA,EAAG0C,CAAAA,CAAAA,EAOxDV,EAAM,CAAA,EAAG,CAAA,EAAK0B,GAAS1B,EAAM,CAAA,EAAG,CAAA,EAAI0C,GAAQK,CAAAA,CAAAA,CAAAA,CAG9C,OAAO/C,CAAAA,CA8ET,SAASmD,GAAYvF,EAAAA,CACnB,IAAIlI,EACF0N,EACAC,EAAkB,EAEd5K,EAAS,CAAC,EAAG,CAAA,EACjB6K,EAAO,CAAK,WAAJ1F,EAAiBA,EPhOH,WOgOqB,OAAA,EAE7C,IAAKlI,EAAa,EAAGA,GAAc,EAAGA,KAEpC0N,EAAQE,EAAK5N,GAAc,CAAA,IAAQ,EAAIA,EAAe,OAIzC,GAAK2N,IAAoB,IACpC5K,EAAQ4K,EAAkB,GAAM,CAAA,GAAMD,GAAiC,GAAvBC,EAAkB,GAClEA,GAAmB,GAMvB,OAHAA,EAAkBA,IAAoB,EAAIA,EAAkB,EAC5D5K,EAAO,CAAA,GAAM4K,EAEN,CAAErN,MAAOqN,EAAkB,EAAI,EAAI5K,EAAS,CAACA,EAAO,CAAA,CAAA,EAAKxC,OAAQ,EAAsB,EAAlBoN,CAAAA,CAAAA,CAwC9E,SAASE,GAAcC,EAAAA,CACrB,OAAOzK,EAAeoK,GAAYK,EAAc,MAAA,EAAIA,CAAAA,CAAAA,CAUtD,SAASC,GAAS9N,EAAqB+N,EAAAA,CACrC,IACElO,EADEmO,EAAaR,GAAYO,CAAAA,EAIvBE,EAAeF,IAAkB,EACrCG,GAAgBD,GAFlBD,EAAa5K,EAAe4K,EAAYhO,CAAAA,GAEY,MAAEG,OAAS8N,GAAiBA,EAEhF,IAAKpO,EAAI,EAAGA,EAAIqO,EAAcrO,IAC5BmO,EAAkB,MAAE5N,KAAK,CAAA,EAG3B,OAAO4N,EAAkB,KAAA,CAiC3B,IAAAG,GAAA,SAAA1J,EAAA,CAmCE,SAAAuF,EAAYtF,EAAcC,EAAkBZ,EAAAA,CAA5C,IAAAkG,EAAA,KACMmE,GAAY,EACdzI,GAAmB,EAEfuE,GAAkBnG,GAAW,CAAA,EAInC,IALAoG,EAAAC,EAAAA,KAAAA,KAAM1F,EAASC,EAAaZ,CAAAA,GAAAA,MAKnBe,YAAc,EAAG,CACxB,GAAIoF,GAAyB,SAAKA,GAAyB,QACzD,MAAM,IAAIxJ,MPhTc,+BAAA,EOiTnB,GAAIyJ,EAAKpF,IAAe,aAAeoF,EAAKpF,IAAe,YAChE,MAAM,IAAIrE,MAAM,0CAAA,CAAA,CAYpB,OARAyJ,EAAKvK,EAAe,EACpBuK,EAAKtE,EAAgBtF,EAAgB4J,EAAKxF,EAAawF,EAAK1J,EAAS0J,EAAKvK,CAAAA,EAC1EuK,EAAKjE,EAAYiH,GACjBhD,EAAK1D,EAAiBwG,GACtB9C,EAAKzD,EAAewC,GACpBiB,EAAKlE,EAAoBiD,GAAAA,EAEzBiB,EAAK9D,EAAAA,GACG3B,EAAAA,CACN,IAAK,WACHyF,EAAKxE,EAAmBA,GAAmB,KAC3CwE,EAAKjI,EAAe,IACpBiI,EAAKxD,EAAAA,GAELwD,EAAK5D,EAAS4D,EAAKnD,EACnB,MACF,IAAK,WACHmD,EAAKxE,EAAmBA,GAAmB,KAC3CwE,EAAKjI,EAAe,IACpBiI,EAAKxD,EAAAA,GAELwD,EAAK5D,EAAS4D,EAAKnD,EACnB,MACF,IAAK,WACHmD,EAAKxE,EAAmBA,GAAmB,IAC3CwE,EAAKjI,EAAe,IACpBiI,EAAKxD,EAAAA,GAELwD,EAAK5D,EAAS4D,EAAKnD,EACnB,MACF,IAAK,WACHmD,EAAKxE,EAAmBA,GAAmB,IAC3CwE,EAAKjI,EAAe,IACpBiI,EAAKxD,EAAAA,GAELwD,EAAK5D,EAAS4D,EAAKnD,EACnB,MACF,IAAK,WACHoH,GAAY,GACZjE,EAAKxE,EAAmBA,GAAmB,KAE3CwE,EAAKjI,EAAAA,GACLiI,EAAK9D,EAAAA,GACL8D,EAAKxD,EAAAA,GACLwD,EAAK5D,EAAS,KACd,MACF,IAAK,WACH6H,GAAY,GACZjE,EAAKxE,EAAmBA,GAAmB,KAE3CwE,EAAKjI,EAAAA,GACLiI,EAAK9D,EAAAA,GACL8D,EAAKxD,EAAAA,GACLwD,EAAK5D,EAAS,KACd,MACF,IAAK,UACH6H,GAAY,EACZjE,EAAKxE,EAAmBA,GAAmB,KAC3CwE,EAAKkE,EAAgBtK,CAAAA,EAErBoG,EAAKjI,EAAAA,GACLiI,EAAK9D,EAAAA,GACL8D,EAAKxD,EAAAA,GAELwD,EAAK5D,EAAS4D,EAAKmE,EACnB,MACF,IAAK,UACHF,GAAY,EACZjE,EAAKxE,EAAmBA,GAAmB,KAC3CwE,EAAKkE,EAAgBtK,CAAAA,EAErBoG,EAAKjI,EAAAA,GACLiI,EAAK9D,EAAAA,GACL8D,EAAKxD,EAAAA,GAELwD,EAAK5D,EAAS4D,EAAKmE,EACnB,MACF,IAAK,YACHnE,EAAKxE,EAAmBA,GAAmB,KAC3CyI,GAAYjE,EAAKoE,EAAkBxK,CAAAA,EAEnCoG,EAAKjI,EAAAA,GACLiI,EAAK9D,EAAAA,GACL8D,EAAKxD,EAAAA,GACLwD,EAAK5D,EAAS,KACd,MACF,IAAK,YACH4D,EAAKxE,EAAmBA,GAAmB,KAC3CyI,GAAYjE,EAAKoE,EAAkBxK,CAAAA,EAEnCoG,EAAKjI,EAAAA,GACLiI,EAAK9D,EAAAA,GACL8D,EAAKxD,EAAAA,GACLwD,EAAK5D,EAAS,KACd,MACF,QACE,MAAM,IAAI7F,MAAMyC,CAAAA,CAAAA,CAAAA,OAIpBgH,EAAK3D,EAAe,SAAUxB,GAAW2E,GAAiBC,GAAiBS,GAAOnI,GAAAA,CAChF,OA7UN,SACE8C,GACA2E,GACA6E,GACAnE,GACAoE,GACAL,GACAlK,GAAAA,CAEA,IAAIrE,GAEF6O,GADAC,GAAe,EAEX7L,GAAS,CAAA,EACb8L,GAAkBH,KAAc,EAChCI,GAAkBlF,KAAoB,EAKxC,IAAK9J,GAAI,EAAGA,GAAIgP,IAAmBlF,IAAmB8E,GAAW5O,IAAK+O,GACpEvE,GAAQ8C,GAAUnI,GAAUmB,MAAMtG,GAAGA,GAAI+O,EAAAA,EAAkBvE,EAAAA,EAC3DV,IAAmB8E,GAOrB,IAJAzJ,GAAYA,GAAUmB,MAAMtG,EAAAA,EAC5B8J,IAAoC8E,GAG7BzJ,GAAU7E,OAASyO,IACxB5J,GAAU5E,KAAK,CAAA,EAUjB,IALA4E,IADAnF,GAAI8J,KAAoB,IACT,CAAA,GAAMyE,IAAmBvO,GAAI,EAAT,EAEnCmF,GAAU4J,GAAkB,CAAA,GAAM,WAClCvE,GAAQ8C,GAAUnI,GAAWqF,EAAAA,EAEN,GAAhBvH,GAAO3C,OAAc+D,KAC1BwK,GAAOrE,GAAMsE,GAAe,CAAA,EAAIA,GAAe,EAAK,CAAA,EACpD7L,GAAO1C,KAAKsO,GAAK3D,CAAAA,EAAAA,EACG,GAAhBjI,GAAO3C,QAAe+D,MAG1BpB,GAAO1C,KAAKsO,GAAK5D,CAAAA,EAGS,IAF1B6D,IAAgB,GAEgBF,IAA5B,IACFtB,GAAU,KAAM9C,EAAAA,EAChBsE,GAAe,GAInB,OAAO7L,EAAAA,EAwRDkC,GACA2E,GACAC,EACAS,GACA1E,GACAyI,GACAlM,EAAAA,CAAAA,EAIAgI,GAAyB,SAC3BC,EAAKtD,EAAYzC,EAAiB,UAAW8F,GAAyB,QAAGC,EAAKvK,CAAAA,CAAAA,EAAAA,CAAAA,CA+EpF,OAnPmCgI,EAAAA,EAAAA,CAAAA,EA+KvBkH,EAAAA,UAAAA,EAAV,SAA4B/K,EAAuCgL,EAAAA,CACjE,IAAM7E,EAzMV,SAA8BnG,GAAAA,CAC5B,IAAMmG,GAAkBnG,IAAW,CAAA,EAEnC,MAAO,CACLiL,SAAU5K,EAAiB,WAAY8F,GAA0B,SAAG,EAAG,CAAE7J,MAAO,CAAA,EAAIC,OAAQ,CAAA,CAAA,EAC5F2O,cAAe7K,EAAiB,gBAAiB8F,GAA+B,cAAG,EAAG,CAAE7J,MAAO,CAAA,EAAIC,OAAQ,CAAA,CAAA,CAAA,CAAA,EAoM9DyD,GAAW,CAAA,CAAA,EACpDgL,IACF7E,EAA0B,SAAI6E,GAEhC,IAAMG,EAAe9L,EACnBwK,GAAc1D,EAA0B,QAAA,EACxC0D,GAAc1D,EAA+B,aAAA,CAAA,EAK/C,GAAIA,EAA+B,cAAU,SAAM,GAAKA,EAA0B,SAAU,SAAM,EAAG,CAEnG,QADMiF,GAAerB,GAASoB,EAAcrK,KAAKc,IAAqB,CAAA,EAC7D9F,GAAI,EAAGA,GAAIsP,GAAahP,OAAQN,IAAKgF,KAAKc,IAAqB,EACtEd,KAAKoB,EAAoBpB,KAAKqB,EAC5BiJ,GAAahJ,MAAMtG,GAAGA,IAAKgF,KAAKc,IAAqB,EAAA,EACrDd,KAAKoB,CAAAA,EAEPpB,KAAKM,GAAgBN,KAAKc,EAE5B,MAAO,EAAA,CAEP,MAAO,GAAA,EASDmJ,EAAAA,UAAAA,EAAV,SAA0B/K,EAAAA,CACxB,IAAMmG,EA3NV,SAA4BnG,GAAAA,CAC1B,IAAMmG,GAAkBnG,IAAW,CAAA,EAEnC,MAAO,CACLqL,QAAShL,EAAiB,UAAW8F,GAAyB,QAAG,CAAA,EAEjE8E,SAAU,CAAE3O,MAAO,CAAC,UAAA,EAAaC,OAAQ,EAAA,EACzC2O,cAAe7K,EAAiB,gBAAiB8F,GAA+B,cAAG,EAAG,CAAE7J,MAAO,CAAA,EAAIC,OAAQ,CAAA,CAAA,CAAA,CAAA,EAoNhEyD,GAAW,CAAA,CAAA,EAEtDc,KAAK0J,EAAkBxK,EAASmG,EAA0B,QAAA,EAE1D,QADMiF,EAAerB,GAASF,GAAc1D,EAAyB,OAAA,EAAIrF,KAAKc,IAAqB,CAAA,EAC1F9F,EAAI,EAAGA,EAAIsP,EAAahP,OAAQN,GAAKgF,KAAKc,IAAqB,EACtEd,KAAKoB,EAAoBpB,KAAKqB,EAC5BiJ,EAAahJ,MAAMtG,EAAGA,GAAKgF,KAAKc,IAAqB,EAAA,EACrDd,KAAKoB,CAAAA,EAEPpB,KAAKM,GAAgBN,KAAKc,EAE5Bd,KAAKO,EAAAA,EAAY,EAUT0J,EAAAA,UAAAA,EAAV,SAAmB/K,EAAAA,CACjB,IAAMsL,EAAoBjM,EACxB,CAAE/C,MAAOwE,KAAKG,EAAUmB,MAAAA,EAAS7F,OAAQuE,KAAKI,CAAAA,EA9TpD,SAAsBgD,EAAAA,CACpB,IAAIlI,EACF0N,GACAC,GAAkB,EAEd5K,GAAS,CAAC,EAAG,CAAA,EACjB6K,GAAO,CAAK,WAAJ1F,EAAiBA,EP/PH,WO+PqB,OAAA,EAE7C,IAAKlI,EAAa,EAAGA,GAAc,EAAGA,KAEpC0N,GAAQE,GAAK5N,GAAc,CAAA,IAAQ,EAAIA,EAAe,MAIzC,GAAK2N,KAAoB,IACpC5K,GAAO4K,IAAmB,CAAA,GAAMD,IAA2B,EAAlBC,GACzCA,IAAmB,GAMvB,OAFA5K,IADA4K,GAAkBA,KAAoB,EAAIA,GAAkB,IAClC,CAAA,GAAMA,IAAsC,EAAlBA,GAE7C,CAAErN,MAAOqN,GAAkB,EAAI,EAAI5K,GAAS,CAACA,GAAO,CAAA,CAAA,EAAKxC,OAAQ,EAAsB,EAAlBoN,EAAAA,CAAAA,EAyS3D3J,EAAmB,SAAA,CAAA,EAGlC,OAAOc,KAAK2B,EACV6I,EAAyB,MACzBA,EAA0B,OAC1BxK,KAAKM,EACLN,KAAK4B,EAAe5B,KAAKoB,CAAAA,EACzBlC,EAAmB,SAAA,CAAA,EAAAiG,CAAA,EAhPUzE,CAAAA,EAAAA,OAAAA,UAAAA,CC/RjC,SAAAd,EAAYC,EAAcC,EAAkBZ,EAAAA,CAC1C,GAAeW,GAAX,QACFG,KAAKyK,EAAS,IAAIC,GAAO7K,EAASC,EAAaZ,CAAAA,UACzBW,GAAb,WAAqCA,GAAb,UACjCG,KAAKyK,EAAS,IAAIE,GAAS9K,EAASC,EAAaZ,CAAAA,UAC3BW,GAAb,WAAqCA,GAAb,UACjCG,KAAKyK,EAAS,IAAIG,GAAS/K,EAASC,EAAaZ,CAAAA,MAC5C,CAAA,GACSW,GAAd,YACcA,GAAd,YACcA,GAAd,YACcA,GAAd,YACcA,GAAd,YACcA,GAAd,YACeA,GAAf,aACeA,GAAf,aACaA,GAAb,WACaA,GAAb,UAIA,MAAM,IAAIhE,MAAMyC,CAAAA,EAFhB0B,KAAKyK,EAAS,IAAII,GAAOhL,EAASC,EAAaZ,CAAAA,CAAAA,CAAAA,CAuErD,OA5DE+K,EAAAA,UAAAA,OAAA,SAAOjB,EAAAA,CACLhJ,KAAKyK,EAAOK,OAAO9B,CAAAA,CAAAA,EAmBrBiB,EAAAA,UAAAA,QAAA,SAAQtO,EAAauD,EAAAA,CACnB,OAAOc,KAAKyK,EAAOM,QAAQpP,EAAQuD,CAAAA,CAAAA,EAiBrC+K,EAAAA,UAAAA,WAAA,SAAWzK,EAAUM,EAAkBZ,EAAAA,CACrCc,KAAKyK,EAAOO,WAAWxL,EAAKM,EAAaZ,CAAAA,CAAAA,EAkB3C+K,EAAAA,UAAAA,QAAA,SAAQtO,EAAauD,EAAAA,CACnB,OAAOc,KAAKyK,EAAOQ,QAAQtP,EAAQuD,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,ICrJvC,IAAAgM,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,qBAAuBA,GAAQ,qBAAuB,OAC9D,SAASM,GAAqBC,EAAM,CAChC,OAAOC,EAAO,KAAK,OAAO,OAAO,gBAAgB,IAAI,WAAWD,CAAI,CAAC,CAAC,CAC1E,CACAP,GAAQ,qBAAuBM,GAC/B,SAASG,GAAqBF,EAAM,CAChC,OAAO,OAAO,OAAO,gBAAgB,IAAI,YAAYA,CAAI,CAAC,CAC9D,CACAP,GAAQ,qBAAuBS,KCV/B,IAAAC,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,YAAc,OACtB,eAAeM,GAAYC,EAAKC,EAAM,CAClC,IAAIC,EAAY,OAAOF,GAAQ,SAAWG,EAAO,KAAKH,EAAK,OAAO,EAAIA,EAClEI,EAAa,OAAOH,GAAS,SAAWE,EAAO,KAAKF,EAAM,OAAO,EAAIA,EACnEI,EAAW,CAAE,KAAM,OAAQ,KAAM,SAAU,EAC3CC,EAAU,MAAM,OAAO,OAAO,OAAO,UAAU,MAAOJ,EAAWG,EAAU,GAAO,CAAC,MAAM,CAAC,EAChG,OAAOF,EAAO,KAAK,MAAM,OAAO,OAAO,KAAKE,EAAUC,EAASF,CAAU,CAAC,CAC9E,CACAX,GAAQ,YAAcM,KCVtB,IAAAQ,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,cAAgB,OACxB,eAAeM,GAAcC,EAAKC,EAAMC,EAAYC,EAAQ,CACxD,IAAMC,EAAY,OAAOJ,GAAQ,SAAWK,EAAO,KAAKL,EAAK,OAAO,EAAIA,EAClEM,EAAa,OAAOL,GAAS,SAAWI,EAAO,KAAKJ,EAAM,OAAO,EAAIA,EACrEM,EAAa,MAAM,OAAO,OAAO,OAAO,UAAU,MAAOH,EAAW,CAAE,KAAM,QAAS,EAAG,GAAO,CAAC,YAAY,CAAC,EAC7GI,EAAc,MAAM,OAAO,OAAO,OAAO,WAAW,CAAE,KAAM,SAAU,KAAM,UAAW,KAAMF,EAAY,WAAYJ,CAAW,EAAGK,EAAYJ,EAAS,CAAC,EAC/J,OAAOE,EAAO,KAAKG,CAAW,CAClC,CACAf,GAAQ,cAAgBM,KCVxB,IAAAU,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,OAAS,OACjB,eAAeM,GAAOC,EAAQ,CAC1B,OAAI,OAAOA,GAAW,SACXC,EAAO,KAAK,MAAM,OAAO,OAAO,OAAO,UAAWA,EAAO,KAAKD,EAAQ,OAAO,CAAC,CAAC,EAEnFC,EAAO,KAAK,MAAM,OAAO,OAAO,OAAO,UAAWD,CAAM,CAAC,CACpE,CACAP,GAAQ,OAASM,KCTjB,IAAAG,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,OAAS,OACjB,eAAeM,GAAOC,EAAQ,CAC1B,OAAI,OAAOA,GAAW,SACXC,EAAO,KAAK,MAAM,OAAO,OAAO,OAAO,UAAWA,EAAO,KAAKD,EAAQ,OAAO,CAAC,CAAC,EAEnFC,EAAO,KAAK,MAAM,OAAO,OAAO,OAAO,UAAWD,CAAM,CAAC,CACpE,CACAP,GAAQ,OAASM,KCTjB,IAAAG,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,OAASA,GAAQ,OAASA,GAAQ,cAAgBA,GAAQ,YAAcA,GAAQ,qBAAuBA,GAAQ,qBAAuB,OAC9I,IAAIM,GAAoB,KACxB,OAAO,eAAeN,GAAS,uBAAwB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOM,GAAkB,oBAAsB,CAAE,CAAC,EAChJ,OAAO,eAAeN,GAAS,uBAAwB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOM,GAAkB,oBAAsB,CAAE,CAAC,EAChJ,IAAIC,GAAgB,KACpB,OAAO,eAAeP,GAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOO,GAAc,WAAa,CAAE,CAAC,EAC1H,IAAIC,GAAkB,KACtB,OAAO,eAAeR,GAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOQ,GAAgB,aAAe,CAAE,CAAC,EAChI,IAAIC,GAAW,KACf,OAAO,eAAeT,GAAS,SAAU,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOS,GAAS,MAAQ,CAAE,CAAC,EAC3G,IAAIC,GAAW,KACf,OAAO,eAAeV,GAAS,SAAU,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOU,GAAS,MAAQ,CAAE,CAAC,ICb3G,IAAAC,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,IAAIC,GAAmBN,IAAQA,GAAK,iBAAoB,SAAUO,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeP,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,OAASA,GAAQ,gBAAkBA,GAAQ,YAAc,OACjE,IAAMQ,GAAUF,GAAgB,IAAgB,EAC1CG,GAA0B,KAChC,SAASC,GAAYC,EAAQ,CACzB,IAAIC,EACA,OAAOD,GAAW,SAClBC,EAAMC,EAAO,KAAKF,EAAQ,OAAO,EAAE,SAAS,KAAK,EAGjDC,EAAMD,EAAO,SAAS,KAAK,EAE/B,IAAIG,EAAS,IAAIN,GAAQ,QAAQ,UAAW,KAAK,EACjDM,EAAO,OAAOF,CAAG,EACjB,IAAIG,EAAMD,EAAO,QAAQ,KAAK,EAC9B,OAAOD,EAAO,KAAKE,EAAK,KAAK,CACjC,CACAf,GAAQ,YAAcU,GACtB,eAAeM,GAAgBL,EAAQ,CACnC,OAAOD,GAAYC,CAAM,CAC7B,CACAX,GAAQ,gBAAkBgB,GAC1B,SAASC,GAAON,EAAQ,CACpB,SAAWF,GAAwB,QAAQE,CAAM,CACrD,CACAX,GAAQ,OAASiB,KC7BjB,IAAAC,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,IAAIC,GAAmBN,IAAQA,GAAK,iBAAoB,SAAUO,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeP,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,OAASA,GAAQ,gBAAkBA,GAAQ,YAAc,OACjE,IAAMQ,GAAUF,GAAgB,IAAgB,EAC1CG,GAA0B,KAChC,SAASC,GAAYC,EAAQ,CACzB,IAAIC,EACA,OAAOD,GAAW,SAClBC,EAAMC,EAAO,KAAKF,EAAQ,OAAO,EAAE,SAAS,KAAK,EAGjDC,EAAMD,EAAO,SAAS,KAAK,EAE/B,IAAIG,EAAS,IAAIN,GAAQ,QAAQ,UAAW,KAAK,EACjDM,EAAO,OAAOF,CAAG,EACjB,IAAIG,EAAMD,EAAO,QAAQ,KAAK,EAC9B,OAAOD,EAAO,KAAKE,EAAK,KAAK,CACjC,CACAf,GAAQ,YAAcU,GACtB,eAAeM,GAAgBL,EAAQ,CACnC,OAAOD,GAAYC,CAAM,CAC7B,CACAX,GAAQ,gBAAkBgB,GAC1B,eAAeC,GAAON,EAAQ,CAC1B,SAAWF,GAAwB,QAAQE,CAAM,CACrD,CACAX,GAAQ,OAASiB,KC7BjB,IAAAC,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,cAAgB,OACxB,IAAMM,GAA0B,KAChC,SAASC,GAAcC,EAAKC,EAAMC,EAAYC,EAAQ,CAClD,SAAWL,GAAwB,eAAeE,EAAKC,EAAMC,EAAYC,CAAM,CACnF,CACAX,GAAQ,cAAgBO,KCPxB,IAAAK,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,IAAIC,GAAmBN,IAAQA,GAAK,iBAAoB,SAAUO,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeP,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,YAAcA,GAAQ,qBAAuB,OACrD,IAAMQ,GAAUF,GAAgB,IAAgB,EAC1CG,GAA0B,KAChC,eAAeC,GAAqBC,EAAKC,EAAM,CAC3C,IAAIC,EAAY,OAAOF,GAAQ,SAAWG,EAAO,KAAKH,EAAK,OAAO,EAAIA,EAClEI,EAAa,OAAOH,GAAS,SAAWE,EAAO,KAAKF,EAAM,OAAO,EAAIA,EACnEI,EAAS,IAAIR,GAAQ,QAAQ,UAAW,MAAO,CACjD,QAAS,CAAE,MAAOK,EAAU,SAAS,KAAK,EAAG,OAAQ,KAAM,CAC/D,CAAC,EACDG,EAAO,OAAOD,EAAW,SAAS,KAAK,CAAC,EACxC,IAAME,EAAOD,EAAO,QAAQ,KAAK,EACjC,OAAOF,EAAO,KAAKG,EAAM,KAAK,CAClC,CACAjB,GAAQ,qBAAuBU,GAC/B,SAASQ,GAAYP,EAAKC,EAAM,CAC5B,SAAWH,GAAwB,aAAaE,EAAKC,CAAI,CAC7D,CACAZ,GAAQ,YAAckB,KCtBtB,IAAAC,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,sBAAwBA,GAAQ,qBAAuBA,GAAQ,qBAAuB,OAC9F,IAAMM,GAA0B,KAChC,eAAeC,GAAqBC,EAAM,CACtC,SAAWF,GAAwB,sBAAsBE,CAAI,CACjE,CACAR,GAAQ,qBAAuBO,GAC/B,eAAeE,GAAqBD,EAAM,CACtC,OAAOC,GAAqBD,CAAI,CACpC,CACAR,GAAQ,qBAAuBS,GAC/B,eAAeC,GAAsBC,EAAKC,EAAK,CAC3C,IAAIC,EAAQD,EAAMD,EAClB,IAAIG,EAAa,KAAK,KAAK,KAAK,KAAKD,CAAK,CAAC,EAC3C,GAAIC,EAAa,GACb,MAAM,IAAI,MAAM,oBAAoB,EAIxC,QAFIC,EAAc,KAAK,KAAKD,EAAa,CAAC,EACtCE,EAAO,KAAK,IAAI,EAAGF,CAAU,EAAI,IACxB,CACT,IAAIG,EAAM,MAAMV,GAAqBO,CAAU,EAC3CI,GAASH,EAAc,GAAK,EAC5BI,EAAc,EAClB,QAASC,EAAI,EAAGA,EAAIL,EAAaK,IAC7BD,GAAeF,EAAIG,CAAC,EAAI,KAAK,IAAI,EAAGF,CAAK,EACzCA,GAAS,EAGb,GADAC,EAAcA,EAAcH,EACxB,EAAAG,GAAeN,GAGnB,OAAOF,EAAMQ,CACjB,CACJ,CACAnB,GAAQ,sBAAwBU,KCnChC,IAAAW,GAAAC,EAAAC,IAAA,cAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IACA,OAAO,eAAeL,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,SAAW,OAEnBA,GAAQ,SAAW,CACf,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,UACA,MACJ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W,SAAU,UAAW,UAAW,UAAW,MAAO,QAAS,UAAW,SAAU,QAAS,UAAW,QAAS,OAAQ,SAAU,OAAQ,QAAS,QAAS,MAAO,QAAS,QAAS,OAAQ,SAAU,UAAW,SAAU,SAAU,QAAS,MAAO,WAAY,SAAU,UAAW,MAAO,SAAU,UAAW,QAAS,SAAU,SAAU,SAAU,UAAW,OAAQ,SAAU,SAAU,WAAY,UAAW,UAAW,QAAS,SAAU,OAAQ,SAAU,OAAQ,SAAU,UAAW,UAAW,QAAS,QAAS,QAAS,OAAQ,UAAW,QAAS,UAAW,OAChyC,OAAQ,WAAY,QAAS,QAAS,MAAO,UAAW,UAAW,OAAQ,SAAU,SAAU,SAAU,MAAO,SAAU,UAAW,SAAU,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,SAAU,UAAW,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,QAAS,OAAQ,QAAS,UAAW,OAAQ,SAAU,SAAU,UAAW,SAAU,UAAW,MAAO,OAAQ,OAAQ,UAAW,OAAQ,QAAS,SAAU,QAAS,QAAS,QAAS,UAAW,QAAS,QAAS,QAAS,QAAS,QAAS,UAAW,SAAU,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,OAAQ,QAAS,SAAU,SAAU,SAAU,OAAQ,SAAU,SAAU,MAAO,MAAO,UAAW,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,WAAY,SAAU,SAAU,QAAS,UAAW,QAAS,QAAS,SAAU,QAAS,SAAU,UAAW,QAAS,OAAQ,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,MAAO,WAAY,OAAQ,SAAU,QAAS,OAC1jC,UAAW,QAAS,QAAS,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,MAAO,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,UAAW,UAAW,UAAW,MAAO,SAAU,OAAQ,QAAS,SAAU,QAAS,OAAQ,OAAQ,OAAQ,SAAU,SAAU,SAAU,MAAO,UAAW,QAAS,WAAY,SAAU,SAAU,QAAS,UAAW,OAAQ,UAAW,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,QAAS,QAAS,WAAY,SAAU,QAAS,UAAW,SAAU,QAAS,OAAQ,QAAS,QAAS,SAAU,OAAQ,SAAU,QAAS,UAAW,QAAS,QAAS,UAAW,SAAU,SAAU,UAAW,UAAW,QAAS,QAAS,QAAS,WAAY,SAAU,UAAW,OAAQ,QAAS,QAAS,OAAQ,UAAW,OAAQ,OAAQ,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,OAAQ,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,UAAW,SAAU,QAAS,QAAS,UAAW,OAAQ,SAAU,OAAQ,OAAQ,UAAW,QAAS,SAAU,UAAW,OAAQ,UAAW,QAAS,SAAU,UAAW,UAAW,UAAW,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,OAAQ,OAAQ,SAAU,OAAQ,QAAS,OAAQ,OAAQ,UAAW,OAAQ,SAAU,QAAS,UAAW,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,OAAQ,QAAS,QAAS,SAAU,QAAS,QAAS,QAAS,SAAU,QAAS,OAAQ,UAAW,QAAS,QAAS,SAAU,OAAQ,QAAS,SAAU,QAAS,UAAW,QAAS,SAAU,UAAW,SAAU,QAAS,MAAO,UAAW,OAAQ,UAAW,MAAO,WAAY,UAAW,UAAW,UAAW,QAAS,UAAW,SAAU,OAAQ,QACnuD,MAAO,SAAU,OAAQ,QAAS,SAAU,SAAU,OAAQ,WAAY,OAAQ,MAAO,OAAQ,SAAU,SAAU,SAAU,WAAY,SAAU,UAAW,WAAY,WAAY,OAAQ,UAAW,SAAU,OAAQ,SAAU,QAAS,UAAW,SAAU,SAAU,SAAU,UAAW,OAAQ,SAAU,SAAU,UAAW,QAAS,SAAU,SAAU,WAAY,SAAU,SAAU,OAAQ,UAAW,UAAW,SAAU,SAAU,UAAW,SAAU,SAAU,UAAW,OAAQ,UAAW,QAAS,OAAQ,SAAU,OAAQ,SAAU,UAAW,UAAW,UAAW,SAAU,WAAY,SAAU,OAAQ,WAAY,WAAY,UAAW,OAAQ,UAAW,WAAY,UAAW,WAAY,SAAU,SAAU,UAAW,QAAS,SAAU,WAAY,MAAO,OAAQ,UAAW,SAAU,SAAU,SAAU,QAAS,OAAQ,OAAQ,SAAU,OAAQ,QAAS,SAAU,QAAS,UAAW,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,QAAS,OAAQ,QAAS,UAC/iC,QAAS,QAAS,QAAS,OAAQ,QAAS,SAAU,OAAQ,OAAQ,OAAQ,UAAW,UAAW,OAAQ,OAAQ,UAAW,SAAU,MAAO,QAAS,SAAU,QAAS,QAAS,WAAY,UAAW,UAAW,WAAY,WAAY,QAAS,OAAQ,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,UAAW,QAAS,SAAU,QAAS,MAAO,UAAW,UAAW,QAAS,SAAU,UAAW,SAAU,SAAU,UAAW,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,WAAY,UAAW,QAAS,QAAS,MAAO,QAAS,QAAS,UAAW,QAAS,QAAS,SAAU,QAAS,UAAW,SAAU,UAAW,SAAU,WAAY,OAAQ,QAAS,SAAU,QAAS,UAAW,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,WAAY,UAAW,UAAW,QAAS,QAAS,OAAQ,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,QAAS,MAAO,UAC38B,SAAU,OAAQ,UAAW,OAAQ,QAAS,QAAS,OAAQ,QAAS,OAAQ,SAAU,SAAU,MAAO,QAAS,UAAW,OAAQ,UAAW,MAAO,QAAS,SAAU,UAAW,QAAS,WAAY,UAAW,WAAY,UAAW,MAAO,OAAQ,OAAQ,SAAU,QAAS,WAAY,QAAS,QAAS,MAAO,QAAS,UAAW,QAAS,SAAU,OAAQ,OAAQ,SAAU,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,OAAQ,QAAS,SAAU,OAAQ,MAAO,UAAW,MAAO,OAAQ,QAAS,QAAS,OAAQ,SAAU,OAAQ,SAAU,OAAQ,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,MAAO,OAAQ,QAAS,MAAO,OAAQ,OAAQ,SAAU,OAAQ,OAAQ,QAAS,SAAU,SAAU,OAAQ,UAAW,QAAS,UAAW,SAAU,SAAU,QAAS,MAAO,UAAW,QAAS,WAAY,QAAS,SAAU,SAAU,OAAQ,QAAS,QAAS,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,UAAW,OAAQ,SAC37B,SAAU,OAAQ,SAAU,UAAW,OAAQ,MAAO,SAAU,UAAW,SAAU,SAAU,UAAW,MAAO,OAAQ,OAAQ,SAAU,QAAS,OAAQ,UAAW,SAAU,QAAS,SAAU,UAAW,UAAW,QAAS,QAAS,OAAQ,SAAU,SAAU,UAAW,OAAQ,OAAQ,OAAQ,SAAU,QAAS,QAAS,QAAS,UAAW,Q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AQ,OAAQ,SAAU,OAAQ,QAAS,QAAS,QAAS,UAAW,QAAS,SAAU,SAAU,OAAQ,SAAU,QAAS,OAAQ,QAAS,OAAQ,UAAW,SAAU,UAAW,QAAS,OAAQ,UAAW,QAAS,SAAU,OAAQ,UAAW,UAAW,MAAO,UAAW,SAAU,SAAU,SAAU,UAAW,SAAU,SAAU,MAAO,QAAS,QAAS,SAAU,WAAY,QAAS,SAAU,UAAW,QAAS,MAAO,SAAU,OAAQ,QAAS,OAAQ,UAAW,OAAQ,SAAU,QAAS,QAAS,QAAS,SAAU,UAAW,QAAS,OAAQ,SAAU,SAAU,QAAS,OAAQ,SAAU,OAAQ,OAAQ,QAAS,QAAS,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,UAAW,UAAW,WAAY,WAAY,OAAQ,SAAU,UAAW,UAAW,SAAU,QAAS,WAAY,SAAU,UAAW,SAAU,UAAW,UAAW,SAAU,UAAW,QAAS,QAAS,UAAW,QAAS,WAAY,SAAU,UAAW,QAAS,UAAW,UAAW,UAAW,SAAU,UAAW,UAAW,UAAW,QAAS,WAAY,UAAW,UAAW,QAAS,UAAW,SAAU,UAAW,OAAQ,OAAQ,QAAS,UAAW,QAAS,QAAS,QAAS,WAAY,SAAU,UAAW,QAAS,OAAQ,MAAO,SAAU,UACjvC,UAAW,UAAW,UAAW,WAAY,QAAS,OAAQ,OAAQ,QACtE,SAAU,UAAW,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,QAAS,OAAQ,OAAQ,SAAU,QAAS,MAAO,QAAS,QAAS,OAAQ,SAAU,QAAS,UAAW,SAAU,UAAW,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,QAAS,UAAW,SAAU,OAAQ,SAAU,WAAY,SAAU,SAAU,SAAU,QAAS,OAAQ,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,WAAY,SAAU,WAAY,WAAY,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,SAAU,SAAU,SAAU,MAAO,SAAU,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,SAAU,OAAQ,SAAU,QAAS,QAAS,OAAQ,QAAS,QAAS,SAAU,SAAU,UAAW,OAAQ,SAAU,OAAQ,OAAQ,SAAU,QAAS,QAAS,QAAS,QAAS,SAAU,OAAQ,MAAO,OAAQ,MAAO,SAAU,QACj/B,MAAO,SAAU,UAAW,OAAQ,OAAQ,QAAS,SAAU,QAAS,OAAQ,SAAU,OAAQ,SAAU,OAAQ,UAAW,UAAW,QAAS,UAAW,OAAQ,MAAO,QAAS,OAAQ,QAAS,UAAW,QAAS,SAAU,SAAU,UAAW,WAAY,WAAY,QAAS,QAAS,SAAU,SAAU,QAAS,MAAO,SAAU,SAAU,OAAQ,SAAU,SAAU,UAAW,WAAY,OAAQ,OAAQ,UAAW,SAAU,OAAQ,UAAW,SAAU,QAAS,WAAY,SAAU,UAAW,UAAW,SAAU,QAAS,QAAS,SAAU,QAAS,UAAW,QAAS,OAAQ,QAAS,UAAW,SAAU,QAAS,QAAS,OAAQ,SAAU,QAAS,OAAQ,QAAS,OAAQ,QAAS,WAAY,QAAS,SAAU,QAAS,UAAW,MAAO,UAAW,OAAQ,OAAQ,QAAS,QAAS,OAAQ,SAAU,OAAQ,QAAS,SAAU,UAAW,SAAU,QAAS,OAAQ,QAAS,SAAU,UAAW,MAAO,OAAQ,QAAS,SAAU,MAAO,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,UAAW,QAAS,QAAS,SAAU,OAAQ,SAAU,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,OAAQ,OAAQ,QAAS,UAAW,QAAS,WAAY,QAAS,UAAW,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,SAAU,QAAS,QAAS,QAAS,UAAW,QAAS,QAAS,UAAW,QAAS,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,OAAQ,SAAU,QAAS,QAAS,UAAW,QAAS,QAAS,OAAQ,QAAS,SAAU,SAAU,MAAO,SAAU,UAAW,WAAY,SAAU,UAAW,QAAS,QAAS,SAAU,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,SAAU,QAAS,QAAS,QAAS,QAAS,UAAW,QAAS,QAAS,QAAS,QAAS,WAAY,SAAU,SAAU,SAAU,WAAY,UAAW,QAAS,UAAW,QAAS,UAAW,SAAU,SAAU,UAAW,OAAQ,SAAU,SAAU,QAAS,UAAW,OAAQ,SAAU,MAAO,QAAS,SAAU,QAAS,SAAU,UAAW,OAAQ,UAAW,QAAS,WAAY,WAAY,SAAU,UA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", "names": ["global", "init_global", "__esmMin", "init_dirname", "__esmMin", "init_filename", "__esmMin", "browser_exports", "__export", "addListener", "argv", "binding", "browser", "chdir", "config", "cwd", "browser_default", "emit", "env", "hrtime", "nextTick", "off", "on", "once", "platform", "release", "removeAllListeners", "removeListener", "title", "umask", "uptime", "version", "versions", "defaultSetTimout", "defaultClearTimeout", "runTimeout", "fun", "cachedSetTimeout", "runClearTimeout", "marker", "cachedClearTimeout", "cleanUpNextTick", "draining", "currentQueue", "queue", "queueIndex", "drainQueue", "timeout", "len", "args", "i", "Item", "array", "noop", "name", "dir", "previousTimestamp", "clocktime", "performanceNow", "performance", "seconds", "nanoseconds", "currentTime", "dif", "startTime", "init_browser", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "global", "init_process", "__esmMin", "init_browser", "init", "inited", "code", "i", "len", "lookup", "revLookup", "toByteArray", "b64", "j", "l", "tmp", "placeHolders", "arr", "Arr", "L", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "fromByteArray", "extraBytes", "parts", "maxChunkLength", "len2", "init_base64", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "read", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "i", "d", "s", "write", "value", "c", "rt", "init_ieee754", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "toString", "isArray_default", "init_isArray", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "arr", "kMaxLength", "Buffer", "createBuffer", "that", "length", "arg", "encodingOrOffset", "allocUnsafe", "from", "value", "fromArrayBuffer", "fromString", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "i", "string", "byteLength", "actual", "fromArrayLike", "array", "byteOffset", "obj", "internalIsBuffer", "len", "isnan", "isArray_default", "b", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "start", "end", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "m", "bidirectionalIndexOf", "buffer", "val", "dir", "arrayIndexOf", "arr", "indexSize", "arrLength", "valLength", "read", "buf", "foundIndex", "found", "j", "hexWrite", "offset", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "latin1Write", "base64Write", "ucs2Write", "utf16leToBytes", "fromByteArray", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "codePoints", "MAX_ARGUMENTS_LENGTH", "ret", "out", "toHex", "bytes", "checkOffset", "ext", "checkInt", "max", "min", "objectWriteUInt16", "littleEndian", "objectWriteUInt32", "checkIEEE754", "writeFloat", "noAssert", "write", "writeDouble", "base64clean", "str", "stringtrim", "INVALID_BASE64_RE", "units", "leadSurrogate", "byteArray", "c", "hi", "lo", "toByteArray", "src", "dst", "isBuffer", "isFastBuffer", "isSlowBuffer", "INSPECT_MAX_BYTES", "_kMaxLength", "init_buffer_es6", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "init_base64", "init_ieee754", "init_isArray", "global", "a", "x", "y", "list", "pos", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "newBuf", "sliceLen", "mul", "maxBytes", "limit", "sub", "targetStart", "code", "init_buffer", "__esmMin", "init_buffer_es6", "SymbolInspect", "module", "require_crc16", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "crc16", "data", "reg", "message", "Buffer", "byte", "mask", "require_Address", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "_a", "symbol_inspect_1", "crc16_1", "bounceable_tag", "non_bounceable_tag", "test_flag", "parseFriendlyAddress", "src", "data", "Buffer", "addr", "crc", "calcedCrc", "tag", "isTestOnly", "isBounceable", "workchain", "hashPart", "Address", "source", "workChain", "hash", "r", "addressWithChecksum", "args", "testOnly", "urlSafe", "buffer", "address", "require_ExternalAddress", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "_a", "symbol_inspect_1", "ExternalAddress", "src", "value", "bits", "require_base32", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "alphabet", "base32Encode", "buffer", "length", "bits", "value", "output", "i", "readChar", "char", "idx", "base32Decode", "input", "cleanedInput", "index", "Buffer", "require_ADNLAddress", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "_a", "symbol_inspect_1", "base32_1", "crc16_1", "ADNLAddress", "src", "decoded", "gotHash", "data", "Buffer", "address", "hash", "b", "require_paddedBits", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitBuilder_1", "bitsToPaddedBuffer", "bits", "builder", "padding", "i", "require_BitString", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "_a", "paddedBits_1", "symbol_inspect_1", "BitString", "data", "offset", "length", "index", "byteIndex", "bitIndex", "start", "end", "b", "i", "padded", "s", "hex", "Buffer", "require_BitBuilder", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Address_1", "ExternalAddress_1", "BitString_1", "BitBuilder", "size", "Buffer", "value", "n", "src", "i", "bits", "v", "vBits", "b", "off", "sizeBytes", "sizeBits", "v2", "amount", "address", "require_CellType", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "CellType", "require_parseDict", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "readUnaryLength", "slice", "res", "doParse", "prefix", "n", "extractor", "lb0", "prefixLength", "pp", "i", "bit", "left", "right", "parseDict", "sc", "keySize", "require_findCommonPrefix", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "findCommonPrefix", "src", "sorted", "size", "i", "require_serializeDict", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "findCommonPrefix_1", "pad", "src", "size", "removePrefixMap", "length", "res", "k", "d", "forkMap", "left", "right", "buildNode", "buildEdge", "label", "buildTree", "keyLength", "converted", "padded", "writeLabelShort", "to", "i", "labelShortLength", "writeLabelLong", "labelLongLength", "writeLabelSame", "value", "lenLen", "labelSameLength", "isSame", "detectLabelType", "kind", "kindLength", "longLength", "sameLength", "writeLabel", "type", "writeNode", "serializer", "leftCell", "rightCell", "writeEdge", "serializeDict", "tree", "require_internalKeySerializer", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Address_1", "serializeInternalKey", "value", "Buffer", "deserializeInternalKey", "k", "v", "require_Dictionary", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Address_1", "Builder_1", "Cell_1", "parseDict_1", "serializeDict_1", "internalKeySerializer_1", "Dictionary", "key", "value", "sc", "slice", "cell", "values", "prepare", "k", "v", "builder", "resolvedKey", "resolvedValue", "prepared", "dd", "createAddressKey", "bits", "createBigIntKey", "createIntKey", "createBigUintKey", "createUintKey", "bytes", "createBufferKey", "createBigIntValue", "createIntValue", "createBigVarIntValue", "createBigUintValue", "createUintValue", "createBigVarUintValue", "createBooleanValue", "createAddressValue", "createCellValue", "createBufferValue", "createDictionaryValue", "src", "Buffer", "buidler", "size", "require_strings", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "readBuffer", "slice", "res", "Buffer", "readString", "writeBuffer", "src", "builder", "bytes", "a", "t", "bb", "stringToCell", "writeString", "require_Slice", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "_a", "symbol_inspect_1", "Dictionary_1", "Builder_1", "strings_1", "Slice", "reader", "refs", "bits", "bytes", "ref", "key", "value", "require_BitReader", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Address_1", "ExternalAddress_1", "BitReader", "bits", "offset", "r", "bytes", "buf", "loaded", "res", "size", "type", "length", "sign", "i", "fastBuffer", "Buffer", "wc", "hash", "value", "require_exoticLibrary", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitReader_1", "exoticLibrary", "bits", "refs", "reader", "size", "type", "require_exoticMerkleProof", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitReader_1", "exoticMerkleProof", "bits", "refs", "reader", "size", "type", "proofHash", "proofDepth", "refHash", "refDepth", "require_exoticMerkleUpdate", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitReader_1", "exoticMerkleUpdate", "bits", "refs", "reader", "size", "type", "proofHash1", "proofHash2", "proofDepth1", "proofDepth2", "require_LevelMask", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "LevelMask", "mask", "countSetBits", "level", "n", "require_exoticPruned", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitReader_1", "LevelMask_1", "exoticPruned", "bits", "refs", "reader", "type", "mask", "size", "pruned", "hashes", "depths", "i", "require_resolveExotic", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitReader_1", "CellType_1", "exoticLibrary_1", "exoticMerkleProof_1", "exoticMerkleUpdate_1", "exoticPruned_1", "LevelMask_1", "resolvePruned", "bits", "refs", "pruned", "depths", "hashes", "mask", "i", "resolveLibrary", "resolveMerkleProof", "merkleProof", "resolveMerkleUpdate", "merkleUpdate", "resolveExotic", "type", "require_descriptor", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "CellType_1", "paddedBits_1", "getRefsDescriptor", "refs", "level", "type", "getBitsDescriptor", "bits", "len", "getRepr", "bitsLen", "repr", "Buffer", "reprCursor", "c", "childDepth", "childHash", "b64Tab", "uint8array2packed", "arr", "existingPacked", "existingPackedLen", "bigEndianMod", "i", "intOffset", "byteOffset", "packed", "existingByteLen", "shiftModifier", "length", "push", "value", "binLen", "getStrConverter", "format", "utfType", "Error", "str", "existingBin", "existingBinLen", "num", "parseInt", "substr", "isNaN", "codePnt", "codePntArr", "j", "transposeBytes", "byteCnt", "charCodeAt", "tmpInt", "strPart", "firstEqual", "indexOf", "search", "replace", "charAt", "ArrayBuffer", "Uint8Array", "getOutputConverter", "outputBinLen", "outputOptions", "binarray", "outputLength", "formatOpts", "srcByte", "toUpperCase", "triplet", "int1", "int2", "String", "fromCharCode", "retVal", "arrView", "K_sha2", "H_trunc", "H_full", "sha_variant_error", "packedLEConcat", "a", "b", "arrOffset", "aByteLen", "bByteLen", "leftShiftAmount", "rightShiftAmount", "pop", "concat", "getOutputOpts", "options", "outputUpper", "b64Pad", "outputLen", "lenErrstr", "parseInputOption", "key", "fallback", "errStr", "h", "n", "variant", "inputFormat", "inputOptions", "this", "numRounds", "shaVariant", "remainder", "remainderLen", "updateCalled", "processedLen", "macKeySet", "keyWithIPad", "keyWithOPad", "jsSHABase", "srcString", "updateProcessedLen", "variantBlockIntInc", "variantBlockSize", "convertRet", "converterFunc", "chunkBinLen", "chunk", "chunkIntLen", "intermediateState", "roundFunc", "slice", "finalizedState", "isVariableLen", "formatFunc", "getMAC", "finalizeFunc", "stateCloneFunc", "newStateFunc", "HMACSupported", "keyConverterFunc", "_setHMACKey", "blockByteSize", "lastArrayIndex", "_getHMAC", "firstHash", "extendStatics", "d", "Object", "setPrototypeOf", "__proto__", "Array", "p", "prototype", "hasOwnProperty", "call", "__extends", "__", "constructor", "create", "rotl_32", "x", "rotr_32", "shr_32", "parity_32", "y", "z", "ch_32", "maj_32", "sigma0_32", "safeAdd_32_2", "lsw", "safeAdd_32_4", "c", "safeAdd_32_5", "e", "gamma0_32", "sigma1_32", "getNewState", "_variant", "roundSHA1", "block", "H", "T", "t", "W", "finalizeSHA1", "remainderBinLen", "processedBinLen", "offset", "totalLen", "K", "r", "o", "resolvedOptions", "_this", "_super", "state", "getNewState256", "roundSHA256", "f", "g", "T1", "T2", "msint_32", "lsint_32", "highOrder", "lowOrder", "rotl_64", "tmp", "Int_64", "rotr_64", "shr_64", "ch_64", "maj_64", "sigma0_64", "rotr28", "rotr34", "rotr39", "safeAdd_64_2", "msw", "safeAdd_64_4", "safeAdd_64_5", "xor_64_2", "gamma0_64", "rotr1", "rotr8", "shr7", "sigma1_64", "rotr14", "rotr18", "rotr41", "K_sha512", "getNewState512", "roundSHA512", "rotr19", "rotr61", "shr6", "G", "rc_sha3", "r_sha3", "cloneSHA3State", "clone", "roundSHA3", "round", "B", "C", "D", "left_encode", "byte", "numEncodedBytes", "x_64", "encode_string", "input", "byte_pad", "outputByteLen", "encodedLen", "outputIntLen", "intsToAppend", "on", "delimiter", "_initializeKMAC", "_getKMAC", "_initializeCSHAKE", "_processedBinLen", "blockSize", "temp", "state_offset", "binaryStringInc", "remainderIntLen", "jsSHA", "funcNameOverride", "funcName", "customization", "packedParams", "byte_pad_out", "kmacKey", "concatedRemainder", "shaObj", "jsSHA1", "jsSHA256", "jsSHA512", "jsSHA3", "update", "getHash", "setHMACKey", "getHMAC", "require_getSecureRandom", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "getSecureRandomBytes", "size", "Buffer", "getSecureRandomWords", "require_hmac_sha512", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "hmac_sha512", "key", "data", "keyBuffer", "Buffer", "dataBuffer", "hmacAlgo", "hmacKey", "require_pbkdf2_sha512", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "pbkdf2_sha512", "key", "salt", "iterations", "keyLen", "keyBuffer", "Buffer", "saltBuffer", "pbkdf2_key", "derivedBits", "require_sha256", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "sha256", "source", "Buffer", "require_sha512", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "sha512", "source", "Buffer", "require_browser", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "getSecureRandom_1", "hmac_sha512_1", "pbkdf2_sha512_1", "sha256_1", "sha512_1", "require_sha256", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "jssha_1", "ton_crypto_primitives_1", "sha256_sync", "source", "src", "Buffer", "hasher", "res", "sha256_fallback", "sha256", "require_sha512", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "jssha_1", "ton_crypto_primitives_1", "sha512_sync", "source", "src", "Buffer", "hasher", "res", "sha512_fallback", "sha512", "require_pbkdf2_sha512", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_crypto_primitives_1", "pbkdf2_sha512", "key", "salt", "iterations", "keyLen", "require_hmac_sha512", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "jssha_1", "ton_crypto_primitives_1", "hmac_sha512_fallback", "key", "data", "keyBuffer", "Buffer", "dataBuffer", "shaObj", "hmac", "hmac_sha512", "require_getSecureRandom", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_crypto_primitives_1", "getSecureRandomBytes", "size", "getSecureRandomWords", "getSecureRandomNumber", "min", "max", "range", "bitsNeeded", "bytesNeeded", "mask", "res", "power", "numberValue", "i", "require_wordlist", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "require_newSecureWords", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "getSecureRandom_1", "wordlist_1", "newSecureWords", "size", "words", "i", "require_newSecurePassphrase", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__1", "newSecurePassphrase", "size", "empty_exports", "__export", "empty_default", "init_empty", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "require_nacl_fast", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "nacl", "gf", "init", "i", "r", "randombytes", "_0", "_9", "gf0", "gf1", "_121665", "D", "D2", "X", "Y", "I", "ts64", "x", "h", "l", "vn", "xi", "y", "yi", "n", "d", "crypto_verify_16", "crypto_verify_32", "core_salsa20", "o", "p", "k", "c", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "j10", "j11", "j12", "j13", "j14", "j15", "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "u", "core_hsalsa20", "crypto_core_salsa20", "out", "inp", "crypto_core_hsalsa20", "sigma", "crypto_stream_salsa20_xor", "cpos", "m", "mpos", "b", "z", "crypto_stream_salsa20", "crypto_stream", "s", "sn", "crypto_stream_xor", "poly1305", "key", "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "bytes", "hibit", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "h0", "h1", "h2", "h3", "h4", "h5", "h6", "h7", "h8", "h9", "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "mac", "macpos", "g", "mask", "f", "want", "crypto_onetimeauth", "outpos", "crypto_onetimeauth_verify", "hpos", "crypto_secretbox", "crypto_secretbox_open", "set25519", "a", "car25519", "v", "sel25519", "q", "t", "pack25519", "j", "neq25519", "par25519", "unpack25519", "A", "Z", "M", "t8", "t9", "t10", "t11", "t12", "t13", "t14", "t15", "t16", "t17", "t18", "t19", "t20", "t21", "t22", "t23", "t24", "t25", "t26", "t27", "t28", "t29", "t30", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12", "b13", "b14", "b15", "S", "inv25519", "pow2523", "crypto_scalarmult", "e", "x32", "x16", "crypto_scalarmult_base", "crypto_box_keypair", "crypto_box_beforenm", "crypto_box_afternm", "crypto_box_open_afternm", "crypto_box", "crypto_box_open", "K", "crypto_hashblocks_hl", "hh", "hl", "wh", "wl", "bh0", "bh1", "bh2", "bh3", "bh4", "bh5", "bh6", "bh7", "bl0", "bl1", "bl2", "bl3", "bl4", "bl5", "bl6", "bl7", "th", "tl", "ah0", "ah1", "ah2", "ah3", "ah4", "ah5", "ah6", "ah7", "al0", "al1", "al2", "al3", "al4", "al5", "al6", "al7", "pos", "crypto_hash", "add", "cswap", "pack", "tx", "ty", "zi", "scalarmult", "scalarbase", "crypto_sign_keypair", "pk", "sk", "seeded", "L", "modL", "carry", "reduce", "crypto_sign", "sm", "smlen", "unpackneg", "chk", "num", "den", "den2", "den4", "den6", "crypto_sign_open", "crypto_secretbox_KEYBYTES", "crypto_secretbox_NONCEBYTES", "crypto_secretbox_ZEROBYTES", "crypto_secretbox_BOXZEROBYTES", "crypto_scalarmult_BYTES", "crypto_scalarmult_SCALARBYTES", "crypto_box_PUBLICKEYBYTES", "crypto_box_SECRETKEYBYTES", "crypto_box_BEFORENMBYTES", "crypto_box_NONCEBYTES", "crypto_box_ZEROBYTES", "crypto_box_BOXZEROBYTES", "crypto_sign_BYTES", "crypto_sign_PUBLICKEYBYTES", "crypto_sign_SECRETKEYBYTES", "crypto_sign_SEEDBYTES", "crypto_hash_BYTES", "checkLengths", "checkBoxLengths", "checkArrayTypes", "cleanup", "arr", "msg", "nonce", "box", "publicKey", "secretKey", "signedMsg", "tmp", "mlen", "sig", "seed", "fn", "crypto", "QUOTA", "__require", "require_binary", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "lpad", "str", "padString", "length", "bytesToBits", "bytes", "res", "i", "x", "bitsToBytes", "src", "Buffer", "require_wordlist", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "EN", "require_mnemonic", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "tweetnacl_1", "getSecureRandom_1", "hmac_sha512_1", "pbkdf2_sha512_1", "binary_1", "wordlist_1", "PBKDF_ITERATIONS", "isPasswordNeeded", "mnemonicArray", "passlessEntropy", "mnemonicToEntropy", "isPasswordSeed", "isBasicSeed", "normalizeMnemonic", "src", "v", "entropy", "password", "mnemonicToSeed", "seed", "mnemonicToPrivateKey", "keyPair", "Buffer", "mnemonicToWalletKey", "seedSecret", "mnemonicToHDSeed", "mnemonicValidate", "word", "mnemonicNew", "wordsCount", "i", "ind", "bytesToMnemonicIndexes", "bits", "indexes", "sl", "bytesToMnemonics", "mnemonics", "res", "m", "mnemonicIndexesToBytes", "s", "mnemonicFromRandomSeed", "bytesLength", "currentSeed", "require_nacl", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "tweetnacl_1", "keyPairFromSecretKey", "secretKey", "res", "Buffer", "keyPairFromSeed", "sign", "data", "signVerify", "signature", "publicKey", "sealBox", "nonce", "key", "openBox", "require_ed25519", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "hmac_sha512_1", "ED25519_CURVE", "HARDENED_OFFSET", "getED25519MasterKeyFromSeed", "seed", "I", "IL", "IR", "deriveED25519HardenedKey", "parent", "index", "indexBuffer", "Buffer", "data", "deriveEd25519Path", "path", "state", "remaining", "require_symmetric", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "hmac_sha512_1", "SYMMETRIC_SEED", "getSymmetricMasterKeyFromSeed", "seed", "I", "IL", "IR", "deriveSymmetricHardenedKey", "parent", "offset", "data", "Buffer", "deriveSymmetricPath", "path", "state", "remaining", "index", "require_mnemonics", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "mnemonic_1", "hmac_sha512_1", "HARDENED_OFFSET", "MNEMONICS_SEED", "getMnemonicsMasterKeyFromSeed", "seed", "I", "IL", "IR", "deriveMnemonicHardenedKey", "parent", "index", "indexBuffer", "Buffer", "data", "deriveMnemonicsPath", "path", "wordsCount", "password", "state", "remaining", "require_dist", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "sha256_1", "sha512_1", "pbkdf2_sha512_1", "hmac_sha512_1", "getSecureRandom_1", "newSecureWords_1", "newSecurePassphrase_1", "mnemonic_1", "wordlist_1", "nacl_1", "nacl_2", "ed25519_1", "symmetric_1", "mnemonics_1", "require_wonderCalculator", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitString_1", "CellType_1", "LevelMask_1", "exoticPruned_1", "exoticMerkleProof_1", "descriptor_1", "ton_crypto_1", "exoticMerkleUpdate_1", "exoticLibrary_1", "wonderCalculator", "type", "bits", "refs", "levelMask", "pruned", "mask", "r", "loaded", "depths", "hashes", "hashCount", "hashIOffset", "levelI", "hashI", "currentBits", "currentDepth", "c", "childDepth", "repr", "hash", "destI", "resolvedHashes", "resolvedDepths", "i", "hashIndex", "thisHashIndex", "require_topologicalSort", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "topologicalSort", "src", "pending", "allCells", "notPermCells", "sorted", "cells", "cell", "hash", "v", "r", "tempMark", "visit", "c", "id", "indexes", "i", "result", "ent", "rrr", "require_bitsForNumber", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "bitsForNumber", "src", "mode", "v", "require_crc32c", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "POLY", "crc32c", "source", "crc", "res", "Buffer", "require_serialization", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitReader_1", "BitString_1", "Cell_1", "topologicalSort_1", "bitsForNumber_1", "BitBuilder_1", "descriptor_1", "paddedBits_1", "crc32c_1", "readCell", "reader", "sizeBytes", "d1", "refsCount", "exotic", "d2", "dataBytesize", "paddingAdded", "bits", "refs", "i", "calcCellSize", "cell", "parseBoc", "src", "magic", "size", "offBytes", "cells", "roots", "absent", "totalCellSize", "index", "cellData", "crc32", "hasIdx", "hasCrc32c", "hasCacheBits", "flags", "root", "deserializeBoc", "boc", "cll", "r", "writeCellToBuilder", "to", "serializeBoc", "opts", "allCells", "cellsNum", "has_idx", "has_crc32c", "has_cache_bits", "c", "sz", "offsetBytes", "totalSize", "builder", "res", "require_Cell", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__importDefault", "mod", "_a", "symbol_inspect_1", "BitString_1", "CellType_1", "Slice_1", "resolveExotic_1", "wonderCalculator_1", "serialization_1", "BitReader_1", "Builder_1", "Cell", "src", "parsed", "Buffer", "opts", "allowExotic", "level", "other", "bits", "refs", "hashes", "depths", "mask", "type", "resolved", "wonders", "idx", "crc32", "indent", "id", "t", "s", "k", "i", "require_Builder", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "BitBuilder_1", "Cell_1", "strings_1", "beginCell", "Builder", "value", "src", "bytes", "bits", "amount", "address", "cell", "c", "writer", "dict", "key", "require_SimpleLibrary", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadSimpleLibrary", "slice", "storeSimpleLibrary", "src", "builder", "require_TickTock", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadTickTock", "slice", "storeTickTock", "src", "builder", "require_StateInit", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Dictionary_1", "SimpleLibrary_1", "TickTock_1", "loadStateInit", "slice", "splitDepth", "special", "code", "data", "libraries", "storeStateInit", "src", "builder", "require_contractAddress", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "StateInit_1", "Address_1", "contractAddress", "workchain", "init", "hash", "require_tuple", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "INT64_MIN", "INT64_MAX", "serializeTupleItem", "src", "builder", "head", "tail", "s", "bc", "parseStackItem", "cs", "kind", "startBits", "endBits", "startRefs", "endRefs", "rs", "dt", "i", "length", "items", "ohead", "serializeTupleTail", "serializeTuple", "parseTuple", "res", "size", "next", "require_reader", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "TupleReader", "items", "res", "num", "i", "popped", "r", "s", "require_builder", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "Cell_1", "Slice_1", "TupleBuilder", "v", "require_convert", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "toNano", "src", "neg", "parts", "whole", "frac", "r", "fromNano", "v", "facStr", "value", "require_helpers", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Address_1", "Cell_1", "Builder_1", "convert_1", "internal", "src", "bounce", "to", "value", "body", "external", "comment", "require_AccountState", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "StateInit_1", "loadAccountState", "cs", "storeAccountState", "src", "builder", "require_CurrencyCollection", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Dictionary_1", "loadCurrencyCollection", "slice", "coins", "other", "storeCurrencyCollection", "collection", "builder", "require_AccountStorage", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "AccountState_1", "CurrencyCollection_1", "loadAccountStorage", "slice", "storeAccountStorage", "src", "builder", "require_StorageUsed", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadStorageUsed", "cs", "storeStorageUsed", "src", "builder", "require_StorageInto", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "StorageUsed_1", "loadStorageInfo", "slice", "storeStorageInfo", "src", "builder", "require_Account", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "AccountStorage_1", "StorageInto_1", "loadAccount", "slice", "storeAccount", "src", "builder", "require_AccountStatus", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadAccountStatus", "slice", "status", "storeAccountStatus", "src", "builder", "require_AccountStatusChange", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadAccountStatusChange", "slice", "storeAccountStatusChange", "src", "builder", "require_CommonMessageInfo", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "CurrencyCollection_1", "loadCommonMessageInfo", "slice", "ihrDisabled", "bounce", "bounced", "src", "dest", "value", "ihrFee", "forwardFee", "createdLt", "createdAt", "importFee", "storeCommonMessageInfo", "source", "builder", "require_CommonMessageInfoRelaxed", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "CurrencyCollection_1", "loadCommonMessageInfoRelaxed", "slice", "ihrDisabled", "bounce", "bounced", "src", "dest", "value", "ihrFee", "forwardFee", "createdLt", "createdAt", "storeCommonMessageInfoRelaxed", "source", "builder", "require_ComputeSkipReason", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadComputeSkipReason", "slice", "reason", "storeComputeSkipReason", "src", "builder", "require_DepthBalanceInfo", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "CurrencyCollection_1", "loadDepthBalanceInfo", "slice", "storeDepthBalanceInfo", "src", "builder", "require_HashUpdate", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadHashUpdate", "slice", "oldHash", "newHash", "storeHashUpdate", "src", "builder", "require_MasterchainStateExtra", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Dictionary_1", "CurrencyCollection_1", "loadMasterchainStateExtra", "cs", "configAddress", "config", "globalBalance", "require_Message", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "CommonMessageInfo_1", "StateInit_1", "loadMessage", "slice", "info", "init", "body", "storeMessage", "message", "opts", "builder", "initCell", "needRef", "src", "require_MessageRelaxed", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "CommonMessageInfoRelaxed_1", "StateInit_1", "loadMessageRelaxed", "slice", "info", "init", "body", "storeMessageRelaxed", "message", "opts", "builder", "initCell", "needRef", "require_SendMode", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "SendMode", "require_ShardAccount", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "Account_1", "loadShardAccount", "slice", "accountRef", "account", "accountSlice", "storeShardAccount", "src", "builder", "require_ShardAccounts", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Dictionary_1", "DepthBalanceInfo_1", "ShardAccount_1", "cs", "depthBalanceInfo", "shardAccount", "src", "builder", "loadShardAccounts", "storeShardAccounts", "Builder", "require_ShardIdent", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadShardIdent", "slice", "storeShardIdent", "src", "builder", "require_ShardStateUnsplit", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "MasterchainStateExtra_1", "ShardAccounts_1", "ShardIdent_1", "loadShardStateUnsplit", "cs", "globalId", "shardId", "seqno", "vertSeqNo", "genUtime", "genLt", "minRefMcSeqno", "beforeSplit", "shardAccountsRef", "accounts", "mcStateExtra", "extras", "cell", "require_SplitMergeInfo", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadSplitMergeInfo", "slice", "currentShardPrefixLength", "accountSplitDepth", "thisAddress", "siblingAddress", "storeSplitMergeInfo", "src", "builder", "require_StorageUsedShort", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "loadStorageUsedShort", "slice", "cells", "bits", "storeStorageUsedShort", "src", "builder", "require_TransactionActionPhase", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "AccountStatusChange_1", "StorageUsedShort_1", "loadTransactionActionPhase", "slice", "success", "valid", "noFunds", "statusChange", "totalFwdFees", "totalActionFees", "resultCode", "resultArg", "totalActions", "specActions", "skippedActions", "messagesCreated", "actionListHash", "totalMessageSize", "storeTransactionActionPhase", "src", "builder", "require_TransactionBouncePhase", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "StorageUsedShort_1", "loadTransactionBouncePhase", "slice", "messageSize", "messageFees", "forwardFees", "requiredForwardFees", "storeTransactionBouncePhase", "src", "builder", "require_TransactionComputePhase", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "ComputeSkipReason_1", "loadTransactionComputePhase", "slice", "success", "messageStateUsed", "accountActivated", "gasFees", "vmState", "gasUsed", "gasLimit", "gasCredit", "mode", "exitCode", "exitArg", "vmSteps", "vmInitStateHash", "vmFinalStateHash", "storeTransactionComputePhase", "src", "builder", "b", "require_TransactionCreditPhase", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "CurrencyCollection_1", "loadTransactionCreditPhase", "slice", "dueFeesColelcted", "credit", "storeTransactionCreditPhase", "src", "builder", "require_TransactionStoragePhase", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "AccountStatusChange_1", "loadTransactionStoragePhase", "slice", "storageFeesCollected", "storageFeesDue", "statusChange", "storeTransactionsStoragePhase", "src", "builder", "require_TransactionDescription", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "SplitMergeInfo_1", "Transaction_1", "TransactionActionPhase_1", "TransactionBouncePhase_1", "TransactionComputePhase_1", "TransactionCreditPhase_1", "TransactionStoragePhase_1", "loadTransactionDescription", "slice", "type", "creditFirst", "storagePhase", "creditPhase", "computePhase", "actionPhase", "aborted", "bouncePhase", "destroyed", "isTock", "splitInfo", "prepareTransaction", "installed", "storeTransactionDescription", "src", "builder", "require_Transaction", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Builder_1", "Dictionary_1", "AccountStatus_1", "CurrencyCollection_1", "HashUpdate_1", "Message_1", "TransactionDescription_1", "loadTransaction", "slice", "address", "lt", "prevTransactionHash", "prevTransactionLt", "now", "outMessagesCount", "oldStatus", "endStatus", "msgSlice", "inMessage", "outMessages", "totalFees", "stateUpdate", "description", "storeTransaction", "src", "builder", "msgBuilder", "require_export", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "_helpers_1", "Account_1", "AccountState_1", "AccountStatus_1", "AccountStatusChange_1", "AccountStorage_1", "CommonMessageInfo_1", "CommonMessageInfoRelaxed_1", "ComputeSkipReason_1", "CurrencyCollection_1", "DepthBalanceInfo_1", "HashUpdate_1", "MasterchainStateExtra_1", "Message_1", "MessageRelaxed_1", "SendMode_1", "ShardAccount_1", "ShardAccounts_1", "ShardIdent_1", "ShardStateUnsplit_1", "SimpleLibrary_1", "SplitMergeInfo_1", "StateInit_1", "StorageInto_1", "StorageUsed_1", "StorageUsedShort_1", "TickTock_1", "Transaction_1", "TransactionActionPhase_1", "TransactionBouncePhase_1", "TransactionComputePhase_1", "TransactionCreditPhase_1", "TransactionDescription_1", "TransactionStoragePhase_1", "require_openContract", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Address_1", "Cell_1", "openContract", "src", "factory", "address", "init", "executor", "target", "prop", "value", "args", "require_ComputeError", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ComputeError", "message", "exitCode", "opts", "require_getMethodId", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "TABLE", "crc16", "data", "Buffer", "crc", "index", "byte", "getMethodId", "name", "require_safeSign", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_crypto_1", "MIN_SEED_LENGTH", "MAX_SEED_LENGTH", "createSafeSignHash", "cell", "seed", "seedData", "Buffer", "safeSign", "secretKey", "safeSignVerify", "signature", "publicKey", "require_dist", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "Address_1", "ExternalAddress_1", "ADNLAddress_1", "contractAddress_1", "BitString_1", "BitReader_1", "BitBuilder_1", "Builder_1", "Slice_1", "CellType_1", "Cell_1", "Dictionary_1", "exoticMerkleProof_1", "exoticMerkleUpdate_1", "exoticPruned_1", "tuple_1", "reader_1", "builder_1", "openContract_1", "ComputeError_1", "convert_1", "crc16_1", "crc32c_1", "base32_1", "getMethodId_1", "safeSign_1", "require_function", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "getBooleanAlgebra", "B", "x", "y", "a", "getSemigroup", "S", "f", "g", "getMonoid", "M", "getSemigroupM", "getSemiring", "getRing", "R", "apply", "identity", "constant", "flip", "args", "_i", "flow", "ab", "bc", "cd", "de", "ef", "fg", "gh", "hi", "ij", "tuple", "increment", "n", "decrement", "absurd", "_", "tupled", "untupled", "pipe", "ret", "i", "SK", "b", "not", "predicate", "getEndomorphismMonoid", "first", "second", "require_internal", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__spreadArray", "to", "from", "pack", "i", "l", "ar", "isNone", "fa", "isSome", "some", "a", "isLeft", "ma", "isRight", "left", "e", "right", "singleton", "isNonEmpty", "as", "head", "tail", "fromReadonlyNonEmptyArray", "require_Apply", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "function_1", "_", "ap", "F", "G", "fa", "fab", "gab", "ga", "apFirst", "A", "second", "first", "a", "apSecond", "b", "apS", "name", "fb", "_a", "getApplySemigroup", "S", "x", "y", "curried", "f", "n", "acc", "combined", "i", "tupleConstructors", "c", "d", "e", "getTupleConstructor", "len", "sequenceT", "args", "_i", "fas", "getRecordConstructor", "keys", "r", "sequenceS", "fr", "require_Functor", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "function_1", "map", "F", "G", "f", "fa", "ga", "flap", "a", "fab", "bindTo", "name", "_a", "let_", "getFunctorComposition", "_map", "fga", "require_Applicative", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Apply_1", "function_1", "Functor_1", "getApplicativeMonoid", "F", "f", "M", "getApplicativeComposition", "G", "map", "_ap", "a", "fgab", "fga", "require_Chain", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "chainFirst", "M", "f", "first", "a", "bind", "name", "ma", "b", "_a", "require_ChainRec", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "tailRec", "startWith", "f", "ab", "require_FromEither", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "Chain_1", "function_1", "_", "fromOption", "F", "onNone", "ma", "fromPredicate", "predicate", "onFalse", "a", "fromOptionK", "fromOptionF", "from", "f", "chainOptionK", "M", "fromOptionKF", "fromEitherK", "chainEitherK", "fromEitherKF", "chainFirstEitherK", "filterOrElse", "require_Separated", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "function_1", "Functor_1", "separated", "left", "right", "_map", "fa", "f", "_mapLeft", "_bimap", "g", "map", "mapLeft", "bimap", "s", "require_Witherable", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "_", "wiltDefault", "T", "C", "F", "traverseF", "wa", "f", "witherDefault", "filterE", "W", "witherF", "predicate", "ga", "b", "require_Either", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "Applicative_1", "Apply_1", "Chain_1", "ChainRec_1", "FromEither_1", "function_1", "Functor_1", "_", "Separated_1", "Witherable_1", "_map", "fa", "f", "_ap", "fab", "_chain", "ma", "_reduce", "b", "_foldMap", "M", "foldMapM", "_reduceRight", "_traverse", "F", "traverseF", "ta", "_bimap", "g", "_mapLeft", "_alt", "that", "_extend", "wa", "_chainRec", "a", "e", "getShow", "SE", "SA", "getEq", "EL", "EA", "x", "y", "getSemigroup", "S", "getCompactable", "empty", "getFilterable", "_a", "compact", "separate", "filter", "predicate", "partition", "p", "ob", "getWitherable", "F_", "C", "getApplicativeValidation", "getAltValidation", "me", "ea", "map", "apW", "chainW", "reduce", "foldMap", "reduceRight", "traverse", "sequence", "bimap", "mapLeft", "altW", "extend", "matchW", "onLeft", "onRight", "getOrElseW", "swap", "orElseW", "fromNullable", "tryCatch", "onThrow", "tryCatchK", "_i", "fromNullableK", "from", "chainNullableK", "toError", "elem", "E", "elemE_1", "exists", "let_", "traverseReadonlyNonEmptyArrayWithIndex", "as", "out", "e_1", "traverseReadonlyArrayWithIndex", "traverseArray", "parseJSON", "s", "onError", "stringifyJSON", "u", "getValidationSemigroup", "getValidationMonoid", "MA", "getValidation", "ap", "alt", "require_lib", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__extends", "extendStatics", "d", "b", "p", "__", "__assign", "s", "i", "__spreadArray", "to", "from", "pack", "l", "ar", "Either_1", "failure", "value", "context", "message", "Type", "name", "is", "validate", "encode", "ab", "_this", "c", "e", "identity", "a", "getFunctionName", "f", "getContextEntry", "key", "decoder", "appendContext", "actual", "len", "r", "pushAll", "xs", "ys", "hasOwnProperty", "getNameFromProps", "props", "k", "useIdentity", "codecs", "getInterfaceTypeName", "getPartialTypeName", "inner", "enumerableRecord", "keys", "domain", "codomain", "DictionaryType", "u", "o", "errors", "changed", "ok", "codomainResult", "vok", "getDomainKeys", "_a", "isLiteralC", "literal_1", "isKeyofC", "isUnionC", "type", "undefinedType", "nonEnumerableRecord", "isAnyC", "domainResult", "vk", "getUnionName", "mergeAll", "base", "us", "equal", "primitive", "baseIsNotADictionary", "_i", "us_1", "us_2", "getProps", "codec", "stripKeys", "shouldStrip", "getExactTypeName", "isTypeC", "isPartialC", "isNonEmpty", "as", "intersect", "a_1", "v", "mergeTags", "intersection_1", "intersectTags", "intersection_2", "isStrictC", "isExactC", "isRefinementC", "isIntersectionC", "isRecursiveC", "lazyCodecs", "getTags", "index", "prop", "tags", "getIndex", "_loop_1", "all", "ctags", "values", "keys_1", "state_1", "NullType", "_super", "UndefinedType", "VoidType", "UnknownType", "_", "StringType", "NumberType", "BigIntType", "BooleanType", "AnyArrayType", "AnyDictionaryType", "LiteralType", "literal", "KeyofType", "keyof", "RefinementType", "predicate", "brand", "refinement", "n", "RecursiveType", "runDefinition", "recursion", "definition", "cache", "Self", "ArrayType", "array", "item", "ui", "result", "ai", "InterfaceType", "types", "uk", "ak", "type_1", "vak", "PartialType", "partial", "type_2", "record", "UnionType", "union", "tag_1", "groups_1", "len_1", "find_1", "TaggedUnionType", "codecs_1", "IntersectionType", "intersection", "TupleType", "tuple", "type_3", "va", "ReadonlyType", "readonly", "ReadonlyArrayType", "readonlyArray", "strict", "exact", "ExactType", "ce", "FunctionType", "tag", "taggedUnion", "U", "getValidationError", "getDefaultContext", "NeverType", "AnyType", "ObjectType", "StrictType", "clean", "alias", "require_Eq", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "function_1", "fromEquals", "equals", "x", "y", "struct", "eqs", "first", "second", "key", "tuple", "_i", "E", "i", "contramap_", "fa", "f", "contramap", "a", "b", "empty", "getSemigroup", "getMonoid", "require_Ord", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Eq_1", "function_1", "equalsDefault", "compare", "first", "second", "fromCompare", "tuple", "ords", "_i", "r", "reverse", "O", "contramap_", "fa", "f", "contramap", "getSemigroup", "a", "b", "ox", "getMonoid", "equals", "lt", "gt", "leq", "geq", "min", "max", "clamp", "minO", "maxO", "low", "hi", "between", "ltO", "gtO", "strictOrd", "date", "require_Magma", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "reverse", "M", "first", "second", "filterFirst", "predicate", "filterSecond", "endo", "f", "concatAll", "startWith", "as", "a", "acc", "require_Semigroup", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "function_1", "_", "M", "Or", "min", "O", "max", "constant", "a", "struct", "semigroups", "first", "second", "r", "tuple", "_i", "s", "i", "intercalate", "middle", "S", "x", "y", "last", "getObjectSemigroup", "fold", "concatAllS", "startWith", "as", "require_ReadonlyNonEmptyArray", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "__spreadArray", "to", "from", "pack", "i", "l", "ar", "Apply_1", "Chain_1", "Eq_1", "function_1", "Functor_1", "_", "Ord_1", "Se", "isOutOfBound", "as", "prependW", "head", "tail", "appendW", "end", "init", "unsafeInsertAt", "a", "xs", "unsafeUpdateAt", "uniq", "E", "out", "rest", "_loop_1", "_i", "rest_1", "sortBy", "ords", "M", "union", "uniqE", "second", "first", "concat", "rotate", "n", "len", "_a", "f", "s", "fromReadonlyArray", "makeBy", "j", "replicate", "range", "start", "unprepend", "unappend", "fromArray", "concatW", "x", "y", "reverse", "group", "nea", "groupBy", "as_1", "sort", "O", "updateAt", "modifyAt", "zipWith", "bs", "cs", "zip", "b", "unzip", "abs", "fa", "fb", "prependAll", "middle", "intersperse", "chainWithIndex", "chop", "next", "_b", "b_1", "rest_2", "splitAt", "chunksOf", "_map", "_mapWithIndex", "_ap", "fab", "_chain", "ma", "_extend", "wa", "_reduce", "_foldMap", "foldMapM", "_reduceRight", "_traverse", "F", "traverseF", "ta", "_alt", "that", "_reduceWithIndex", "_foldMapWithIndex", "foldMapWithIndexM", "_reduceRightWithIndex", "_traverseWithIndex", "traverseWithIndexF", "altW", "ap", "chain", "extend", "map", "mapWithIndex", "reduce", "foldMap", "S", "reduceRight", "reduceWithIndex", "foldMapWithIndex", "reduceRightWithIndex", "traverse", "sequence", "traverseWithIndex", "getShow", "getSemigroup", "getEq", "ys", "getUnionSemigroup", "unionE", "let_", "last", "min", "max", "concatAll", "matchLeft", "matchRight", "modifyHead", "updateHead", "modifyLast", "updateLast", "intercalate", "concatAllS", "groupSort", "sortO", "groupO", "filter", "predicate", "filterWithIndex", "cons", "snoc", "insertAt", "require_NonEmptyArray", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "__spreadArray", "to", "from", "pack", "i", "l", "ar", "Apply_1", "Chain_1", "function_1", "Functor_1", "_", "Ord_1", "RNEA", "isNonEmpty", "as", "isOutOfBound", "prependW", "head", "tail", "appendW", "end", "init", "unsafeInsertAt", "a", "xs", "unsafeUpdateAt", "uniq", "E", "out", "rest", "_loop_1", "_i", "rest_1", "sortBy", "ords", "M", "union", "uniqE", "second", "first", "concat", "rotate", "n", "len", "_a", "f", "s", "fromArray", "makeBy", "j", "replicate", "range", "start", "unprepend", "unappend", "concatW", "x", "y", "reverse", "group", "nea", "groupBy", "as_1", "sort", "O", "insertAt", "updateAt", "modifyAt", "of", "zipWith", "bs", "cs", "zip", "b", "unzip", "abs", "fa", "fb", "prependAll", "middle", "intersperse", "chainWithIndex", "chop", "next", "_b", "b_1", "rest_2", "splitAt", "chunksOf", "_map", "_mapWithIndex", "_ap", "fab", "_chain", "ma", "_extend", "wa", "_reduce", "_foldMap", "foldMapM", "_reduceRight", "_traverse", "F", "traverseF", "ta", "_alt", "that", "_reduceWithIndex", "_foldMapWithIndex", "foldMapWithIndexM", "_reduceRightWithIndex", "_traverseWithIndex", "traverseWithIndexF", "altW", "ap", "chain", "extend", "map", "mapWithIndex", "traverse", "sequence", "traverseWithIndex", "getSemigroup", "getUnionSemigroup", "unionE", "let_", "concatAll", "S", "matchLeft", "matchRight", "modifyHead", "updateHead", "modifyLast", "updateLast", "groupSort", "sortO", "groupO", "filter", "predicate", "filterWithIndex", "cons", "snoc", "require_number", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "isNumber", "u", "first", "second", "n", "_", "require_Zero", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "guard", "F", "P", "b", "require_ReadonlyArray", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "__spreadArray", "to", "from", "pack", "i", "l", "ar", "Apply_1", "Chain_1", "Eq_1", "FromEither_1", "function_1", "Functor_1", "_", "N", "Ord_1", "RNEA", "Separated_1", "Witherable_1", "Zero_1", "isEmpty", "as", "makeBy", "n", "f", "replicate", "a", "fromPredicate", "predicate", "fromOption", "ma", "fromEither", "e", "matchW", "onEmpty", "onNonEmpty", "matchLeftW", "matchRightW", "chainWithIndex", "out", "scanLeft", "b", "len", "scanRight", "size", "lookup", "head", "last", "tail", "init", "takeLeft", "takeRight", "takeLeftWhile", "_i", "as_1", "spanLeftIndex", "spanLeft", "_a", "rest", "dropLeft", "dropRight", "dropLeftWhile", "findIndex", "findFirst", "findFirstMap", "findLast", "findLastMap", "findLastIndex", "insertAt", "updateAt", "deleteAt", "modifyAt", "reverse", "rights", "r", "lefts", "sort", "O", "zipWith", "fa", "fb", "fc", "zip", "bs", "unzip", "prependAll", "middle", "intersperse", "rotate", "elem", "E", "elemE_1", "element", "uniq", "sortBy", "ords", "chop", "g", "splitAt", "chunksOf", "fromOptionK", "comprehension", "input", "go", "scope", "x", "concatW", "second", "first", "union", "unionE", "unionE_1", "intersection", "elemE", "xs", "ys", "intersectionE_1", "difference", "differenceE_1", "_map", "_mapWithIndex", "_ap", "fab", "_chain", "_filter", "_filterMap", "_partition", "_partitionMap", "_partitionWithIndex", "predicateWithIndex", "_partitionMapWithIndex", "_alt", "that", "_reduce", "_foldMap", "M", "foldMapM", "_reduceRight", "_reduceWithIndex", "_foldMapWithIndex", "foldMapWithIndexM", "_reduceRightWithIndex", "_filterMapWithIndex", "_filterWithIndex", "_extend", "_traverse", "F", "traverseF", "ta", "_traverseWithIndex", "traverseWithIndexF", "_chainRecDepthFirst", "_chainRecBreadthFirst", "zero", "altW", "ap", "chain", "map", "mapWithIndex", "separate", "left", "right", "fa_1", "filter", "filterMapWithIndex", "optionB", "filterMap", "partition", "partitionWithIndex", "partitionMap", "partitionMapWithIndex", "filterWithIndex", "extend", "wa", "foldMapWithIndex", "reduce", "foldMap", "reduceWithIndex", "reduceRight", "reduceRightWithIndex", "traverse", "sequence", "fas", "traverseWithIndex", "fbs", "wither", "_witherF", "_wither", "wilt", "_wiltF", "_wilt", "unfold", "bb", "mt", "b_1", "getShow", "S", "getSemigroup", "getMonoid", "getEq", "getOrd", "aLen", "bLen", "ordering", "getUnionSemigroup", "getUnionMonoid", "getIntersectionSemigroup", "intersectionE", "getDifferenceMagma", "differenceE", "chainRecDepthFirst", "todo", "chainRecBreadthFirst", "initial", "initial_1", "unsafeUpdateAt", "unsafeDeleteAt", "toArray", "fromArray", "every", "some", "intercalate", "intercalateM", "let_", "require_Array", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "Apply_1", "Chain_1", "FromEither_1", "function_1", "Functor_1", "_", "NEA", "RA", "Separated_1", "Witherable_1", "Zero_1", "isEmpty", "as", "makeBy", "n", "f", "replicate", "a", "fromPredicate", "predicate", "fromOption", "ma", "fromEither", "e", "matchW", "onEmpty", "onNonEmpty", "matchLeftW", "matchRightW", "chainWithIndex", "out", "i", "scanLeft", "b", "len", "scanRight", "size", "tail", "init", "takeLeft", "takeRight", "takeLeftWhile", "_i", "as_1", "spanLeftIndex", "l", "spanLeft", "_a", "rest", "dropLeft", "dropRight", "dropLeftWhile", "findFirst", "findLast", "copy", "insertAt", "updateAt", "deleteAt", "modifyAt", "reverse", "rights", "r", "lefts", "sort", "O", "zipWith", "fa", "fb", "fc", "zip", "bs", "unzip", "prependAll", "middle", "intersperse", "rotate", "uniq", "E", "sortBy", "ords", "chop", "g", "splitAt", "chunksOf", "fromOptionK", "comprehension", "input", "go", "scope", "x", "concatW", "second", "first", "union", "unionE", "unionE_1", "intersection", "elemE", "xs", "ys", "intersectionE_1", "difference", "differenceE_1", "_map", "_mapWithIndex", "_ap", "fab", "_chain", "_filter", "_filterMap", "_partition", "_partitionMap", "_partitionWithIndex", "predicateWithIndex", "_partitionMapWithIndex", "_alt", "that", "_reduce", "_foldMap", "M", "foldMapM", "_reduceRight", "_reduceWithIndex", "_foldMapWithIndex", "foldMapWithIndexM", "_reduceRightWithIndex", "_filterMapWithIndex", "_filterWithIndex", "_extend", "_traverse", "F", "traverseF", "ta", "_traverseWithIndex", "traverseWithIndexF", "_chainRecDepthFirst", "_chainRecBreadthFirst", "zero", "map", "ap", "chain", "mapWithIndex", "filterMapWithIndex", "optionB", "filterMap", "separate", "left", "right", "fa_1", "filter", "partition", "partitionWithIndex", "partitionMap", "partitionMapWithIndex", "altW", "filterWithIndex", "extend", "wa", "traverse", "sequence", "fas", "traverseWithIndex", "fbs", "wither", "_witherF", "_wither", "wilt", "_wiltF", "_wilt", "unfold", "bb", "mt", "b_1", "getSemigroup", "getMonoid", "getUnionSemigroup", "getUnionMonoid", "getIntersectionSemigroup", "intersectionE", "getDifferenceMagma", "differenceE", "unsafeUpdateAt", "unsafeDeleteAt", "some", "let_", "require_Predicate", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "function_1", "contramap_", "predicate", "f", "contramap", "getSemigroupAny", "first", "second", "getMonoidAny", "getSemigroupAll", "getMonoidAll", "not", "a", "or", "and", "require_Option", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "Applicative_1", "Apply_1", "Chain_1", "FromEither_1", "function_1", "Functor_1", "_", "Predicate_1", "Semigroup_1", "Separated_1", "Witherable_1", "Zero_1", "fromPredicate", "predicate", "a", "getLeft", "ma", "getRight", "_map", "fa", "f", "_ap", "fab", "_chain", "_reduce", "b", "_foldMap", "M", "foldMapM", "_reduceRight", "_traverse", "F", "traverseF", "ta", "_alt", "that", "_filter", "_filterMap", "_extend", "wa", "_partition", "_partitionMap", "getShow", "S", "getEq", "E", "x", "y", "getOrd", "O", "getMonoid", "map", "ap", "chain", "reduce", "foldMap", "reduceRight", "altW", "zero", "extend", "defaultSeparated", "separate", "filter", "filterMap", "partition", "partitionMap", "traverse", "sequence", "_wither", "_wilt", "wither", "_witherF", "wilt", "_wiltF", "throwError", "isNone", "matchW", "onNone", "onSome", "getOrElseW", "fromNullable", "tryCatch", "tryCatchK", "_i", "fromNullableK", "chainNullableK", "elem", "elemE_1", "exists", "let_", "traverseReadonlyNonEmptyArrayWithIndex", "as", "out", "o_1", "traverseReadonlyArrayWithIndex", "g", "traverseArray", "getRefinement", "getOption", "getFirstMonoid", "getLastMonoid", "require_string", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ReadonlyNonEmptyArray_1", "first", "second", "s", "isString", "u", "toUpperCase", "toLowerCase", "replace", "searchValue", "replaceValue", "trim", "trimLeft", "trimRight", "slice", "start", "end", "isEmpty", "size", "split", "separator", "out", "includes", "searchString", "position", "startsWith", "endsWith", "require_ReadonlyRecord", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "Eq_1", "function_1", "Functor_1", "_", "Separated_1", "S", "Witherable_1", "fromRecord", "r", "toRecord", "size", "isEmpty", "keys_", "O", "collect", "keysO", "f", "out", "_i", "_a", "key", "a", "toUnfoldable", "U", "sas", "len", "b", "upsertAt", "has", "deleteAt", "updateAt", "modifyAt", "next", "pop", "deleteAtk", "oa", "lookup", "isSubrecord", "E", "me", "that", "isSubrecordE_1", "mapWithIndex", "map", "reduceWithIndex", "args", "fa", "ks", "i", "foldMapWithIndex", "keysO_1", "M", "reduceRightWithIndex", "singleton", "traverseWithIndex", "F", "traverseWithIndexOF", "_traverseWithIndex", "ta", "traverse", "traverseOF", "sequence", "wither", "traverseF", "wilt", "partitionMapWithIndex", "left", "right", "e", "partitionWithIndex", "predicateWithIndex", "filterMapWithIndex", "ob", "filterWithIndex", "changed", "fromFoldable", "fromFoldableMapM", "fromFoldableMap", "fka", "fromEntries", "fa_1", "every", "predicate", "some", "elem", "elemE_1", "union", "second", "first", "intersection", "difference", "_map", "_mapWithIndex", "_reduce", "reduceO", "reduce", "_foldMap", "foldMapM", "foldMap", "_reduceRight", "reduceRightO", "reduceRight", "_filter", "_filterMap", "_partition", "_partitionMap", "_reduceWithIndex", "reduceWithIndexO", "_foldMapWithIndex", "foldMapWithIndexO", "foldMapWithIndexM", "_reduceRightWithIndex", "reduceRightWithIndexO", "_partitionMapWithIndex", "_partitionWithIndex", "_filterMapWithIndex", "_filterWithIndex", "_traverse", "traverseWithIndexO", "_sequence", "traverseO", "fr", "_loop_1", "ks_1", "filter", "filterMap", "partition", "partitionMap", "reduceWithIndexO_1", "foldMapWithIndexO_1", "reduceRightWithIndexO_1", "compact", "separate", "getShow", "elements", "getEq", "isSubrecordE", "x", "y", "getMonoid", "getFoldable", "getFoldableWithIndex", "getTraversable", "getTraversableWithIndex", "getWitherable", "T", "getUnionSemigroup", "unionS", "getUnionMonoid", "getIntersectionSemigroup", "intersectionS", "getDifferenceMagma", "_wither", "_wilt", "hasOwnProperty", "require_Record", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__assign", "s", "i", "p", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "A", "function_1", "Functor_1", "_", "RR", "Se", "S", "Witherable_1", "keys_", "O", "r", "collect", "keysO", "f", "out", "_i", "_a", "key", "a", "toUnfoldable", "U", "sas", "len", "b", "deleteAt", "updateAt", "modifyAt", "pop", "deleteAtk", "oa", "reduceWithIndex", "args", "foldMapWithIndex", "reduceRightWithIndex", "traverseWithIndex", "F", "traverse", "sequence", "wither", "traverseF", "fa", "wilt", "partitionWithIndex", "predicateWithIndex", "filterWithIndex", "fromFoldable", "M", "fromEntries", "fromFoldableMap", "union", "unionM", "second", "first", "intersection", "difference", "_map", "_mapWithIndex", "_reduce", "_foldMap", "_reduceRight", "_filter", "_filterMap", "_partition", "_partitionMap", "_reduceWithIndex", "_foldMapWithIndex", "_reduceRightWithIndex", "_partitionMapWithIndex", "_partitionWithIndex", "_filterMapWithIndex", "_filterWithIndex", "_traverse", "_sequence", "_traverseWithIndex", "ta", "ks", "fr", "_loop_1", "ks_1", "reduce", "foldMap", "reduceRight", "getShow", "getFoldable", "getFoldableWithIndex", "getTraversable", "getTraversableWithIndex", "getWitherable", "T", "getUnionSemigroup", "unionS", "getUnionMonoid", "getIntersectionSemigroup", "intersectionS", "getDifferenceMagma", "_wither", "_wilt", "require_pipeable", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Apply_1", "Chain_1", "function_1", "map", "F", "f", "fa", "contramap", "mapWithIndex", "ap", "fab", "chain", "bimap", "g", "fea", "mapLeft", "extend", "wa", "reduce", "b", "foldMap", "M", "foldMapM", "reduceRight", "reduceWithIndex", "foldMapWithIndex", "foldMapWithIndexM", "reduceRightWithIndex", "alt", "that", "filter", "predicate", "filterMap", "partition", "partitionMap", "filterWithIndex", "filterMapWithIndex", "partitionWithIndex", "partitionMapWithIndex", "promap", "fbc", "compose", "ea", "ab", "isFunctor", "I", "isContravariant", "isFunctorWithIndex", "isApply", "isChain", "isBifunctor", "isExtend", "isFoldable", "isFoldableWithIndex", "isAlt", "isCompactable", "isFilterable", "isFilterableWithIndex", "isProfunctor", "isSemigroupoid", "isMonadThrow", "pipeable", "r", "fromOption", "onNone", "ma", "fromEither", "fromPredicate", "onFalse", "a", "filterOrElse", "takeUntil", "predicate", "as", "init", "i", "exports", "A", "E", "NEA", "O", "R", "pipeable_1", "t", "utils_1", "isUnionType", "_a", "type", "jsToString", "value", "keyPath", "ctx", "c", "getErrorFromCtx", "validation", "getValidationContext", "exports", "truncateType", "options", "truncateLongTypes", "errorMessageSimple", "expectedType", "path", "error", "errorMessageUnion", "expectedTypes", "findExpectedType", "n", "formatValidationErrorOfUnion", "errors", "v", "expected", "formatValidationCommonError", "errorContext", "groupByKey", "format", "formatValidationError", "formatValidationErrors", "_key", "reporter", "prettyReporter", "require_TonCache", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "InMemoryCache", "namespace", "key", "value", "res", "require_dataloader", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "DataLoader", "batchLoadFn", "options", "getValidMaxBatchSize", "getValidBatchScheduleFn", "getValidCacheKeyFn", "getValidCacheMap", "_proto", "key", "batch", "getCurrentBatch", "cacheMap", "cacheKey", "cachedPromise", "cacheHits", "resolve", "promise", "reject", "keys", "isArrayLike", "loadPromises", "i", "error", "value", "enqueuePostPromiseJob", "browser_exports", "fn", "resolvedPromise", "loader", "existingBatch", "newBatch", "dispatchBatch", "resolveCacheHits", "batchPromise", "failedDispatch", "values", "shouldBatch", "maxBatchSize", "batchScheduleFn", "cacheKeyFn", "shouldCache", "cacheFunctions", "missingFunctions", "fnName", "x", "require_bind", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "fn", "thisArg", "args", "i", "require_utils", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "i", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_Cancel", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Cancel", "message", "require_xhr", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "defaults", "Cancel", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "onCanceled", "done", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "value", "err", "timeoutErrorMessage", "transitional", "xsrfValue", "val", "key", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "browser_exports", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "transformData", "isCancel", "defaults", "Cancel", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "config1", "config2", "config", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "valueFromConfig2", "defaultToConfig2", "mergeDirectKeys", "mergeMap", "merge", "configValue", "require_data", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "require_validator", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "VERSION", "validators", "type", "i", "thing", "deprecatedWarnings", "validator", "version", "message", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "configOrUrl", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_CancelToken", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "cancel", "l", "onfulfilled", "_resolve", "promise", "message", "listener", "index", "c", "require_spread", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "payload", "require_axios", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "instanceConfig", "axios", "promises", "require_axios", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "require_package", "__commonJSMin", "exports", "module", "require_HttpApi", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "__setModuleDefault", "v", "__importStar", "mod", "result", "__importDefault", "t", "Either_1", "io_ts_reporters_1", "TonCache_1", "dataloader_1", "axios_1", "version", "blockIdExt", "addressInformation", "bocResponse", "feeResponse", "callGetMethod", "messageData", "message", "transaction", "getTransactions", "getMasterchain", "getShards", "blockShortTxt", "getBlockTransactions", "TypedCache", "namespace", "cache", "codec", "keyEncoder", "key", "ex", "decoded", "value", "HttpApi", "endpoint", "parameters", "src", "cached", "loaded", "address", "opts", "inclusive", "hash", "Buffer", "limit", "res", "seqno", "workchain", "shard", "lt", "convHash", "method", "stack", "serializeStack", "body", "args", "headers", "s", "require_TonClient", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__classPrivateFieldSet", "receiver", "state", "value", "kind", "f", "__classPrivateFieldGet", "_TonClient_api", "HttpApi_1", "ton_core_1", "TonClient", "parameters", "address", "name", "stack", "res", "parseStack", "params", "opts", "tx", "r", "Buffer", "lt", "hash", "seqno", "m", "workchain", "shard", "v", "src", "boc", "args", "contract", "message", "info", "balance", "createProvider", "init", "s", "val", "client", "last", "storage", "neededInit", "ext", "via", "bounce", "body", "require_toUrlSafe", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "toUrlSafe", "src", "require_TonClient4", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "__setModuleDefault", "v", "__importStar", "mod", "result", "__classPrivateFieldSet", "receiver", "state", "value", "kind", "f", "__classPrivateFieldGet", "__importDefault", "_TonClient4_endpoint", "_TonClient4_timeout", "_TonClient4_adapter", "axios_1", "t", "ton_core_1", "toUrlSafe_1", "TonClient4", "args", "res", "lastBlockCodec", "seqno", "blockCodec", "ts", "address", "accountCodec", "accountLiteCodec", "lt", "changedCodec", "urladdr", "urlpath", "transactionCodec", "txcell", "Buffer", "hash", "transactionsCodec", "data", "tx", "cells", "i", "ids", "tail", "configCodec", "name", "url", "runMethodCodec", "resultTuple", "message", "sendCodec", "contract", "createProvider", "block", "init", "client", "sq", "last", "storage", "method", "neededInit", "ext", "pkg", "via", "bounce", "body", "storageStatCodec", "require_createWalletTransfer", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "ton_crypto_1", "createWalletTransferV1", "args", "signingMessage", "signature", "createWalletTransferV2", "m", "createWalletTransferV3", "createWalletTransferV4", "require_WalletContractV1R1", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV1R1", "workchain", "publicKey", "code", "Buffer", "data", "args", "provider", "state", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV1R2", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV1R2", "workchain", "publicKey", "code", "Buffer", "data", "args", "provider", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV1R3", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV1R3", "workchain", "publicKey", "code", "Buffer", "data", "args", "provider", "executor", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV2R1", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV2R1", "workchain", "publicKey", "code", "Buffer", "data", "args", "provider", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV2R2", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV2R2", "workchain", "publicKey", "code", "Buffer", "data", "args", "provider", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV3R1", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV3R1", "workchain", "publicKey", "walletId", "code", "Buffer", "data", "args", "provider", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV3R2", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV3R2", "workchain", "publicKey", "walletId", "code", "Buffer", "data", "args", "provider", "message", "transfer", "sendMode", "secretKey", "seqno", "require_WalletContractV4", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "createWalletTransfer_1", "WalletContractV4", "workchain", "publicKey", "walletId", "code", "Buffer", "data", "args", "provider", "message", "transfer", "sendMode", "secretKey", "seqno", "require_JettonMaster", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "JettonMaster", "address", "provider", "owner", "res", "totalSupply", "mintable", "adminAddress", "content", "walletCode", "require_JettonWallet", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "JettonWallet", "address", "provider", "require_MultisigOrder", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_crypto_1", "ton_core_1", "MultisigOrder", "payload", "cell", "s", "signatures", "messagesCell", "order", "signature", "ownerId", "multisig", "signingHash", "secretKey", "other", "b", "require_MultisigOrderBuilder", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_core_1", "MultisigOrder_1", "MultisigOrderBuilder", "walletId", "offset", "message", "mode", "time", "require_MultisigWallet", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "ton_crypto_1", "ton_core_1", "MULTISIG_CODE", "MultisigWallet", "publicKeys", "workchain", "walletId", "k", "opts", "i", "Buffer", "address", "provider", "contractState", "data", "owners", "key", "value", "publicKey", "sender", "order", "secretKey", "ownerId", "cell", "signature", "require_dist", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "__createBinding", "o", "m", "k", "k2", "__exportStar", "p", "HttpApi_1", "TonClient_1", "TonClient4_1", "WalletContractV1R1_1", "WalletContractV1R2_1", "WalletContractV1R3_1", "WalletContractV2R1_1", "WalletContractV2R2_1", "WalletContractV3R1_1", "WalletContractV3R2_1", "WalletContractV4_1", "JettonMaster_1", "JettonWallet_1", "MultisigOrder_1", "MultisigOrderBuilder_1", "MultisigWallet_1", "require_fetch_umd", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "global", "factory", "support", "isDataView", "obj", "viewClasses", "isArrayBufferView", "normalizeName", "name", "normalizeValue", "value", "iteratorFor", "items", "iterator", "Headers", "headers", "header", "oldValue", "callback", "thisArg", "consumed", "body", "fileReaderReady", "reader", "resolve", "reject", "readBlobAsArrayBuffer", "blob", "promise", "readBlobAsText", "readArrayBufferAsText", "buf", "view", "chars", "i", "bufferClone", "Body", "rejected", "isConsumed", "decode", "methods", "normalizeMethod", "method", "upcased", "Request", "input", "options", "reParamSearch", "reQueryString", "form", "bytes", "split", "parseHeaders", "rawHeaders", "preProcessedHeaders", "line", "parts", "key", "Response", "bodyInit", "response", "redirectStatuses", "url", "status", "message", "error", "fetch", "init", "request", "xhr", "abortXhr", "fixUrl", "require_fetch_npm_browserify", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "Nodes", "nodesUrl", "topology", "e", "node", "protonet", "res", "_a", "exports", "require_package", "__commonJSMin", "exports", "module", "nodes_1", "Access", "pjson", "edgeProtocol", "network", "res", "nodes", "sumWeights", "node", "rnd", "cur", "suffix", "single", "protonet", "healthyNodes", "chosen", "url", "exports", "getEndpoints", "access", "getHttpEndpoints", "config", "getHttpEndpoint", "getHttpV4Endpoints", "getHttpV4Endpoint", "tslib_es6_exports", "__export", "__assign", "__asyncDelegator", "__asyncGenerator", "__asyncValues", "__await", "__awaiter", "__classPrivateFieldGet", "__classPrivateFieldSet", "__createBinding", "__decorate", "__exportStar", "__extends", "__generator", "__importDefault", "__importStar", "__makeTemplateObject", "__metadata", "__param", "__read", "__rest", "__spread", "__spreadArrays", "__values", "d", "b", "extendStatics", "__", "s", "t", "p", "decorators", "target", "key", "desc", "c", "r", "i", "paramIndex", "decorator", "metadataKey", "metadataValue", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "e", "rejected", "result", "body", "_", "f", "y", "g", "verb", "n", "v", "op", "o", "m", "k", "k2", "exports", "ar", "error", "il", "j", "jl", "q", "a", "resume", "settle", "fulfill", "cooked", "raw", "mod", "receiver", "privateMap", "init_tslib_es6", "__esmMin", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "exports", "constants_1", "RawSha256", "data", "position", "byteLength", "bitsHashed", "bufferView", "undecoratedLength", "out", "_a", "buffer", "state", "state0", "state1", "state2", "state3", "state4", "state5", "state6", "state7", "i", "u", "t1_1", "t2_1", "t1", "t2", "exports", "require_pureJs", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "fromUtf8", "input", "bytes", "i", "len", "value", "surrogatePair", "toUtf8", "decoded", "byte", "nextByte", "encoded", "byteValue", "require_whatwgEncodingApi", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "fromUtf8", "input", "toUtf8", "require_dist_cjs", "__commonJSMin", "exports", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "pureJs_1", "whatwgEncodingApi_1", "fromUtf8", "input", "toUtf8", "util_utf8_browser_1", "fromUtf8", "Buffer", "input", "convertToBuffer", "data", "exports", "isEmptyData", "data", "exports", "numToUint8", "num", "exports", "uint32ArrayFrom", "a_lookUpTable", "return_array", "a_index", "exports", "convertToBuffer_1", "exports", "isEmptyData_1", "numToUint8_1", "uint32ArrayFrom_1", "constants_1", "RawSha256_1", "util_1", "Sha256", "secret", "inner", "bufferFromSecret", "outer", "toHash", "e", "exports", "input", "bufferHash", "buffer", "tslib_1", "exports", "require_core", "__commonJSMin", "exports", "module", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "deepFreezeEs6", "deepFreeze", "obj", "name", "prop", "Response", "mode", "escapeHTML", "value", "inherit$1", "original", "objects", "result", "key", "SPAN_CLOSE", "emitsWrappingTags", "node", "scopeToCSSClass", "prefix", "pieces", "x", "HTMLRenderer", "parseTree", "options", "text", "className", "newNode", "opts", "TokenTree", "scope", "builder", "child", "el", "TokenTreeEmitter", "emitter", "source", "re", "lookahead", "concat", "anyNumberOfTimes", "optional", "args", "stripOptionsFromArgs", "either", "countMatchGroups", "startsWith", "lexeme", "match", "BACKREF_RE", "_rewriteBackreferences", "regexps", "joinWith", "numCaptures", "regex", "offset", "out", "MATCH_NOTHING_RE", "IDENT_RE", "UNDERSCORE_IDENT_RE", "NUMBER_RE", "C_NUMBER_RE", "BINARY_NUMBER_RE", "RE_STARTERS_RE", "SHEBANG", "beginShebang", "m", "resp", "BACKSLASH_ESCAPE", "APOS_STRING_MODE", "QUOTE_STRING_MODE", "PHRASAL_WORDS_MODE", "COMMENT", "begin", "end", "modeOptions", "ENGLISH_WORD", "C_LINE_COMMENT_MODE", "C_BLOCK_COMMENT_MODE", "HASH_COMMENT_MODE", "NUMBER_MODE", "C_NUMBER_MODE", "BINARY_NUMBER_MODE", "REGEXP_MODE", "TITLE_MODE", "UNDERSCORE_TITLE_MODE", "METHOD_GUARD", "END_SAME_AS_BEGIN", "MODES", "skipIfHasPrecedingDot", "response", "scopeClassName", "_parent", "beginKeywords", "parent", "compileIllegal", "compileMatch", "compileRelevance", "beforeMatchExt", "originalMode", "COMMON_KEYWORDS", "DEFAULT_KEYWORD_SCOPE", "compileKeywords", "rawKeywords", "caseInsensitive", "scopeName", "compiledKeywords", "compileList", "keywordList", "keyword", "pair", "scoreForKeyword", "providedScore", "commonKeyword", "seenDeprecations", "error", "message", "warn", "deprecated", "version", "MultiClassError", "remapScopeNames", "regexes", "scopeNames", "emit", "positions", "i", "beginMultiClass", "endMultiClass", "scopeSugar", "MultiClass", "compileLanguage", "language", "langRe", "global", "MultiRegex", "terminators", "s", "matchData", "ResumableMultiRegex", "index", "matcher", "m2", "buildModeRegex", "mm", "term", "compileMode", "cmode", "ext", "keywordPattern", "c", "expandOrCloneMode", "dependencyOnParent", "variant", "HTMLInjectionError", "reason", "html", "escape", "inherit", "NO_MATCH", "MAX_KEYWORD_HITS", "HLJS", "hljs", "languages", "aliases", "plugins", "SAFE_MODE", "LANGUAGE_NOT_FOUND", "PLAINTEXT_LANGUAGE", "shouldNotHighlight", "languageName", "blockLanguage", "block", "classes", "getLanguage", "_class", "highlight", "codeOrLanguageName", "optionsOrCode", "ignoreIllegals", "code", "context", "fire", "_highlight", "codeToHighlight", "continuation", "keywordHits", "keywordData", "matchText", "processKeywords", "top", "modeBuffer", "lastIndex", "buf", "word", "data", "kind", "keywordRelevance", "relevance", "cssClass", "processSubLanguage", "continuations", "highlightAuto", "processBuffer", "emitMultiClass", "max", "klass", "startNewMode", "endOfMode", "matchPlusRemainder", "matched", "doIgnore", "resumeScanAtSamePosition", "doBeginMatch", "newMode", "beforeCallbacks", "cb", "doEndMatch", "endMode", "origin", "processContinuations", "list", "current", "item", "lastMatch", "processLexeme", "textBeforeMatch", "err", "processed", "iterations", "md", "beforeMatch", "processedCount", "justTextHighlightResult", "languageSubset", "plaintext", "results", "autoDetection", "sorted", "a", "b", "best", "secondBest", "updateClassName", "element", "currentLang", "resultLang", "highlightElement", "configure", "userOptions", "initHighlighting", "highlightAll", "initHighlightingOnLoad", "wantsHighlight", "boot", "registerLanguage", "languageDefinition", "lang", "error$1", "registerAliases", "unregisterLanguage", "alias", "listLanguages", "aliasList", "upgradePluginAPI", "plugin", "addPlugin", "event", "deprecateHighlightBlock", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "import_ton", "import_ton_access", "import_sha256_js", "SOURCES_REGISTRY", "SOURCES_REGISTRY_TESTNET", "toSha256Buffer", "s", "sha", "Buffer", "defaultIpfsConverter", "ipfs", "testnet", "endpoint", "bigIntFromBuffer", "buffer", "ContractVerifier", "codeCellHash", "options", "tc", "seqno", "args", "itemAddRes", "reader", "sourceItemAddr", "sourceItemDataRes", "contentCell", "sourcesJsonUrl", "ipfsConverter", "ipfsHttpLink", "verifiedContract", "source", "url", "content", "u", "a", "b", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "import_core", "core_default", "HighlightJS", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "IDENTIFIER", "STRING", "NUMBER", "func_default", "hljs", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "IDENTIFIER", "WORD_DEFS", "fift_default", "hljs", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "IDENTIFIER", "tlb_default", "hljs", "src_default", "hljs", "fift_default", "func_default", "tlb_default", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "div", "props", "children", "createElement", "img", "props", "children", "createElement", "appendChildren", "parent", "child", "el", "setStyle", "style", "setClass", "className", "element", "setProps", "eventRegex", "propName", "eventToListen", "type", "init_global", "init_dirname", "init_filename", "init_buffer", "init_process", "icons", "file_white_default", "folder_open_white_default", "folder_closed_white_default", "file_black_default", "folder_open_black_default", "folder_closed_black_default", "svgToInline", "svg", "Buffer", "TreeFile", "name", "theme", "div", "classNames", "img", "changeOpened", "event", "folderHeader", "newOpened", "sibling", "TreeFolder", "props", "children", "opened", "folderIcon", "folderName", "src_default", "core_default", "classNames", "ContractVerifierUI", "theme", "styleEl", "style_default", "contentSelector", "codeContainer", "name", "content", "codeWrapperEl", "filesListEl", "fileEl", "codeEl", "div", "_", "i", "contentEl", "fileListSelector", "files", "filePart", "root", "file", "nameParts", "m", "folders", "levelToPushTo", "folder", "existingFolder", "obj", "newLevel", "processLevel", "level", "child", "TreeFile", "TreeFolder", "el", "selector", "hideLineNumbers", "sourcesData", "opts", "ContractVerifier", "ContractVerifierUI"] } diff --git a/package.json b/package.json index b08e716..e385bf1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ton-community/contract-verifier-sdk", - "version": "1.3.1", + "version": "1.3.2", "description": "TON verifier SDK - sources fetcher + code viewer for FunC with code highlighting ", "exports": { "node": "./lib/index.js",