@cowprotocol/cow-sdk 6.0.0-RC.21 → 6.0.0-RC.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridging/types.d.ts +2 -2
- package/dist/common/index.d.ts +1 -0
- package/dist/index-d6f10d00.js +29 -0
- package/dist/index-d6f10d00.js.map +1 -0
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +1 -1
- package/dist/index.module.js +4 -4
- package/dist/index.module.js.map +1 -1
- package/dist/package.json +2 -1
- package/dist/schemas/trading/QuoterParameters.ts +8 -0
- package/dist/trading/appDataUtils.d.ts +2 -1
- package/dist/trading/postCoWProtocolTrade.d.ts +2 -2
- package/dist/trading/postLimitOrder.d.ts +2 -2
- package/dist/trading/postSellNativeCurrencyOrder.d.ts +2 -5
- package/dist/trading/postSwapOrder.d.ts +3 -3
- package/dist/trading/tradingSdk.d.ts +3 -3
- package/dist/trading/types.d.ts +9 -2
- package/dist/utils-3ca5d46a.js +2 -0
- package/dist/{utils-9fd8cef1.js.map → utils-3ca5d46a.js.map} +1 -1
- package/dist/utils-c0c46490.js +2 -0
- package/dist/{utils-6de4f3cb.js.map → utils-c0c46490.js.map} +1 -1
- package/dist/utils-fb9209bd.js +2 -0
- package/dist/{utils-924c0ea0.js.map → utils-fb9209bd.js.map} +1 -1
- package/package.json +2 -1
- package/dist/index-a83e1800.js +0 -29
- package/dist/index-a83e1800.js.map +0 -1
- package/dist/utils-6de4f3cb.js +0 -2
- package/dist/utils-924c0ea0.js +0 -2
- package/dist/utils-9fd8cef1.js +0 -2
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require("cross-fetch/polyfill");var e,t=require("limiter"),r=require("exponential-backoff"),n=require("ethers"),i=require("@cowprotocol/app-data"),o=require("ethers/lib/utils"),s=require("@cowprotocol/contracts"),a=require("@ethersproject/abstract-signer"),u=require("@weiroll/weiroll.js"),l=require("graphql-request"),c=require("@openzeppelin/merkle-tree");function d(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}function h(e){return"bridge"in e}function p(e){return!h(e)}exports.BridgeStatus=void 0,(e=exports.BridgeStatus||(exports.BridgeStatus={})).NOT_INITIATED="not_initiated",e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.FAILED="failed",e.EXPIRED="expired";const f="Order";var m,y;exports.SupportedChainId=void 0,(m=exports.SupportedChainId||(exports.SupportedChainId={}))[m.MAINNET=1]="MAINNET",m[m.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",m[m.ARBITRUM_ONE=42161]="ARBITRUM_ONE",m[m.BASE=8453]="BASE",m[m.SEPOLIA=11155111]="SEPOLIA",exports.AdditionalTargetChainId=void 0,(y=exports.AdditionalTargetChainId||(exports.AdditionalTargetChainId={}))[y.POLYGON=137]="POLYGON",y[y.OPTIMISM=10]="OPTIMISM";class g extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const b=function(e,{path:t,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${e}${t}${n?"?"+n:""}`,c={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(r.backOff(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(E(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new v(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class v extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const A=[408,425,429,500,502,503,504],w={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof v)||A.includes(e.response.status)},T={tokensPerInterval:5,interval:"second"},E=function(e){try{let t;const r=function(){if(204!==e.status)return function(r,n){try{var i=function(){const r=e.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(e){console.error(e)})}();return Promise.resolve(r&&r.then?r.then(function(e){return t?e:void 0}):t?r:void 0)}catch(e){return Promise.reject(e)}},S="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",I="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",x={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${I}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},C={[exports.SupportedChainId.MAINNET]:{...x,chainId:exports.SupportedChainId.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},[exports.SupportedChainId.GNOSIS_CHAIN]:{chainId:exports.SupportedChainId.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${I}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[exports.SupportedChainId.ARBITRUM_ONE]:{...x,chainId:exports.SupportedChainId.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},[exports.SupportedChainId.BASE]:{...x,chainId:exports.SupportedChainId.BASE,address:"0x4200000000000000000000000000000000000006"},[exports.SupportedChainId.SEPOLIA]:{...x,chainId:exports.SupportedChainId.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"}},k={address:S,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${I}/1/${S}/logo.png`},P="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",_=`${P}/src/chains`,N=`${_}/images/mainnet-logo.svg`,M={id:exports.SupportedChainId.MAINNET,label:"Ethereum",nativeCurrency:{...k,chainId:exports.SupportedChainId.MAINNET},addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:N,dark:N},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},R=`${_}/images/gnosis-logo.svg`,O={id:exports.SupportedChainId.GNOSIS_CHAIN,label:"Gnosis Chain",nativeCurrency:{...k,chainId:exports.SupportedChainId.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${I}/100/${S}/logo.png`},addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:R,dark:R},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},D=`${_}/images/arbitrum-one-logo-light.svg`,B=`${_}/images/arbitrum-one-logo-dark.svg`,F={id:exports.SupportedChainId.ARBITRUM_ONE,label:"Arbitrum One",nativeCurrency:{...k,chainId:exports.SupportedChainId.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:D,dark:B},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},L=`${_}/images/base-logo.svg`,U={id:exports.SupportedChainId.BASE,label:"Base",nativeCurrency:{...k,chainId:exports.SupportedChainId.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:L,dark:L},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"BaseScan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},G=`${_}/images/sepolia-logo.svg`,H={id:exports.SupportedChainId.SEPOLIA,label:"Sepolia",nativeCurrency:{...k,chainId:exports.SupportedChainId.SEPOLIA},addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:G,dark:G},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},j=`${_}/images/optimism-logo.svg`,q={id:10,label:"Optimism",logo:{light:j,dark:j},nativeCurrency:{...k,chainId:10},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},V=`${_}/polygon-logo.svg`,z={id:137,label:"Polygon",logo:{light:V,dark:V},nativeCurrency:{...k,chainId:137,name:"POL",symbol:"POL",logoUrl:V},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#ff0420",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"PolygonScan",url:"https://polygonscan.com"}},K={[exports.SupportedChainId.MAINNET]:M,[exports.SupportedChainId.GNOSIS_CHAIN]:O,[exports.SupportedChainId.ARBITRUM_ONE]:F,[exports.SupportedChainId.BASE]:U,[exports.SupportedChainId.SEPOLIA]:H},W=Object.values(K),Q=W.map(e=>e.id),J={[exports.AdditionalTargetChainId.OPTIMISM]:q,[exports.AdditionalTargetChainId.POLYGON]:z},Y=W.concat(Object.values(J)),X=Y.map(e=>e.id);function Z(e){return t=e,Q.reduce((e,r)=>({...e,[r]:"function"==typeof t?t(r):t}),{});var t}const $="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ee="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",te="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",re="0x00E989b87700514118Fa55326CD1cCE82faebEF6",ne="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",ie=Z("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),oe=Z("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),se=Z(ee),ae=Z(te),ue="0xba3cb449bd2b4adddbc894d8697f5170800eadec",le="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",ce=Z(ue),de=Z(le),he=4294967295;function pe(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=$;return{...e,validTo:r,owner:n,sellToken:i}}(function(e){const{executedFeeAmount:t,executedFee:r}=e,n=BigInt(t||"0"),i=BigInt(r||"0"),o=String(n+i);return{...e,totalFee:o}}(e))}let fe=!1;function me(e){fe&&console.log(`[COW TRADING SDK] ${e}`)}function ye(e){fe=e}const ge=["prod","staging"],be={env:"prod",chainId:exports.SupportedChainId.MAINNET},ve=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,Ae={[exports.SupportedChainId.MAINNET]:"https://api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://api.cow.fi/sepolia"},we={[exports.SupportedChainId.MAINNET]:"https://barn.api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://barn.api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function Te(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class Ee{constructor(e={}){this.context=void 0,this.rateLimiter=void 0,this.context={...be,...e},this.rateLimiter=new t.RateLimiter(e.limiterOpts||T)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new g("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new g("Must specify either owner or orderId"));const r=new URLSearchParams(Te(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},t)}getOrders({owner:e,offset:t=0,limit:r=1e3},n={}){const i=new URLSearchParams(Te({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(pe))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(pe))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>pe(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:r}=this.getContextWithOverride(t),n=ge.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof v&&404===r.response.status&&s?(i++,this.getOrder(e,{...t,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(e,{...t,env:r}).catch(o)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,r={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},r)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:r,env:n}=this.getContextWithOverride(t);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?Ae:we}fetch(e,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||w,u=r.limiterOpts?new t.RateLimiter(r.limiterOpts):this.rateLimiter;return me(`Fetching OrderBook API: ${s}${e.path}. Params: ${JSON.stringify(e,ve)}`),b(s,e,u,a)}}var Se,Ie,xe,Ce,ke,Pe,_e,Ne,Me,Re,Oe,De,Be,Fe,Le,Ue;exports.BuyTokenDestination=void 0,(Se=exports.BuyTokenDestination||(exports.BuyTokenDestination={})).ERC20="erc20",Se.INTERNAL="internal",exports.CompetitionOrderStatus=void 0,(xe=(Ie=exports.CompetitionOrderStatus||(exports.CompetitionOrderStatus={})).type||(Ie.type={})).OPEN="open",xe.SCHEDULED="scheduled",xe.ACTIVE="active",xe.SOLVED="solved",xe.EXECUTING="executing",xe.TRADED="traded",xe.CANCELLED="cancelled",exports.EcdsaSigningScheme=void 0,(Ce=exports.EcdsaSigningScheme||(exports.EcdsaSigningScheme={})).EIP712="eip712",Ce.ETHSIGN="ethsign",exports.OnchainOrderData=void 0,(Pe=(ke=exports.OnchainOrderData||(exports.OnchainOrderData={})).placementError||(ke.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",Pe.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",Pe.PRE_VALIDATION_ERROR="PreValidationError",exports.OrderCancellationError=void 0,(Ne=(_e=exports.OrderCancellationError||(exports.OrderCancellationError={})).errorType||(_e.errorType={})).INVALID_SIGNATURE="InvalidSignature",Ne.WRONG_OWNER="WrongOwner",Ne.ORDER_NOT_FOUND="OrderNotFound",Ne.ALREADY_CANCELLED="AlreadyCancelled",Ne.ORDER_FULLY_EXECUTED="OrderFullyExecuted",Ne.ORDER_EXPIRED="OrderExpired",Ne.ON_CHAIN_ORDER="OnChainOrder",exports.OrderClass=void 0,(Me=exports.OrderClass||(exports.OrderClass={})).MARKET="market",Me.LIMIT="limit",Me.LIQUIDITY="liquidity",exports.OrderKind=void 0,(Re=exports.OrderKind||(exports.OrderKind={})).BUY="buy",Re.SELL="sell",exports.OrderPostError=void 0,function(e){e.DUPLICATED_ORDER="DuplicatedOrder",e.QUOTE_NOT_FOUND="QuoteNotFound",e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.INVALID_QUOTE="InvalidQuote",e.MISSING_FROM="MissingFrom",e.WRONG_OWNER="WrongOwner",e.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",e.INSUFFICIENT_BALANCE="InsufficientBalance",e.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",e.INVALID_SIGNATURE="InvalidSignature",e.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",e.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",e.ZERO_AMOUNT="ZeroAmount",e.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",e.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",e.TOO_MUCH_GAS="TooMuchGas",e.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",e.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",e.INSUFFICIENT_VALID_TO="InsufficientValidTo",e.EXCESSIVE_VALID_TO="ExcessiveValidTo",e.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",e.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.INVALID_APP_DATA="InvalidAppData",e.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",e.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}((Oe=exports.OrderPostError||(exports.OrderPostError={})).errorType||(Oe.errorType={})),exports.OrderQuoteSideKindBuy=void 0,(exports.OrderQuoteSideKindBuy||(exports.OrderQuoteSideKindBuy={})).BUY="buy",exports.OrderQuoteSideKindSell=void 0,(exports.OrderQuoteSideKindSell||(exports.OrderQuoteSideKindSell={})).SELL="sell",exports.OrderStatus=void 0,(De=exports.OrderStatus||(exports.OrderStatus={})).PRESIGNATURE_PENDING="presignaturePending",De.OPEN="open",De.FULFILLED="fulfilled",De.CANCELLED="cancelled",De.EXPIRED="expired",exports.PriceEstimationError=void 0,function(e){e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.ZERO_AMOUNT="ZeroAmount",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}((Be=exports.PriceEstimationError||(exports.PriceEstimationError={})).errorType||(Be.errorType={})),exports.PriceQuality=void 0,(Fe=exports.PriceQuality||(exports.PriceQuality={})).FAST="fast",Fe.OPTIMAL="optimal",Fe.VERIFIED="verified",exports.SellTokenSource=void 0,(Le=exports.SellTokenSource||(exports.SellTokenSource={})).ERC20="erc20",Le.INTERNAL="internal",Le.EXTERNAL="external",exports.SigningScheme=void 0,(Ue=exports.SigningScheme||(exports.SigningScheme={})).EIP712="eip712",Ue.ETHSIGN="ethsign",Ue.PRESIGN="presign",Ue.EIP1271="eip1271";const Ge=BigInt(1e4);function He(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,a=r.kind===exports.OrderKind.SELL,u=je(r.feeAmount,n),l=je(r.sellAmount,n),c=je(r.buyAmount,i),d=c.num/l.num,h=je(l.big+u.big,n),p=je(d*h.num,i),f=s>0?(a?p.big:l.big)*BigInt(s)/Ge:BigInt(0),m=a?{sellAmount:h.big,buyAmount:c.big-f}:{sellAmount:h.big+f,buyAmount:c.big},y=e=>e*BigInt(o)/Ge,g=a?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-y(m.buyAmount)}:{sellAmount:m.sellAmount+y(m.sellAmount),buyAmount:m.buyAmount};return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:je(d*u.num,i).big},partnerFee:{amount:f,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:p.big},afterNetworkCosts:{sellAmount:h.big,buyAmount:c.big},afterPartnerFees:m,afterSlippage:g}}function je(e,t){if("number"==typeof e){const r=e*10**t,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:e}}const r=BigInt(e);return{big:r,num:Number(r)/10**t}}function qe(e){return e in K}function Ve(e){return e in J}const ze=1800,Ke=50,We={[exports.SupportedChainId.MAINNET]:200,[exports.SupportedChainId.ARBITRUM_ONE]:50,[exports.SupportedChainId.BASE]:50,[exports.SupportedChainId.GNOSIS_CHAIN]:50,[exports.SupportedChainId.SEPOLIA]:50},Qe={[exports.EcdsaSigningScheme.EIP712]:exports.SigningScheme.EIP712,[exports.EcdsaSigningScheme.ETHSIGN]:exports.SigningScheme.ETHSIGN},Je=BigInt(15e4),Ye=()=>Promise.resolve().then(function(){return require("./utils-9fd8cef1.js")});class Xe{static signOrder(e,t,r){try{return Promise.resolve(Ye()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(Ye()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(Ye()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Ye()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(Ye()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Ye()).then(function({getDomain:t}){return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return d(require("ethers/lib/utils"))})).then(function({_TypedDataEncoder:r}){return r.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function Ze({from:e,networkCostsAmount:t="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:c,partiallyFillable:d=!1,slippageBps:h=Ke,partnerFee:p,validFor:f}=r,m=r.receiver||e,y=r.validTo||Math.floor(Date.now()/1e3)+(f||ze),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:c,feeAmount:t,appData:n,partiallyFillable:d},{afterSlippage:b}=He({orderParams:g,slippagePercentBps:h,partnerFeeBps:p?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:b.sellAmount.toString(),buyAmount:b.buyAmount.toString(),validTo:y,kind:c,partiallyFillable:d,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:exports.SellTokenSource.ERC20,buyTokenBalance:exports.BuyTokenDestination.ERC20}}const $e=function(e,t,r,n){try{return Promise.resolve(Xe.generateOrderId(e,{...t,sellTokenBalance:t.sellTokenBalance,buyTokenBalance:t.buyTokenBalance,validTo:he,sellToken:C[e].address},{owner:"staging"===n?le:ue})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:t.sellAmount,fee:t.feeAmount});const n=$e(e,function(e){const t=BigInt(e.buyAmount);return{...e,buyAmount:(t-BigInt(1)).toString()}}(t),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(e){return Promise.reject(e)}},et=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class tt{static createInterface(){return new n.utils.Interface(et)}static connect(e,t){return new n.Contract(e,et,t)}}tt.abi=et;const rt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class nt{static createInterface(){return new n.utils.Interface(rt)}static connect(e,t){return new n.Contract(e,rt,t)}}nt.abi=rt;const it=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class ot{static createInterface(){return new n.utils.Interface(it)}static connect(e,t){return new n.Contract(e,it,t)}}ot.abi=it;const st=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class at{static createInterface(){return new n.utils.Interface(st)}static connect(e,t){return new n.Contract(e,st,t)}}at.abi=st;const ut=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class lt{static createInterface(){return new n.utils.Interface(ut)}static connect(e,t){return new n.Contract(e,ut,t)}}function ct(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function dt(e){return e.sellToken.toLowerCase()===$.toLowerCase()}function ht(e){return e+e*BigInt(20)/BigInt(100)}function pt({quoteParameters:e,orderParameters:t}){return{...e,sellToken:t.sellToken}}function ft(e,t){return{...t,sellToken:C[e].address,slippageBps:"number"==typeof t.slippageBps?t.slippageBps:We[e]}}lt.abi=ut;const mt=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){const a={...r,...ft(n,r)},{quoteId:u}=a,l=function(e,t,r){return ot.connect(("staging"===r?le:ue)[e],t)}(n,e,a.env),c=Ze({from:i,networkCostsAmount:o},a,t);return Promise.resolve($e(n,c,s,a.env)).then(function(e){const r={...c,quoteId:u,appData:t,validTo:c.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:c.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Je))).then(function(t){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,transaction:{data:n,gasLimit:"0x"+ht(t).toString(16),to:l.address,value:"0x"+BigInt(c.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},yt=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(mt(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n}){return me("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return me("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return me(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r}})})})}catch(e){return Promise.reject(e)}},gt=function(e,t,r,n,i={}){try{let s;function o(i){if(s)return i;function o(i){const o=Ze({from:i,networkCostsAmount:a},n,r.appDataKeccak256);return me("Signing order..."),Promise.resolve(function(){try{return u===exports.SigningScheme.PRESIGN?Promise.resolve({signature:i,signingScheme:exports.SigningScheme.PRESIGN}):Promise.resolve(Xe.signOrder(o,p,t)).then(function(e){return{signature:e.signature,signingScheme:Qe[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:l,appData:h,appDataHash:d};return me("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return me(`Order created, id: ${e}`),e})})}const{quoteId:l=null,owner:c}=n,{appDataKeccak256:d,fullAppData:h}=r,p=e.context.chainId;return c?o(c):Promise.resolve(t.getAddress()).then(o)}const{networkCostsAmount:a="0",signingScheme:u=exports.SigningScheme.EIP712}=i,l=function(){if(dt(n)){const o=n.quoteId;if("number"==typeof o)return Promise.resolve(yt(e,t,r,{...n,quoteId:o},i)).then(function({orderId:e}){return s=1,e});throw new Error("quoteId is required for EthFlow orders")}}();return Promise.resolve(l&&l.then?l.then(o):o(l))}catch(c){return Promise.reject(c)}},bt=function(e){try{return Promise.resolve(i.stringifyDeterministic(e)).then(function(e){return{fullAppData:e,appDataKeccak256:o.keccak256(o.toUtf8Bytes(e))}})}catch(e){return Promise.reject(e)}},vt=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(At.generateAppDataDoc({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n},...i})).then(function(e){return Promise.resolve(bt(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},At=new i.MetadataApi,wt=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}];var Tt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Et(e){var t={exports:{}};return e(t,t.exports),t.exports}var St={__proto__:null,default:{}},It=Et(function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:St.Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},i.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},i.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=e[i]|e[i-1]<<8|e[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)this.words[o]|=(s=e[i]|e[i+1]<<8|e[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var d=1;for(l=u(e,c,e.length,t),c=0;c<s;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,c=67108863&a,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(s=(i=0|e.words[u-h|0])*(o=0|t.words[h])+c)/67108864|0,c=67108863&s;r.words[u]=0|c,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r++]=255&s,r<e.length&&(e[r++]=s>>8&255),r<e.length&&(e[r++]=s>>16&255),6===o?(r<e.length&&(e[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r--]=255&s,r>=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+(0|n.words[o])+i),i=t>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+i),i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)o=(t=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<r.length;s++)o=(t=(0|r.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,i,o,s=e.words,a=t.words,u=r.words,l=0,c=0|s[0],d=8191&c,h=c>>>13,p=0|s[1],f=8191&p,m=p>>>13,y=0|s[2],g=8191&y,b=y>>>13,v=0|s[3],A=8191&v,w=v>>>13,T=0|s[4],E=8191&T,S=T>>>13,I=0|s[5],x=8191&I,C=I>>>13,k=0|s[6],P=8191&k,_=k>>>13,N=0|s[7],M=8191&N,R=N>>>13,O=0|s[8],D=8191&O,B=O>>>13,F=0|s[9],L=8191&F,U=F>>>13,G=0|a[0],H=8191&G,j=G>>>13,q=0|a[1],V=8191&q,z=q>>>13,K=0|a[2],W=8191&K,Q=K>>>13,J=0|a[3],Y=8191&J,X=J>>>13,Z=0|a[4],$=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],de=8191&ce,he=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(l+(n=Math.imul(d,H))|0)+((8191&(i=(i=Math.imul(d,j))+Math.imul(h,H)|0))<<13)|0;l=((o=Math.imul(h,j))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,H),i=(i=Math.imul(f,j))+Math.imul(m,H)|0,o=Math.imul(m,j);var ge=(l+(n=n+Math.imul(d,V)|0)|0)+((8191&(i=(i=i+Math.imul(d,z)|0)+Math.imul(h,V)|0))<<13)|0;l=((o=o+Math.imul(h,z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,H),i=(i=Math.imul(g,j))+Math.imul(b,H)|0,o=Math.imul(b,j),n=n+Math.imul(f,V)|0,i=(i=i+Math.imul(f,z)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,z)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,Q)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,H),i=(i=Math.imul(A,j))+Math.imul(w,H)|0,o=Math.imul(w,j),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,z)|0)+Math.imul(b,V)|0,o=o+Math.imul(b,z)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,Q)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,Q)|0;var ve=(l+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((o=o+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,H),i=(i=Math.imul(E,j))+Math.imul(S,H)|0,o=Math.imul(S,j),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,z)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Q)|0,n=n+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0;var Ae=(l+(n=n+Math.imul(d,$)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,$)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(x,H),i=(i=Math.imul(x,j))+Math.imul(C,H)|0,o=Math.imul(C,j),n=n+Math.imul(E,V)|0,i=(i=i+Math.imul(E,z)|0)+Math.imul(S,V)|0,o=o+Math.imul(S,z)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,Q)|0,n=n+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0;var we=(l+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;l=((o=o+Math.imul(h,ne)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,H),i=(i=Math.imul(P,j))+Math.imul(_,H)|0,o=Math.imul(_,j),n=n+Math.imul(x,V)|0,i=(i=i+Math.imul(x,z)|0)+Math.imul(C,V)|0,o=o+Math.imul(C,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Q)|0,n=n+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,ee)|0,n=n+Math.imul(f,re)|0,i=(i=i+Math.imul(f,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0;var Te=(l+(n=n+Math.imul(d,oe)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,oe)|0))<<13)|0;l=((o=o+Math.imul(h,se)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(M,H),i=(i=Math.imul(M,j))+Math.imul(R,H)|0,o=Math.imul(R,j),n=n+Math.imul(P,V)|0,i=(i=i+Math.imul(P,z)|0)+Math.imul(_,V)|0,o=o+Math.imul(_,z)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(C,W)|0,o=o+Math.imul(C,Q)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0,n=n+Math.imul(f,oe)|0,i=(i=i+Math.imul(f,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(l+(n=n+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((o=o+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(D,H),i=(i=Math.imul(D,j))+Math.imul(B,H)|0,o=Math.imul(B,j),n=n+Math.imul(M,V)|0,i=(i=i+Math.imul(M,z)|0)+Math.imul(R,V)|0,o=o+Math.imul(R,z)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,Q)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Q)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,$)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,n=n+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,le)|0;var Se=(l+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((o=o+Math.imul(h,he)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,H),i=(i=Math.imul(L,j))+Math.imul(U,H)|0,o=Math.imul(U,j),n=n+Math.imul(D,V)|0,i=(i=i+Math.imul(D,z)|0)+Math.imul(B,V)|0,o=o+Math.imul(B,z)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Q)|0,n=n+Math.imul(P,Y)|0,i=(i=i+Math.imul(P,X)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,se)|0,n=n+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,le)|0,n=n+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,o=o+Math.imul(m,he)|0;var Ie=(l+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((o=o+Math.imul(h,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,V),i=(i=Math.imul(L,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(D,W)|0,i=(i=i+Math.imul(D,Q)|0)+Math.imul(B,W)|0,o=o+Math.imul(B,Q)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(R,Y)|0,o=o+Math.imul(R,X)|0,n=n+Math.imul(P,$)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(C,re)|0,o=o+Math.imul(C,ne)|0,n=n+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,le)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,o=o+Math.imul(b,he)|0;var xe=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Q))+Math.imul(U,W)|0,o=Math.imul(U,Q),n=n+Math.imul(D,Y)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(C,oe)|0,o=o+Math.imul(C,se)|0,n=n+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,le)|0,n=n+Math.imul(A,de)|0,i=(i=i+Math.imul(A,he)|0)+Math.imul(w,de)|0,o=o+Math.imul(w,he)|0;var Ce=(l+(n=n+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,ee)|0)+Math.imul(B,$)|0,o=o+Math.imul(B,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(C,ue)|0,o=o+Math.imul(C,le)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(S,de)|0,o=o+Math.imul(S,he)|0;var ke=(l+(n=n+Math.imul(A,fe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((o=o+Math.imul(w,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,o=Math.imul(U,ee),n=n+Math.imul(D,re)|0,i=(i=i+Math.imul(D,ne)|0)+Math.imul(B,re)|0,o=o+Math.imul(B,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,le)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,le)|0,n=n+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(C,de)|0,o=o+Math.imul(C,he)|0;var Pe=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(S,fe)|0))<<13)|0;l=((o=o+Math.imul(S,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(D,oe)|0,i=(i=i+Math.imul(D,se)|0)+Math.imul(B,oe)|0,o=o+Math.imul(B,se)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,le)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,le)|0,n=n+Math.imul(P,de)|0,i=(i=i+Math.imul(P,he)|0)+Math.imul(_,de)|0,o=o+Math.imul(_,he)|0;var _e=(l+(n=n+Math.imul(x,fe)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((o=o+Math.imul(C,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(D,ue)|0,i=(i=i+Math.imul(D,le)|0)+Math.imul(B,ue)|0,o=o+Math.imul(B,le)|0,n=n+Math.imul(M,de)|0,i=(i=i+Math.imul(M,he)|0)+Math.imul(R,de)|0,o=o+Math.imul(R,he)|0;var Ne=(l+(n=n+Math.imul(P,fe)|0)|0)+((8191&(i=(i=i+Math.imul(P,me)|0)+Math.imul(_,fe)|0))<<13)|0;l=((o=o+Math.imul(_,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(D,de)|0,i=(i=i+Math.imul(D,he)|0)+Math.imul(B,de)|0,o=o+Math.imul(B,he)|0;var Me=(l+(n=n+Math.imul(M,fe)|0)|0)+((8191&(i=(i=i+Math.imul(M,me)|0)+Math.imul(R,fe)|0))<<13)|0;l=((o=o+Math.imul(R,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,de),i=(i=Math.imul(L,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Re=(l+(n=n+Math.imul(D,fe)|0)|0)+((8191&(i=(i=i+Math.imul(D,me)|0)+Math.imul(B,fe)|0))<<13)|0;l=((o=o+Math.imul(B,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Oe=(l+(n=Math.imul(L,fe))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,fe)|0))<<13)|0;return l=((o=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Ae,u[5]=we,u[6]=Te,u[7]=Ee,u[8]=Se,u[9]=Ie,u[10]=xe,u[11]=Ce,u[12]=ke,u[13]=Pe,u[14]=_e,u[15]=Ne,u[16]=Me,u[17]=Re,u[18]=Oe,0!==l&&(u[19]=l,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,t.length-1),l=Math.max(0,o-e.length+1);l<=u;l++){var c=(0|e.words[o-l])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),i+=(s=(s=s+(c/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++)t[r]=e.words[r/26|0]>>>r%26&1;return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var o=r.sqr();n<t.length;n++,o=o.sqr())0!==t[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o;this.words[t]=(0|this.words[t])-a<<n|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-o|d>>>o,c=d&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return!(this.length<=n||!(this.words[n]&1<<t))},i.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==t&&n++,this.length=Math.min(n,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,n){var i,o;this._expand(e.length+n);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+s;var a=(0|e.words[i])*t;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r,n=this.clone(),o=e,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==t){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(o,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[o.length+d])+(0|n.words[o.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(o,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(o=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:o,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,s,a},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(c),s.isub(d)),o.iushrn(1),s.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a),s.isub(u)):(n.isub(t),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(o=0===t.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new S(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(A,v),A.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&r)<<4|o>>>22,o=s}e.words[i-10]=o>>>=22,e.length-=0===o&&e.length>10?10:9},A.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];e.words[r]=67108863&(t+=977*n),t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(w,v),n(T,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new A;else if("p224"===e)t=new w;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,o),h=this.pow(e,o.addn(1).iushrn(1)),p=this.pow(e,o),f=s;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var o=r[0],s=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var d=l>>c&1;o!==r[0]&&(o=this.sqr(o)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===c)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},n(I,S),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,Tt)});let xt=!1,Ct=!1;const kt={debug:1,default:2,info:2,warning:3,error:4,off:5};let Pt=kt.default,_t=null;const Nt=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Mt,Rt;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Mt||(Mt={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Rt||(Rt={}));const Ot="0123456789abcdef";class Dt{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==kt[r]&&this.throwArgumentError("invalid log level name","logLevel",e),Pt>kt[r]||console.log.apply(console,t)}debug(...e){this._log(Dt.levels.DEBUG,e)}info(...e){this._log(Dt.levels.INFO,e)}warn(...e){this._log(Dt.levels.WARNING,e)}makeError(e,t,r){if(Ct)return this.makeError("censored error",t,{});t||(t=Dt.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=Ot[t[e]>>4],r+=Ot[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}}),n.push(`code=${t}`),n.push(`version=${this.version}`);const i=e;let o="";switch(t){case Rt.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Rt.CALL_EXCEPTION:case Rt.INSUFFICIENT_FUNDS:case Rt.MISSING_NEW:case Rt.NONCE_EXPIRED:case Rt.REPLACEMENT_UNDERPRICED:case Rt.TRANSACTION_REPLACED:case Rt.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach(function(e){s[e]=r[e]}),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,Dt.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){Nt&&this.throwError("platform missing String.prototype.normalize",Dt.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Nt})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Dt.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Dt.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,Dt.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,Dt.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Dt.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Dt.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Dt.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return _t||(_t=new Dt("logger/5.8.0")),_t}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Dt.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),xt){if(!e)return;this.globalLogger().throwError("error censorship permanent",Dt.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Ct=!!e,xt=!!t}static setLogLevel(e){const t=kt[e.toLowerCase()];null!=t?Pt=t:Dt.globalLogger().warn("invalid log level - "+e)}static from(e){return new Dt(e)}}Dt.errors=Rt,Dt.levels=Mt;const Bt=new Dt("bytes/5.8.0");function Ft(e){return!!e.toHexString}function Lt(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Lt(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Ut(e){return zt(e)&&!(e.length%2)||Ht(e)}function Gt(e){return"number"==typeof e&&e==e&&e%1==0}function Ht(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Gt(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Gt(r)||r<0||r>=256)return!1}return!0}function jt(e,t){if(t||(t={}),"number"==typeof e){Bt.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),Lt(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Ft(e)&&(e=e.toHexString()),zt(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Bt.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return Lt(new Uint8Array(n))}return Ht(e)?Lt(new Uint8Array(e)):Bt.throwArgumentError("invalid arrayify value","value",e)}function qt(e){const t=e.map(e=>jt(e)),r=t.reduce((e,t)=>e+t.length,0),n=new Uint8Array(r);return t.reduce((e,t)=>(n.set(t,e),e+t.length),0),Lt(n)}function Vt(e){let t=jt(e);if(0===t.length)return t;let r=0;for(;r<t.length&&0===t[r];)r++;return r&&(t=t.slice(r)),t}function zt(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Kt="0123456789abcdef";function Wt(e,t){if(t||(t={}),"number"==typeof e){Bt.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Kt[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Ft(e))return e.toHexString();if(zt(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Bt.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Ht(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Kt[(240&n)>>4]+Kt[15&n]}return t}return Bt.throwArgumentError("invalid hexlify value","value",e)}function Qt(e){if("string"!=typeof e)e=Wt(e);else if(!zt(e)||e.length%2)return null;return(e.length-2)/2}function Jt(e,t,r){return"string"!=typeof e?e=Wt(e):(!zt(e)||e.length%2)&&Bt.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function Yt(e){let t="0x";return e.forEach(e=>{t+=Wt(e).substring(2)}),t}function Xt(e){const t=function(e){"string"!=typeof e&&(e=Wt(e)),zt(e)||Bt.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Wt(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Zt(e,t){for("string"!=typeof e?e=Wt(e):zt(e)||Bt.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Bt.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function $t(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Ut(e)){let r=jt(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Wt(r.slice(0,32)),t.s=Wt(r.slice(32,64))):65===r.length?(t.r=Wt(r.slice(0,32)),t.s=Wt(r.slice(32,64)),t.v=r[64]):Bt.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Bt.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Wt(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=function(e,t){(e=jt(e)).length>t&&Bt.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),Lt(r)}(jt(t._vs),32);t._vs=Wt(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Bt.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Wt(r);null==t.s?t.s=i:t.s!==i&&Bt.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Bt.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Bt.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&zt(t.r)?t.r=Zt(t.r,32):Bt.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&zt(t.s)?t.s=Zt(t.s,32):Bt.throwArgumentError("signature missing or invalid s","signature",e);const r=jt(t.s);r[0]>=128&&Bt.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Wt(r);t._vs&&(zt(t._vs)||Bt.throwArgumentError("signature invalid _vs","signature",e),t._vs=Zt(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Bt.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function er(e){return Wt(qt([(e=$t(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const tr="bignumber/5.8.0";var rr=It.BN;const nr=new Dt(tr),ir={},or=9007199254740991;let sr=!1;class ar{constructor(e,t){e!==ir&&nr.throwError("cannot call constructor directly; use BigNumber.from",Dt.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return lr(cr(this).fromTwos(e))}toTwos(e){return lr(cr(this).toTwos(e))}abs(){return"-"===this._hex[0]?ar.from(this._hex.substring(1)):this}add(e){return lr(cr(this).add(cr(e)))}sub(e){return lr(cr(this).sub(cr(e)))}div(e){return ar.from(e).isZero()&&dr("division-by-zero","div"),lr(cr(this).div(cr(e)))}mul(e){return lr(cr(this).mul(cr(e)))}mod(e){const t=cr(e);return t.isNeg()&&dr("division-by-zero","mod"),lr(cr(this).umod(t))}pow(e){const t=cr(e);return t.isNeg()&&dr("negative-power","pow"),lr(cr(this).pow(t))}and(e){const t=cr(e);return(this.isNegative()||t.isNeg())&&dr("unbound-bitwise-result","and"),lr(cr(this).and(t))}or(e){const t=cr(e);return(this.isNegative()||t.isNeg())&&dr("unbound-bitwise-result","or"),lr(cr(this).or(t))}xor(e){const t=cr(e);return(this.isNegative()||t.isNeg())&&dr("unbound-bitwise-result","xor"),lr(cr(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&dr("negative-width","mask"),lr(cr(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&dr("negative-width","shl"),lr(cr(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&dr("negative-width","shr"),lr(cr(this).shrn(e))}eq(e){return cr(this).eq(cr(e))}lt(e){return cr(this).lt(cr(e))}lte(e){return cr(this).lte(cr(e))}gt(e){return cr(this).gt(cr(e))}gte(e){return cr(this).gte(cr(e))}isNegative(){return"-"===this._hex[0]}isZero(){return cr(this).isZero()}toNumber(){try{return cr(this).toNumber()}catch(e){dr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return nr.throwError("this platform does not support BigInt",Dt.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?sr||(sr=!0,nr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):nr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",Dt.errors.UNEXPECTED_ARGUMENT,{})),cr(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof ar)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new ar(ir,ur(e)):e.match(/^-?[0-9]+$/)?new ar(ir,ur(new rr(e))):nr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&dr("underflow","BigNumber.from",e),(e>=or||e<=-or)&&dr("overflow","BigNumber.from",e),ar.from(String(e));const t=e;if("bigint"==typeof t)return ar.from(t.toString());if(Ht(t))return ar.from(Wt(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return ar.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(zt(e)||"-"===e[0]&&zt(e.substring(1))))return ar.from(e)}return nr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function ur(e){if("string"!=typeof e)return ur(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&nr.throwArgumentError("invalid hex","value",e),"0x00"===(e=ur(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function lr(e){return ar.from(ur(e))}function cr(e){const t=ar.from(e).toHexString();return new rr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function dr(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),nr.throwError(e,Dt.errors.NUMERIC_FAULT,n)}const hr=new Dt(tr),pr={},fr=ar.from(0),mr=ar.from(-1);function yr(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),hr.throwError(e,Dt.errors.NUMERIC_FAULT,i)}let gr="0";for(;gr.length<256;)gr+=gr;function br(e){if("number"!=typeof e)try{e=ar.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+gr.substring(0,e):hr.throwArgumentError("invalid decimal size","decimals",e)}function vr(e,t){null==t&&(t=0);const r=br(t),n=(e=ar.from(e)).lt(fr);n&&(e=e.mul(mr));let i=e.mod(r).toString();for(;i.length<r.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const o=e.div(r).toString();return e=1===r.length?o:o+"."+i,n&&(e="-"+e),e}function Ar(e,t){null==t&&(t=0);const r=br(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||hr.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&hr.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&hr.throwArgumentError("too many decimal points","value",e);let o=i[0],s=i[1];for(o||(o="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&yr("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=ar.from(o),u=ar.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(mr)),l}class wr{constructor(e,t,r,n){e!==pr&&hr.throwError("cannot use FixedFormat constructor; use FixedFormat.from",Dt.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=br(n),Object.freeze(this)}static from(e){if(e instanceof wr)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||hr.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(e){const i=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&hr.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}return r%8&&hr.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&hr.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new wr(pr,t,r,n)}}class Tr{constructor(e,t,r,n){e!==pr&&hr.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Dt.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&hr.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=Ar(this._value,this.format.decimals),r=Ar(e._value,e.format.decimals);return Tr.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=Ar(this._value,this.format.decimals),r=Ar(e._value,e.format.decimals);return Tr.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=Ar(this._value,this.format.decimals),r=Ar(e._value,e.format.decimals);return Tr.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=Ar(this._value,this.format.decimals),r=Ar(e._value,e.format.decimals);return Tr.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Tr.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(Er.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Tr.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(Er.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&hr.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=Tr.from("1"+gr.substring(0,e),this.format),n=Sr.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&hr.throwArgumentError("invalid byte width","width",e),Zt(ar.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return Tr.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&(ar.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||zt(e)||"bigint"==typeof e||Ht(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),Tr.fromString(vr(e,t),wr.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=wr.from(t),n=Ar(e,r.decimals);!r.signed&&n.lt(fr)&&yr("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=Zt(i,r.width/8));const o=vr(n,r.decimals);return new Tr(pr,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=wr.from(t);if(jt(e).length>r.width/8)throw new Error("overflow");let n=ar.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=vr(n,r.decimals);return new Tr(pr,i,o,r)}static from(e,t){if("string"==typeof e)return Tr.fromString(e,t);if(Ht(e))return Tr.fromBytes(e,t);try{return Tr.fromValue(e,0,t)}catch(e){if(e.code!==Dt.errors.INVALID_ARGUMENT)throw e}return hr.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const Er=Tr.from(1),Sr=Tr.from("0.5");var Ir=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const xr=new Dt("properties/5.8.0");function Cr(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function kr(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Pr(e){return Ir(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function _r(e,t){e&&"object"==typeof e||xr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||xr.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function Nr(e){const t={};for(const r in e)t[r]=e[r];return t}const Mr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Rr(e){if(null==e||Mr[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;r<t.length;r++){let n=null;try{n=e[t[r]]}catch(e){continue}if(!Rr(n))return!1}return!0}return xr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Or(e){if(Rr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Dr(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&Cr(t,r,Dr(n))}return t}return xr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Dr(e){return Or(e)}class Br{constructor(e){for(const t in e)this[t]=Dr(e[t])}}const Fr=new Dt("abstract-provider/5.8.0");class Lr extends Br{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Ur{constructor(){Fr.checkAbstract(new.target,Ur),Cr(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield Pr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let r=null,n=null,i=null;return e&&e.baseFeePerGas&&(r=e.baseFeePerGas,i=ar.from("1500000000"),n=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(o,s)}a((r=r.apply(e,[])).next())});var e,t,r}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const Gr=new Dt("networks/5.8.0");function Hr(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new t.PocketProvider(e,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new t.AnkrProvider(e,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}if(t.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new t.QuickNodeProvider(e,r.quicknode))}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(n,i)}return n[0]};return t.renetwork=function(e){return Hr(e)},t}function jr(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return jr(e,t)},r}const qr={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Hr("homestead")},Vr={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Hr("ropsten")},zr={chainId:63,name:"classicMordor",_defaultProvider:jr("https://www.ethercluster.com/mordor","classicMordor")},Kr={unspecified:{chainId:0,name:"unspecified"},homestead:qr,mainnet:qr,morden:{chainId:2,name:"morden"},ropsten:Vr,testnet:Vr,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Hr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Hr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Hr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Hr("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Hr("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:jr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:zr,classicTestnet:zr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:jr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Hr("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Hr("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Hr("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Wr(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return jt(t)}function Qr(e){e=jt(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class Jr{constructor(e){Cr(this,"alphabet",e),Cr(this,"base",e.length),Cr(this,"_alphabetMap",{}),Cr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=jt(e);if(0===t.length)return"";let r=[0];for(let e=0;e<t.length;++e){let n=t[e];for(let e=0;e<r.length;++e)n+=r[e]<<8,r[e]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e<t.length-1;++e)n+=this._leader;for(let e=r.length-1;e>=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r<e.length;r++){let n=this._alphabetMap[e[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let r=0;e[r]===this._leader&&r<e.length-1;++r)t.push(0);return jt(new Uint8Array(t.reverse()))}}new Jr("abcdefghijklmnopqrstuvwxyz234567");const Yr=new Jr("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Xr=/*#__PURE__*/ar.from(-1),Zr=/*#__PURE__*/ar.from(0),$r=/*#__PURE__*/ar.from(1),en=/*#__PURE__*/ar.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var tn=Et(function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=Tt:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new _(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new _(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,o){return T["cshake"+e].update(t,n,i,o)[r]()}},b=function(e,t,r){return function(t,n,i,o){return T["kmac"+e].update(t,n,i,o)[r]()}},v=function(e,t,r,n){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new _(e,t,e)},r.update=function(e){return r.create().update(e)},v(r,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new _(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},v(r,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=g(e,0,"hex");return n.create=function(n,i,o){return i||o?new _(e,t,n).bytepad([i,o],r):T["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},v(n,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=b(e,0,"hex");return n.create=function(n,i,o){return new N(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},v(n,b,e,t)}}],T={},E=[],S=0;S<w.length;++S)for(var I=w[S],x=I.bits,C=0;C<x.length;++C){var k=I.name+"_"+x[C];if(E.push(k),T[k]=I.createMethod(x[C],I.padding),"sha3"!==I.name){var P=I.name+x[C];E.push(P),T[P]=T[k]}}function _(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function N(e,t,r){_.call(this,e,t,r)}_.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<d+1;++i)a[i]=0;if(r)for(i=this.start;h<c&&i<u;++h)a[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(o=e.charCodeAt(h))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[d],i=0;i<d;++i)p[i]^=a[i];M(p),this.reset=!0}else this.start=i}return this},_.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},_.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var i=0;if(r)i=e.length;else for(var o=0;o<e.length;++o){var a=e.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},_.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=[];return i.length=t-r%t,this.update(i),this},_.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];M(n)}},_.prototype.toString=_.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<t&&s<n;++o,++s)u+=a[(e=r[o])>>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(M(r),o=0)}return i&&(u+=a[(e=r[o])>>4&15]+a[15&e],i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},_.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)u[s]=r[o];s%t==0&&M(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},_.prototype.buffer=_.prototype.arrayBuffer,_.prototype.digest=_.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[e=a<<2]=255&(t=n[s]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;a%r==0&&M(n)}return o&&(u[e=a<<2]=255&(t=n[s]),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},(N.prototype=new _).finalize=function(){return this.encode(this.outputBits,!0),_.prototype.finalize.call(this)};var M=function(e){var t,r,n,i,o,s,a,u,l,d,h,p,f,m,y,g,b,v,A,w,T,E,S,I,x,C,k,P,_,N,M,R,O,D,B,F,L,U,G,H,j,q,V,z,K,W,Q,J,Y,X,Z,$,ee,te,re,ne,ie,oe,se,ae,ue,le,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((a=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(s=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,r=o^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,r=a^(h<<1|d>>>31),e[4]^=t=s^(d<<1|h>>>31),e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,r=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,r=h^(o<<1|i>>>31),e[8]^=t=d^(i<<1|o>>>31),e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[1],W=e[11]<<4|e[10]>>>28,Q=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,_=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,R=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,k=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,H=e[38]<<8|e[39]>>>24,j=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&A,e[10]=I^~C&P,e[11]=x^~k&_,e[20]=D^~F&U,e[21]=B^~L&G,e[30]=z^~W&J,e[31]=K^~Q&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=C^~P&N,e[13]=k^~_&M,e[22]=F^~U&H,e[23]=L^~G&j,e[32]=W^~J&X,e[33]=Q^~Y&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=P^~N&R,e[15]=_^~M&O,e[24]=U^~H&q,e[25]=G^~j&V,e[34]=J^~X&$,e[35]=Y^~Z&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~S&y,e[16]=N^~R&I,e[17]=M^~O&x,e[26]=H^~q&D,e[27]=j^~V&B,e[36]=X^~$&z,e[37]=Z^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=R^~I&C,e[19]=O^~x&k,e[28]=q^~D&F,e[29]=V^~B&L,e[38]=$^~z&W,e[39]=ee^~K&Q,e[48]=le^~te&ne,e[49]=ce^~re&ie,e[0]^=c[n],e[1]^=c[n+1]};if(o)e.exports=T;else for(S=0;S<E.length;++S)n[E[S]]=T[E[S]]}()}),rn=tn;function nn(e){return"0x"+rn.keccak_256(jt(e))}const on=new Dt("strings/5.8.0");var sn,an;function un(e,t,r,n,i){if(e===an.BAD_PREFIX||e===an.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===an.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(sn||(sn={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(an||(an={}));const ln=Object.freeze({error:function(e,t,r,n,i){return on.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:un,replace:function(e,t,r,n,i){return e===an.OVERLONG?(n.push(i),0):(n.push(65533),un(e,t,r))}});function cn(e,t){null==t&&(t=ln.error),e=jt(e);const r=[];let n=0;for(;n<e.length;){const i=e[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=t(128==(192&i)?an.UNEXPECTED_CONTINUE:an.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t(an.OVERRUN,n-1,e,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[n];if(128!=(192&i)){n+=t(an.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t(an.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t(an.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t(an.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function dn(e,t=sn.current){t!=sn.current&&(on.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return jt(r)}function hn(e,t){return cn(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function pn(e){return nn(dn(e))}const fn="hash/5.8.0";function mn(e,t){null==t&&(t=1);const r=[],n=r.forEach,i=function(e,t){n.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):r.push(e)})};return i(e,t),r}function yn(e){return 1&e?~e>>1:e>>1}function gn(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function bn(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=yn(t());return r}function vn(e,t){let r=gn(e(),e),n=e(),i=gn(n,e),o=function(e,t){let r=Array(e);for(let n=0;n<e;n++)r[n]=1+t();return r}(n,e);for(let e=0;e<n;e++)for(let t=0;t<o[e];t++)r.push(i[e]+t);return t?r.map(e=>t[e]):r}function An(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)bn(e,r).forEach((e,t)=>n[t].push(e));return n}function wn(e,t){let r=1+t(),n=t(),i=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(r)}return t}(t);return mn(An(i.length,1+e,t).map((e,t)=>{const o=e[0],s=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*n;return[o+t*r,s.map(e=>e+i)]})}))}function Tn(e,t){return An(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const En=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),i=1,o=[0,1];for(let e=1;e<n;e++)o.push(i+=r());let s=r(),a=t;t+=s;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<o[n]?r=n:t=n}if(0==t)break;y.push(t);let s=g+Math.floor(b*o[t]/i),a=g+Math.floor(b*o[t+1]/i)-1;for(;0==((s^a)&h);)m=m<<1&f|c(),s=s<<1&f,a=a<<1&f|1;for(;s&~a&p;)m=m&h|m<<1&f>>>1|c(),s=s<<1^h,a=(a^h)<<1|h|1;g=s,b=1+a-s}let v=n-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[a++]<<16|e[a++]<<8|e[a++]);case 2:return v+256+(e[a++]<<8|e[a++]);case 1:return v+e[a++];default:return t-1}})}(Wr("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="))),Sn=new Set(vn(En)),In=new Set(vn(En)),xn=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(wn(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(Tn(r,e))}return function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[n[0]]=n[1]}return t}(mn(t))}(En),Cn=function(e){let t=vn(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=vn(e,t);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((e,t)=>t.set.size-e.set.size);let i=e(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(En),kn=45,Pn=95;function _n(e){return function(e,t=sn.current){return cn(dn(e,t))}(e)}function Nn(e){return e.filter(e=>65039!=e)}function Mn(e){for(let t of e.split(".")){let e=_n(t);try{for(let t=e.lastIndexOf(Pn)-1;t>=0;t--)if(e[t]!==Pn)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===kn&&e[3]===kn)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function Rn(e,t){var r;let n,i,o=Cn,s=[],a=e.length;for(t&&(t.length=0);a;){let u=e[--a];if(o=null===(r=o.branches.find(e=>e.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==e[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),t&&t.push(...e.slice(a).reverse()),e.length=a)}return n}const On=new Dt(fn),Dn=new Uint8Array(32);function Bn(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Fn(e){const t=dn(function(e){return Mn(function(e,t){let r=_n(e).reverse(),n=[];for(;r.length;){let e=Rn(r);if(e){n.push(...t(e));continue}let i=r.pop();if(Sn.has(i)){n.push(i);continue}if(In.has(i))continue;let o=xn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Mn(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,Nn))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Bn(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Bn(t.slice(n))),r}function Ln(e){"string"!=typeof e&&On.throwArgumentError("invalid ENS name; not a string","name",e);let t=Dn;const r=Fn(e);for(;r.length;)t=nn(qt([t,nn(r.pop())]));return Wt(t)}Dn.fill(0);const Un=new Dt("rlp/5.8.0");function Gn(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Hn(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function jn(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(jn(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=Gn(t.length);return r.unshift(247+r.length),r.concat(t)}Ut(e)||Un.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(jt(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Gn(t.length);return r.unshift(183+r.length),r.concat(t)}function qn(e){return Wt(jn(e))}function Vn(e,t,r,n){const i=[];for(;r<t+1+n;){const o=zn(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&Un.throwError("child data too short",Dt.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function zn(e,t){if(0===e.length&&Un.throwError("data too short",Dt.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&Un.throwError("data short segment too short",Dt.errors.BUFFER_OVERRUN,{});const n=Hn(e,t+1,r);return t+1+r+n>e.length&&Un.throwError("data long segment too short",Dt.errors.BUFFER_OVERRUN,{}),Vn(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&Un.throwError("data array too short",Dt.errors.BUFFER_OVERRUN,{}),Vn(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&Un.throwError("data array too short",Dt.errors.BUFFER_OVERRUN,{});const n=Hn(e,t+1,r);return t+1+r+n>e.length&&Un.throwError("data array too short",Dt.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Wt(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&Un.throwError("data too short",Dt.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Wt(e.slice(t+1,t+1+r))}}return{consumed:1,result:Wt(e[t])}}function Kn(e){const t=jt(e),r=zn(t,0);return r.consumed!==t.length&&Un.throwArgumentError("invalid rlp data","data",e),r.result}const Wn=new Dt("address/5.8.0");function Qn(e){zt(e,20)||Wn.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=jt(nn(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Jn={};for(let e=0;e<10;e++)Jn[String(e)]=String(e);for(let e=0;e<26;e++)Jn[String.fromCharCode(65+e)]=String(10+e);const Yn=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Xn(e){let t=null;if("string"!=typeof e&&Wn.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Qn(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Wn.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>Jn[e]).join("");for(;t.length>=Yn;){let e=t.substring(0,Yn);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}(e)&&Wn.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new rr(r,36).toString(16);t.length<40;)t="0"+t;t=Qn("0x"+t)}else Wn.throwArgumentError("invalid address","address",e);var r;return t}function Zn(e){let t=null;try{t=Xn(e.from)}catch(t){Wn.throwArgumentError("missing from address","transaction",e)}return Xn(Jt(nn(qn([t,Vt(jt(ar.from(e.nonce).toHexString()))])),12))}const $n=new Dt(fn),ei=new Uint8Array(32);ei.fill(0);const ti=ar.from(-1),ri=ar.from(0),ni=ar.from(1),ii=ar.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),oi=Zt(ni.toHexString(),32),si=Zt(ri.toHexString(),32),ai={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},ui=["name","version","chainId","verifyingContract","salt"];function li(e){return function(t){return"string"!=typeof t&&$n.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const ci={name:li("name"),version:li("version"),chainId:function(e){try{return ar.from(e).toString()}catch(e){}return $n.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Xn(e).toLowerCase()}catch(e){}return $n.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=jt(e);if(32!==t.length)throw new Error("bad length");return Wt(t)}catch(e){}return $n.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function di(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&$n.throwArgumentError("invalid numeric width","type",e);const i=ii.mask(r?n-1:n),o=r?i.add(ni).mul(ti):ri;return function(t){const r=ar.from(t);return(r.lt(o)||r.gt(i))&&$n.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Zt(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&$n.throwArgumentError("invalid bytes width","type",e),function(t){return jt(t).length!==r&&$n.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=jt(e),r=t.length%32;return r?Yt([t,ei.slice(r)]):Wt(t)}(t)}}}switch(e){case"address":return function(e){return Zt(Xn(e),32)};case"bool":return function(e){return e?oi:si};case"bytes":return function(e){return nn(e)};case"string":return function(e){return pn(e)}}return null}function hi(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class pi{constructor(e){Cr(this,"types",Object.freeze(Dr(e))),Cr(this,"_encoderCache",{}),Cr(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach(e=>{t[e]={},r[e]=[],n[e]={}});for(const n in e){const i={};e[n].forEach(o=>{i[o.name]&&$n.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",e),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&$n.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),di(s)||(r[s]||$n.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",e),r[s].push(n),t[n][s]=!0)})}const i=Object.keys(r).filter(e=>0===r[e].length);0===i.length?$n.throwArgumentError("missing primary type","types",e):i.length>1&&$n.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),Cr(this,"primaryType",i[0]),function i(o,s){s[o]&&$n.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e),s[o]=!0,Object.keys(t[o]).forEach(e=>{r[e]&&(i(e,s),Object.keys(s).forEach(t=>{n[t][e]=!0}))}),delete s[o]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=hi(t,e[t])+r.map(t=>hi(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=di(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&$n.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(nn)),nn(Yt(i))}}const r=this.types[e];if(r){const t=pn(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?nn(n):n});return n.unshift(t),Yt(n)}}return $n.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||$n.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return nn(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(di(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],i=parseInt(n[3]);return i>=0&&t.length!==i&&$n.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,r))}const i=this.types[e];return i?i.reduce((e,{name:n,type:i})=>(e[n]=this._visit(i,t[n],r),e),{}):$n.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new pi(e)}static getPrimaryType(e){return pi.from(e).primaryType}static hashStruct(e,t,r){return pi.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=ai[r];n||$n.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>ui.indexOf(e.name)-ui.indexOf(t.name)),pi.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return Yt(["0x1901",pi.hashDomain(e),pi.from(t).hash(r)])}static hash(e,t,r){return nn(pi.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=Nr(e);const i={};e.verifyingContract&&!zt(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=pi.from(t);o.visit(r,(e,t)=>("address"!==e||zt(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield n(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),r=o.visit(r,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:r}},new((o=void 0)||(o=Promise))(function(e,t){function r(e){try{a(s.next(e))}catch(e){t(e)}}function n(e){try{a(s.throw(e))}catch(e){t(e)}}function a(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(e,t,r){pi.hashDomain(e);const n={},i=[];ui.forEach(t=>{const r=e[t];null!=r&&(n[t]=ci[t](r),i.push({name:t,type:ai[t]}))});const o=pi.from(t),s=Nr(t);return s.EIP712Domain?$n.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return Wt(jt(t));if(e.match(/^u?int/))return ar.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&$n.throwArgumentError("invalid string","value",t),t}return $n.throwArgumentError("unsupported type","type",e)})}}}var fi=mi;function mi(e,t){if(!e)throw new Error(t||"Assertion failed")}function yi(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function gi(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function bi(e){return 1===e.length?"0"+e:e}function vi(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}mi.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var Ai={inherits:Et(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):yi(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=bi(e[r].toString(16));return t},htonl:gi,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=gi(i)),r+=vi(i.toString(16))}return r},zero2:bi,zero8:vi,join32:function(e,t,r,n){var i=r-t;fi(i%4==0);for(var o=new Array(i/4),s=0,a=t;s<o.length;s++,a+=4)o[s]=("big"===n?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a])>>>0;return o},split32:function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=n+e[t+1]>>>0;e[t]=(i<n?1:0)+r+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,o,s,a){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,o,s,a){return t+n+o+a>>>0},sum64_5_hi:function(e,t,r,n,i,o,s,a,u,l){var c=0,d=t;return c+=(d=d+n>>>0)<t?1:0,c+=(d=d+o>>>0)<o?1:0,c+=(d=d+a>>>0)<a?1:0,e+r+i+s+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,o,s,a,u,l){return t+n+o+a+l>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function wi(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var Ti=wi;wi.prototype.update=function(e,t){if(e=Ai.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=Ai.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},wi.prototype.digest=function(e){return this.update(this._pad()),fi(null===this.pending),this._digest(e)},wi.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var Ei={BlockHash:Ti},Si=Ai.rotr32;function Ii(e,t,r){return e&t^~e&r}function xi(e,t,r){return e&t^e&r^t&r}var Ci=Ii,ki=xi,Pi=Ai.rotl32,_i=Ai.sum32,Ni=Ai.sum32_5,Mi=function(e,t,r,n){return 0===e?Ii(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?xi(t,r,n):void 0},Ri=Ei.BlockHash,Oi=[1518500249,1859775393,2400959708,3395469782];function Di(){if(!(this instanceof Di))return new Di;Ri.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Ai.inherits(Di,Ri);var Bi=Di;Di.blockSize=512,Di.outSize=160,Di.hmacStrength=80,Di.padLength=64,Di.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=Pi(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),c=Ni(Pi(i,5),Mi(l,o,s,a),u,r[n],Oi[l]);u=a,a=s,s=Pi(o,30),o=i,i=c}this.h[0]=_i(this.h[0],i),this.h[1]=_i(this.h[1],o),this.h[2]=_i(this.h[2],s),this.h[3]=_i(this.h[3],a),this.h[4]=_i(this.h[4],u)},Di.prototype._digest=function(e){return"hex"===e?Ai.toHex32(this.h,"big"):Ai.split32(this.h,"big")};var Fi=Ai.sum32,Li=Ai.sum32_4,Ui=Ai.sum32_5,Gi=Ci,Hi=ki,ji=function(e){return Si(e,2)^Si(e,13)^Si(e,22)},qi=function(e){return Si(e,6)^Si(e,11)^Si(e,25)},Vi=function(e){return Si(e,7)^Si(e,18)^e>>>3},zi=function(e){return Si(e,17)^Si(e,19)^e>>>10},Ki=Ei.BlockHash,Wi=[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];function Qi(){if(!(this instanceof Qi))return new Qi;Ki.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Wi,this.W=new Array(64)}Ai.inherits(Qi,Ki);var Ji=Qi;function Yi(){if(!(this instanceof Yi))return new Yi;Ji.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Qi.blockSize=512,Qi.outSize=256,Qi.hmacStrength=192,Qi.padLength=64,Qi.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=Li(zi(r[n-2]),r[n-7],Vi(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(fi(this.k.length===r.length),n=0;n<r.length;n++){var h=Ui(d,qi(u),Gi(u,l,c),this.k[n],r[n]),p=Fi(ji(i),Hi(i,o,s));d=c,c=l,l=u,u=Fi(a,h),a=s,s=o,o=i,i=Fi(h,p)}this.h[0]=Fi(this.h[0],i),this.h[1]=Fi(this.h[1],o),this.h[2]=Fi(this.h[2],s),this.h[3]=Fi(this.h[3],a),this.h[4]=Fi(this.h[4],u),this.h[5]=Fi(this.h[5],l),this.h[6]=Fi(this.h[6],c),this.h[7]=Fi(this.h[7],d)},Qi.prototype._digest=function(e){return"hex"===e?Ai.toHex32(this.h,"big"):Ai.split32(this.h,"big")},Ai.inherits(Yi,Ji);var Xi=Yi;Yi.blockSize=512,Yi.outSize=224,Yi.hmacStrength=192,Yi.padLength=64,Yi.prototype._digest=function(e){return"hex"===e?Ai.toHex32(this.h.slice(0,7),"big"):Ai.split32(this.h.slice(0,7),"big")};var Zi=Ai.rotr64_hi,$i=Ai.rotr64_lo,eo=Ai.shr64_hi,to=Ai.shr64_lo,ro=Ai.sum64,no=Ai.sum64_hi,io=Ai.sum64_lo,oo=Ai.sum64_4_hi,so=Ai.sum64_4_lo,ao=Ai.sum64_5_hi,uo=Ai.sum64_5_lo,lo=Ei.BlockHash,co=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function ho(){if(!(this instanceof ho))return new ho;lo.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=co,this.W=new Array(160)}Ai.inherits(ho,lo);var po=ho;function fo(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function mo(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function yo(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function go(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function bo(e,t){var r=Zi(e,t,28)^Zi(t,e,2)^Zi(t,e,7);return r<0&&(r+=4294967296),r}function vo(e,t){var r=$i(e,t,28)^$i(t,e,2)^$i(t,e,7);return r<0&&(r+=4294967296),r}function Ao(e,t){var r=Zi(e,t,14)^Zi(e,t,18)^Zi(t,e,9);return r<0&&(r+=4294967296),r}function wo(e,t){var r=$i(e,t,14)^$i(e,t,18)^$i(t,e,9);return r<0&&(r+=4294967296),r}function To(e,t){var r=Zi(e,t,1)^Zi(e,t,8)^eo(e,t,7);return r<0&&(r+=4294967296),r}function Eo(e,t){var r=$i(e,t,1)^$i(e,t,8)^to(e,t,7);return r<0&&(r+=4294967296),r}function So(e,t){var r=Zi(e,t,19)^Zi(t,e,29)^eo(e,t,6);return r<0&&(r+=4294967296),r}function Io(e,t){var r=$i(e,t,19)^$i(t,e,29)^to(e,t,6);return r<0&&(r+=4294967296),r}function xo(){if(!(this instanceof xo))return new xo;po.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}ho.blockSize=1024,ho.outSize=512,ho.hmacStrength=192,ho.padLength=128,ho.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=So(r[n-4],r[n-3]),o=Io(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=To(r[n-30],r[n-29]),l=Eo(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=oo(i,o,s,a,u,l,c,d),r[n+1]=so(i,o,s,a,u,l,c,d)}},ho.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];fi(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=Ao(d,h),E=wo(d,h),S=fo(d,0,p,0,m),I=mo(0,h,0,f,0,y),x=this.k[v],C=this.k[v+1],k=r[v],P=r[v+1],_=ao(A,w,T,E,S,I,x,C,k,P),N=uo(A,w,T,E,S,I,x,C,k,P);A=bo(n,i),w=vo(n,i),T=yo(n,0,o,0,a),E=go(0,i,0,s,0,u);var M=no(A,w,T,E),R=io(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=no(l,c,_,N),h=io(c,c,_,N),l=a,c=u,a=o,u=s,o=n,s=i,n=no(_,N,M,R),i=io(_,N,M,R)}ro(this.h,0,n,i),ro(this.h,2,o,s),ro(this.h,4,a,u),ro(this.h,6,l,c),ro(this.h,8,d,h),ro(this.h,10,p,f),ro(this.h,12,m,y),ro(this.h,14,g,b)},ho.prototype._digest=function(e){return"hex"===e?Ai.toHex32(this.h,"big"):Ai.split32(this.h,"big")},Ai.inherits(xo,po);var Co=xo;xo.blockSize=1024,xo.outSize=384,xo.hmacStrength=192,xo.padLength=128,xo.prototype._digest=function(e){return"hex"===e?Ai.toHex32(this.h.slice(0,12),"big"):Ai.split32(this.h.slice(0,12),"big")};var ko={sha1:Bi,sha224:Xi,sha256:Ji,sha384:Co,sha512:po},Po=Ai.rotl32,_o=Ai.sum32,No=Ai.sum32_3,Mo=Ai.sum32_4,Ro=Ei.BlockHash;function Oo(){if(!(this instanceof Oo))return new Oo;Ro.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}Ai.inherits(Oo,Ro);var Do=Oo;function Bo(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function Fo(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Lo(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Oo.blockSize=512,Oo.outSize=160,Oo.hmacStrength=192,Oo.padLength=64,Oo.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,c=o,d=s,h=0;h<80;h++){var p=_o(Po(Mo(r,Bo(h,n,i,o),e[Uo[h]+t],Fo(h)),Ho[h]),s);r=s,s=o,o=Po(i,10),i=n,n=p,p=_o(Po(Mo(a,Bo(79-h,u,l,c),e[Go[h]+t],Lo(h)),jo[h]),d),a=d,d=c,c=Po(l,10),l=u,u=p}p=No(this.h[1],i,c),this.h[1]=No(this.h[2],o,d),this.h[2]=No(this.h[3],s,a),this.h[3]=No(this.h[4],r,u),this.h[4]=No(this.h[0],n,l),this.h[0]=p},Oo.prototype._digest=function(e){return"hex"===e?Ai.toHex32(this.h,"little"):Ai.split32(this.h,"little")};var Uo=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Go=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Ho=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],jo=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],qo={ripemd160:Do};function Vo(e,t,r){if(!(this instanceof Vo))return new Vo(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(Ai.toArray(t,r))}var zo=Vo;Vo.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),fi(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Vo.prototype.update=function(e,t){return this.inner.update(e,t),this},Vo.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var Ko,Wo=Et(function(e,t){var r=t;r.utils=Ai,r.common=Ei,r.sha=ko,r.ripemd=qo,r.hmac=zo,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),Qo=Wo;!function(e){e.sha256="sha256",e.sha512="sha512"}(Ko||(Ko={}));const Jo=new Dt("sha2/5.8.0");function Yo(e){return"0x"+Qo.sha256().update(jt(e)).digest("hex")}function Xo(e,t,r){return Ko[e]||Jo.throwError("unsupported algorithm "+e,Dt.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Qo.hmac(Qo[e],jt(t)).update(jt(r)).digest("hex")}var Zo=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};function $o(e,t){return Zo(this,void 0,void 0,function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(r.mode=e.mode),e.cache&&(r.cache=e.cache),e.credentials&&(r.credentials=e.credentials),e.redirect&&(r.redirect=e.redirect),e.referrer&&(r.referrer=e.referrer)}const n=yield fetch(e,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((e,t)=>{o[t.toLowerCase()]=e}):n.headers.keys().forEach(e=>{o[e.toLowerCase()]=n.headers.get(e)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:jt(new Uint8Array(i))}})}var es=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const ts=new Dt("web/5.8.0");function rs(e){return new Promise(t=>{setTimeout(t,e)})}function ns(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Ut(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return hn(e)}catch(e){}return Wt(e)}return e}function is(e,t,r){let n=null;if(null!=t){n=dn(t);const r="string"==typeof e?{url:e}:Nr(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=Nr(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return function(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;ts.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof e?e.throttleCallback:null,o="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;ts.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof e&&!!e.errorPassThrough,a={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||ts.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)a[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&ts.throwError("basic authentication requires a secure https url",Dt.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+Qr(dn(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=Nr(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Wr(p[3]):(f=p[3],dn(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){ts.throwError("processing response error",Dt.errors.SERVER_ERROR,{body:ns(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(a).forEach(e=>{const t=a[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,r){d&&(e=setTimeout(()=>{null!=e&&(e=null,r(ts.makeError("timeout",Dt.errors.TIMEOUT,{requestBody:ns(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return es(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield $o(u,l),e<n)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let r=!0;if(i&&(r=yield i(e,u)),r){let r=0;const n=t.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,e))),yield rs(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),ts.throwError("missing response",Dt.errors.SERVER_ERROR,{requestBody:ns(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let a=t.body;if(c&&304===t.statusCode?a=null:!s&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),ts.throwError("bad response",Dt.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:ns(a,t.headers?t.headers["content-type"]:null),requestBody:ns(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const e=yield r(a,t);return y.cancel(),e}catch(r){if(r.throttleRetry&&e<n){let t=!0;if(i&&(t=yield i(e,u)),t){const t=o*parseInt(String(Math.random()*Math.pow(2,e)));yield rs(t);continue}}y.cancel(),ts.throwError("processing response error",Dt.errors.SERVER_ERROR,{body:ns(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:ns(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return ts.throwError("failed response",Dt.errors.SERVER_ERROR,{requestBody:ns(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,n,(e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(hn(e))}catch(t){ts.throwError("invalid JSON",Dt.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function os(e,t){return t||(t={}),null==(t=Nr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},t.timeout));const a=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)s()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){s()&&n(e)})}()})}for(var ss="qpzry9x8gf2tvdw0s3jn54khce6mua7l",as={},us=0;us<ss.length;us++){var ls=ss.charAt(us);if(void 0!==as[ls])throw new TypeError(ls+" is ambiguous");as[ls]=us}function cs(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const ds="providers/5.8.0";function hs(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var ps=fs;function fs(e,t){if(!e)throw new Error(t||"Assertion failed")}fs.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var ms=hs(function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}}),ys=hs(function(e,t){var r=t;r.assert=ps,r.toArray=ms.toArray,r.zero2=ms.zero2,r.toHex=ms.toHex,r.encode=ms.encode,r.getNAF=function(e,t,r){var n,i=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<t+1,s=e.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,u=e.andln(3)+i&3,l=t.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new It(e,"hex","le")}}),gs=ys.getNAF,bs=ys.getJSF,vs=ys.assert;function As(e,t){this.type=e,this.p=new It(t.p,16),this.red=t.prime?It.red(t.prime):It.mont(this.p),this.zero=new It(0).toRed(this.red),this.one=new It(1).toRed(this.red),this.two=new It(2).toRed(this.red),this.n=t.n&&new It(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var ws=As;function Ts(e,t){this.curve=e,this.type=t,this.precomputed=null}As.prototype.point=function(){throw new Error("Not implemented")},As.prototype.validate=function(){throw new Error("Not implemented")},As.prototype._fixedNafMul=function(e,t){vs(e.precomputed);var r=e._getDoubles(),n=gs(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<a.length;o++)(s=a[o])===d?c=c.mixedAdd(r.points[o]):s===-d&&(c=c.mixedAdd(r.points[o].neg()));l=l.add(c)}return l.toP()},As.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=gs(t,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];vs(0!==l),s="affine"===e.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?s.toP():s},As.prototype._wnafMulAdd=function(e,t,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(o=0;o<n;o++){var h=(a=t[o])._getNAFPoints(e);u[o]=h.wnd,l[o]=h.points}for(o=n-1;o>=1;o-=2){var p=o-1,f=o;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=bs(r[p],r[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),s=0;s<d;s++)c[p][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],c[f][s]=0,l[p]=m}else c[p]=gs(r[p],u[p],this._bitLength),c[f]=gs(r[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(o=d;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)v[s]=0|c[s][o],0!==v[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,b=b.dblp(A),o<0)break;for(s=0;s<n;s++){var T=v[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),b="affine"===a.type?b.mixedAdd(a):b.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?b:b.toP()},As.BasePoint=Ts,Ts.prototype.eq=function(){throw new Error("Not implemented")},Ts.prototype.validate=function(){return this.curve.validate(this)},As.prototype.decodePoint=function(e,t){e=ys.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?vs(e[e.length-1]%2==0):7===e[0]&&vs(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},Ts.prototype.encodeCompressed=function(e){return this.encode(e,!0)},Ts.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},Ts.prototype.encode=function(e,t){return ys.encode(this._encode(t),e)},Ts.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},Ts.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},Ts.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},Ts.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},Ts.prototype._getBeta=function(){return null},Ts.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var Es=hs(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),Ss=ys.assert;function Is(e){ws.call(this,"short",e),this.a=new It(e.a,16).toRed(this.red),this.b=new It(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Es(Is,ws);var xs=Is;function Cs(e,t,r,n){ws.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new It(t,16),this.y=new It(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function ks(e,t,r,n){ws.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new It(0)):(this.x=new It(t,16),this.y=new It(r,16),this.z=new It(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Is.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new It(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new It(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:Ss(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:r,basis:e.basis?e.basis.map(function(e){return{a:new It(e.a,16),b:new It(e.b,16)}}):this._getEndoBasis(r)}}},Is.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:It.mont(e),r=new It(2).toRed(t).redInvm(),n=r.redNeg(),i=new It(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},Is.prototype._getEndoBasis=function(e){for(var t,r,n,i,o,s,a,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new It(1),f=new It(0),m=new It(0),y=new It(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!n&&u.cmp(c)<0)t=a.neg(),r=p,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,h=d,d=u,m=p,p=l,y=f,f=v}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},Is.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:e.sub(s).sub(a),k2:u.add(l).neg()}},Is.prototype.pointFromX=function(e,t){(e=new It(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},Is.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},Is.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),c=0;c<2*o;c++)n[c]=null,i[c]=null;return l},Es(Cs,ws.BasePoint),Is.prototype.point=function(e,t,r){return new Cs(this,e,t,r)},Is.prototype.pointFromJSON=function(e,t){return Cs.fromJSON(this,e,t)},Cs.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},Cs.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Cs.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},Cs.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Cs.prototype.isInfinity=function(){return this.inf},Cs.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Cs.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},Cs.prototype.getX=function(){return this.x.fromRed()},Cs.prototype.getY=function(){return this.y.fromRed()},Cs.prototype.mul=function(e){return e=new It(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Cs.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},Cs.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},Cs.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Cs.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Cs.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Es(ks,ws.BasePoint),Is.prototype.jpoint=function(e,t,r){return new ks(this,e,t,r)},ks.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},ks.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ks.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),c=l.redMul(a),d=n.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(o.redMul(c)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,f)},ks.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),c=r.redMul(u),d=a.redSqr().redIAdd(l).redISub(c).redISub(c),h=a.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(d,h,p)},ks.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(t=0;t<e;t++){var c=o.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(n.redMul(u)),f=o.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(a);t+1<e&&(u=u.redMul(h)),o=m,a=b,l=g}return this.curve.jpoint(o,l.redMul(i),a)},ks.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ks.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},ks.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);e=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,r)},ks.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=s.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=a.redMul(d).redISub(h),f=r.redAdd(r).redMul(n);return this.curve.jpoint(c,p,f)},ks.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(a).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(d,h,p)},ks.prototype.mul=function(e,t){return e=new It(e,t),this.curve._wnafMul(this,e)},ks.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},ks.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},ks.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},ks.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Ps=hs(function(e,t){var r=t;r.base=ws,r.short=xs,r.mont=null,r.edwards=null}),_s=hs(function(e,t){var r,n=t,i=ys.assert;function o(e){this.curve="short"===e.type?new Ps.short(e):"edwards"===e.type?new Ps.edwards(e):new Ps.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Qo.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Qo.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Qo.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Qo.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Qo.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Qo.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Qo.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Qo.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Ns(e){if(!(this instanceof Ns))return new Ns(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=ms.toArray(e.entropy,e.entropyEnc||"hex"),r=ms.toArray(e.nonce,e.nonceEnc||"hex"),n=ms.toArray(e.pers,e.persEnc||"hex");ps(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Ms=Ns;Ns.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},Ns.prototype._hmac=function(){return new Qo.hmac(this.hash,this.K)},Ns.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Ns.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=ms.toArray(e,t),r=ms.toArray(r,n),ps(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},Ns.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=ms.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,e);return this._update(r),this._reseed++,ms.encode(o,t)};var Rs=ys.assert;function Os(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Ds=Os;Os.fromPublic=function(e,t,r){return t instanceof Os?t:new Os(e,{pub:t,pubEnc:r})},Os.fromPrivate=function(e,t,r){return t instanceof Os?t:new Os(e,{priv:t,privEnc:r})},Os.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Os.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Os.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Os.prototype._importPrivate=function(e,t){this.priv=new It(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Os.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Rs(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Rs(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Os.prototype.derive=function(e){return e.validate()||Rs(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Os.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},Os.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},Os.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Bs=ys.assert;function Fs(e,t){if(e instanceof Fs)return e;this._importDER(e,t)||(Bs(e.r&&e.s,"Signature without r or s"),this.r=new It(e.r,16),this.s=new It(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var Ls=Fs;function Us(){this.place=0}function Gs(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var i=0,o=0,s=t.place;o<n;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function Hs(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function js(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Fs.prototype._importDER=function(e,t){e=ys.toArray(e,t);var r=new Us;if(48!==e[r.place++])return!1;var n=Gs(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=Gs(e,r);if(!1===i)return!1;if(0!=(128&e[r.place]))return!1;var o=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=Gs(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(0!=(128&e[r.place]))return!1;var a=e.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new It(o),this.s=new It(a),this.recoveryParam=null,!0},Fs.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=Hs(t),r=Hs(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];js(n,t.length),(n=n.concat(t)).push(2),js(n,r.length);var i=n.concat(r),o=[48];return js(o,i.length),o=o.concat(i),ys.encode(o,e)};var qs=function(){throw new Error("unsupported")},Vs=ys.assert;function zs(e){if(!(this instanceof zs))return new zs(e);"string"==typeof e&&(Vs(Object.prototype.hasOwnProperty.call(_s,e),"Unknown curve "+e),e=_s[e]),e instanceof _s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Ks=zs;zs.prototype.keyPair=function(e){return new Ds(this,e)},zs.prototype.keyFromPrivate=function(e,t){return Ds.fromPrivate(this,e,t)},zs.prototype.keyFromPublic=function(e,t){return Ds.fromPublic(this,e,t)},zs.prototype.genKeyPair=function(e){e||(e={});for(var t=new Ms({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||qs(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new It(2));;){var i=new It(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},zs.prototype._truncateToN=function(e,t,r){var n;if(It.isBN(e)||"number"==typeof e)n=(e=new It(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new It(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new It(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},zs.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!It.isBN(e)){Vs("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Vs(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Vs((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Vs(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Vs(new It(a).eq(e),"Can not sign message");for(var u=new Ms({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new It(1)),c=0;;c++){var d=n.k?n.k(c):new It(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new Ls({r:f,s:m,recoveryParam:y})}}}}}},zs.prototype.verify=function(e,t,r,n,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(t=new Ls(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},zs.prototype.recoverPubKey=function(e,t,r,n){Vs((3&r)===r,"The recovery param is more than two bits"),t=new Ls(t,n);var i=this.n,o=new It(e),s=t.r,a=t.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var c=t.r.invm(i),d=i.sub(o).mul(c).umod(i),h=a.mul(c).umod(i);return this.g.mulAdd(d,s,h)},zs.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Ls(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var Ws=hs(function(e,t){var r=t;r.version="6.6.1",r.utils=ys,r.rand=function(){throw new Error("unsupported")},r.curve=Ps,r.curves=_s,r.ec=Ks,r.eddsa=null}).ec;const Qs=new Dt("signing-key/5.8.0");let Js=null;function Ys(){return Js||(Js=new Ws("secp256k1")),Js}class Xs{constructor(e){Cr(this,"curve","secp256k1"),Cr(this,"privateKey",Wt(e)),32!==Qt(this.privateKey)&&Qs.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Ys().keyFromPrivate(jt(this.privateKey));Cr(this,"publicKey","0x"+t.getPublic(!1,"hex")),Cr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Cr(this,"_isSigningKey",!0)}_addPoint(e){const t=Ys().keyFromPublic(jt(this.publicKey)),r=Ys().keyFromPublic(jt(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=Ys().keyFromPrivate(jt(this.privateKey)),r=jt(e);32!==r.length&&Qs.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return $t({recoveryParam:n.recoveryParam,r:Zt("0x"+n.r.toString(16),32),s:Zt("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=Ys().keyFromPrivate(jt(this.privateKey)),r=Ys().keyFromPublic(jt(Zs(e)));return Zt("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Zs(e,t){const r=jt(e);if(32===r.length){const e=new Xs(r);return t?"0x"+Ys().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Wt(r):"0x"+Ys().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+Ys().keyFromPublic(r).getPublic(!0,"hex"):Wt(r):Qs.throwArgumentError("invalid public or private key","key","[REDACTED]")}const $s=new Dt("transactions/5.8.0");var ea;function ta(e){return"0x"===e?null:Xn(e)}function ra(e){return"0x"===e?Zr:ar.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(ea||(ea={}));const na=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],ia={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function oa(e){return Xn(Jt(nn(Jt(Zs(e),1)),12))}function sa(e,t){return oa(function(e,t){const r=$t(t),n={r:jt(r.r),s:jt(r.s)};return"0x"+Ys().recoverPubKey(jt(e),n,r.recoveryParam).encode("hex",!1)}(jt(e),t))}function aa(e,t){const r=Vt(ar.from(e).toHexString());return r.length>32&&$s.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function ua(e,t){return{address:Xn(e),storageKeys:(t||[]).map((t,r)=>(32!==Qt(t)&&$s.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function la(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&$s.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),ua(e[0],e[1])):ua(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return ua(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function ca(e){return la(e).map(e=>[e.address,e.storageKeys])}function da(e,t){if(null!=e.gasPrice){const t=ar.from(e.gasPrice),r=ar.from(e.maxFeePerGas||0);t.eq(r)||$s.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[aa(e.chainId||0,"chainId"),aa(e.nonce||0,"nonce"),aa(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),aa(e.maxFeePerGas||0,"maxFeePerGas"),aa(e.gasLimit||0,"gasLimit"),null!=e.to?Xn(e.to):"0x",aa(e.value||0,"value"),e.data||"0x",ca(e.accessList||[])];if(t){const e=$t(t);r.push(aa(e.recoveryParam,"recoveryParam")),r.push(Vt(e.r)),r.push(Vt(e.s))}return Yt(["0x02",qn(r)])}function ha(e,t){const r=[aa(e.chainId||0,"chainId"),aa(e.nonce||0,"nonce"),aa(e.gasPrice||0,"gasPrice"),aa(e.gasLimit||0,"gasLimit"),null!=e.to?Xn(e.to):"0x",aa(e.value||0,"value"),e.data||"0x",ca(e.accessList||[])];if(t){const e=$t(t);r.push(aa(e.recoveryParam,"recoveryParam")),r.push(Vt(e.r)),r.push(Vt(e.s))}return Yt(["0x01",qn(r)])}function pa(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&$s.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){_r(e,ia);const r=[];na.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=jt(Wt(n,i)),t.length&&n.length!==t.length&&n.length>0&&$s.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Vt(n),n.length>t.maxLength&&$s.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Wt(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&$s.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Ut(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Wt(n)),r.push("0x"),r.push("0x")),!t)return qn(r);const i=$t(t);let o=27+i.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&$s.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&$s.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Wt(o)),r.push(Vt(jt(i.r))),r.push(Vt(jt(i.s))),qn(r)}(e,t);switch(e.type){case 1:return ha(e,t);case 2:return da(e,t)}return $s.throwError(`unsupported transaction type: ${e.type}`,Dt.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function fa(e,t,r){try{const r=ra(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){$s.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Zt(t[1],32),e.s=Zt(t[2],32);try{const t=nn(r(e));e.from=sa(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const ma=new Dt(ds);class ya{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:o,type:u,accessList:ya.allowNull(this.accessList.bind(this),null),blockHash:ya.allowNull(o,null),blockNumber:ya.allowNull(a,null),transactionIndex:ya.allowNull(a,null),confirmations:ya.allowNull(a,null),from:t,gasPrice:ya.allowNull(r),maxPriorityFeePerGas:ya.allowNull(r),maxFeePerGas:ya.allowNull(r),gasLimit:r,to:ya.allowNull(t,null),value:r,nonce:a,data:i,r:ya.allowNull(this.uint256),s:ya.allowNull(this.uint256),v:ya.allowNull(a),creates:ya.allowNull(t,null),raw:ya.allowNull(i)},e.transactionRequest={from:ya.allowNull(t),nonce:ya.allowNull(a),gasLimit:ya.allowNull(r),gasPrice:ya.allowNull(r),maxPriorityFeePerGas:ya.allowNull(r),maxFeePerGas:ya.allowNull(r),to:ya.allowNull(t),value:ya.allowNull(r),data:ya.allowNull(e=>this.data(e,!0)),type:ya.allowNull(a),accessList:ya.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:ya.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:ya.allowNull(this.address,null),from:ya.allowNull(this.address,null),contractAddress:ya.allowNull(t,null),transactionIndex:a,root:ya.allowNull(s),gasUsed:r,logsBloom:ya.allowNull(i),blockHash:o,transactionHash:o,logs:ya.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:ya.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:ya.allowNull(r),status:ya.allowNull(a),type:u},e.block={hash:ya.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:ya.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:ya.allowNull(t),extraData:i,transactions:ya.allowNull(ya.arrayOf(o)),baseFeePerGas:ya.allowNull(r)},e.blockWithTransactions=Nr(e.block),e.blockWithTransactions.transactions=ya.allowNull(ya.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:ya.allowNull(n,void 0),toBlock:ya.allowNull(n,void 0),blockHash:ya.allowNull(o,void 0),address:ya.allowNull(t,void 0),topics:ya.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:ya.allowNull(a),blockHash:ya.allowNull(o),transactionIndex:a,removed:ya.allowNull(this.boolean.bind(this)),address:t,data:ya.allowFalsish(i,"0x"),topics:ya.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return la(e||[])}number(e){return"0x"===e?0:ar.from(e).toNumber()}type(e){return"0x"===e||null==e?0:ar.from(e).toNumber()}bigNumber(e){return ar.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),zt(e))?e.toLowerCase():ma.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return Xn(e)}callAddress(e){if(!zt(e,32))return null;const t=Xn(Jt(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Zn(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||zt(e))return Xt(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==Qt(r)?ma.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=ar.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!zt(e))throw new Error("invalid uint256");return Zt(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=ya.check(t,e);return n._difficulty=null==r?null:ar.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return ya.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&ar.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=ya.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;zt(r)&&(r=ar.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),zt(r)&&(r=ar.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=jt(e);if(t[0]>127)return function(e){const t=Kn(e);9!==t.length&&6!==t.length&&$s.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:ra(t[0]).toNumber(),gasPrice:ra(t[1]),gasLimit:ra(t[2]),to:ta(t[3]),value:ra(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=ar.from(t[6]).toNumber()}catch(e){return r}if(r.r=Zt(t[7],32),r.s=Zt(t[8],32),ar.from(r.r).isZero()&&ar.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=t.slice(0,6);0!==r.chainId&&(i.push(Wt(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=nn(qn(i));try{r.from=sa(o,{r:Wt(r.r),s:Wt(r.s),recoveryParam:n})}catch(e){}r.hash=nn(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Kn(e.slice(1));8!==t.length&&11!==t.length&&$s.throwArgumentError("invalid component count for transaction type: 1","payload",Wt(e));const r={type:1,chainId:ra(t[0]).toNumber(),nonce:ra(t[1]).toNumber(),gasPrice:ra(t[2]),gasLimit:ra(t[3]),to:ta(t[4]),value:ra(t[5]),data:t[6],accessList:la(t[7])};return 8===t.length||(r.hash=nn(e),fa(r,t.slice(8),ha)),r}(t);case 2:return function(e){const t=Kn(e.slice(1));9!==t.length&&12!==t.length&&$s.throwArgumentError("invalid component count for transaction type: 2","payload",Wt(e));const r=ra(t[2]),n=ra(t[3]),i={type:2,chainId:ra(t[0]).toNumber(),nonce:ra(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:ra(t[4]),to:ta(t[5]),value:ra(t[6]),data:t[7],accessList:la(t[8])};return 9===t.length||(i.hash=nn(e),fa(i,t.slice(9),da)),i}(t)}return $s.throwError(`unsupported transaction type: ${t[0]}`,Dt.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return ya.check(this.formats.receiptLog,e)}receipt(e){const t=ya.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=ar.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&ma.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):ma.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&ma.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return ya.check(this.formats.filter,e)}filterLog(e){return ya.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const i=e[n](t[n]);void 0!==i&&(r[n]=i)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach(function(t){r.push(e(t))}),r}}}var ga=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const ba=new Dt(ds);function va(e){return null==e?"null":(32!==Qt(e)&&ba.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function Aa(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[va(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return va(e)}).join("&")}function wa(e){if("string"==typeof e){if(32===Qt(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+Aa(e);if(Lr.isForkEvent(e))throw ba.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+Aa(e.topics||[])}throw new Error("invalid event - "+e)}function Ta(){return(new Date).getTime()}function Ea(e){return new Promise(t=>{setTimeout(t,e)})}const Sa=["block","network","pending","poll"];class Ia{constructor(e,t,r){Cr(this,"tag",e),Cr(this,"listener",t),Cr(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var n;const i={};return r.length>0&&(i.topics=r),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||Sa.indexOf(this.tag)>=0}}const xa={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function Ca(e){return Zt(ar.from(e).toHexString(),32)}function ka(e){return Yr.encode(qt([e,Jt(Yo(Yo(e)),0,4)]))}const Pa=new RegExp("^(ipfs)://(.*)$","i"),_a=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Pa,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Na(e,t){try{return hn(Ma(e,t))}catch(e){}return null}function Ma(e,t){if("0x"===e)return null;const r=ar.from(Jt(e,t,t+32)).toNumber(),n=ar.from(Jt(e,r,r+32)).toNumber();return Jt(e,r+32,r+32+n)}function Ra(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):ba.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Oa(e){const t=jt(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function Da(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Ba(e){const t=[];let r=0;for(let n=0;n<e.length;n++)t.push(null),r+=32;for(let n=0;n<e.length;n++){const i=jt(e[n]);t[n]=Oa(r),t.push(Oa(i.length)),t.push(Da(i)),r+=32+32*Math.ceil(i.length/32)}return Yt(t)}class Fa{constructor(e,t,r,n){Cr(this,"provider",e),Cr(this,"name",r),Cr(this,"address",e.formatter.address(t)),Cr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>ar.from(e).eq(1)).catch(e=>{if(e.code===Dt.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return ga(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Yt([e,Ln(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Yt(["0x9061b923",Ba([(i=this.name,Wt(qt(Fn(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),r.data])]));try{let e=yield this.provider.call(r);return jt(e).length%32==4&&ba.throwError("resolver threw error",Dt.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Ma(e,0)),e}catch(e){if(e.code===Dt.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return ga(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?Ma(r,0):null})}_getAddress(e,t){const r=xa[String(e)];if(null==r&&ba.throwError(`unsupported coin type: ${e}`,Dt.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=jt(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return ka(qt([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return ka(qt([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,r,n){for(var i=0,o=0,s=[],a=0;a<e.length;++a)for(i=i<<8|e[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(e);if(Array.isArray(t))return t;throw new Error(t)}(n.slice(2));return e.unshift(t),function(e,t,r){if(e.length+7+t.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(e){for(var t=1,r=0;r<e.length;++r){var n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=cs(t)^n>>5}for(t=cs(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=cs(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=e+"1",o=0;o<t.length;++o){var s=t[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=cs(n)^s,i+=ss.charAt(s)}for(o=0;o<6;++o)n=cs(n);for(n^=1,o=0;o<6;++o)i+=ss.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return ga(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Dt.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",Ca(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&ba.throwError("invalid or unsupported coin data",Dt.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return ga(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;r<_a.length;r++){const n=t.match(_a[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Ra(t)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=Zt(ar.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Yt(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=ar.from(yield this.provider.call({to:a,data:Yt(["0x00fdd58e",Zt(o,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Yt([r,u])};let c=Na(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=Ra(c)),e.push({type:"metadata-url",content:c});const d=yield is(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(Pa))return null;e.push({type:"url-ipfs",content:h}),h=Ra(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return ga(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Yr.encode("0x"+t[1])}const r=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const e=parseInt(r[3],16);if(r[4].length===2*e)return"ipns://"+Yr.encode("0x"+r[1])}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Qr("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return ba.throwError("invalid or unsupported content hash data",Dt.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return ga(this,void 0,void 0,function*(){let t=dn(e);t=qt([Ca(64),Ca(t.length),t]),t.length%32!=0&&(t=qt([t,Zt("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Wt(t));return null==r||"0x"===r?null:hn(r)})}}let La=null,Ua=1;class Ga extends Ur{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Cr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=kr(new.target,"getNetwork")(e);t?(Cr(this,"_network",t),this.emit("network",t,null)):ba.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return ga(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||ba.throwError("no network detected",Dt.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Cr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return os(()=>this._ready().then(e=>e,e=>{if(e.code!==Dt.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==La&&(La=new ya),La}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Kr){const r=Kr[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Kr[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Kr[e.name];if(!t)return"number"!=typeof e.chainId&&Gr.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Gr.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}(null==e?"homestead":e)}ccipReadFetch(e,t,r){return ga(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),i=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){const t=r[e],s=t.replace("{sender}",n).replace("{data}",i),a=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield is({url:s,errorPassThrough:!0},a,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return ba.throwError(`response not found during CCIP fetch: ${l}`,Dt.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return ba.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,Dt.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return ga(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(Ta()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Ta(),r=Pr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=Ta();return(e=ar.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=r,r.catch(e=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return ga(this,void 0,void 0,function*(){const e=Ua++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)ba.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",ba.makeError("network block skew detected",Dt.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null).catch(e=>{this.emit("error",e)});t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=r-1);const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(o)}}}),this._lastBlockNumber=r,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return ga(this,void 0,void 0,function*(){return ba.throwError("provider does not support network detection",Dt.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return ga(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield Ea(0),this._network;const r=ba.makeError("underlying network changed",Dt.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=Ta();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=Ta(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return ga(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return ga(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),s.push(()=>{this.removeListener(e,l)}),n){let r=n.startBlock,i=null;const l=s=>ga(this,void 0,void 0,function*(){a||(yield Ea(1e3),this.getTransactionCount(n.from).then(c=>ga(this,void 0,void 0,function*(){if(!a){if(c<=n.nonce)r=s;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===e)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,t);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(ba.makeError("transaction was replaced",Dt.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:e,receipt:r}))}}i++}}a||this.once("block",l)}}),e=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const e=setTimeout(()=>{u()||o(ba.makeError("timeout exceeded",Dt.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return ga(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return ar.from(e)}catch(t){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Pr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return ar.from(n)}catch(e){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Pr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return ar.from(n).toNumber()}catch(e){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Pr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Wt(n)}catch(e){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Pr({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>Xt(e))}),i=yield this.perform("getStorageAt",n);try{return Wt(i)}catch(e){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==Qt(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&ba.throwError("Transaction hash mismatch from Provider.sendTransaction.",Dt.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>ga(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const o=yield this._waitForTransaction(e.hash,t,n,i);return null==o&&0===t?null:(this._emitted["t:"+e.hash]=o.blockNumber,0===o.status&&ba.throwError("transaction failed",Dt.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Wt(e)),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}})}_getTransactionRequest(e){return ga(this,void 0,void 0,function*(){const t=yield e,r={};return["from","to"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?ar.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Wt(e):null))}),this.formatter.transactionRequest(yield Pr(r))})}_getFilter(e){return ga(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(r=>{null!=e[r]&&(t[r]=e[r])}),["fromBlock","toBlock"].forEach(r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))}),this.formatter.filter(yield Pr(t))})}_call(e,t,r){return ga(this,void 0,void 0,function*(){r>=10&&ba.throwError("CCIP read exceeded maximum redirections",Dt.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===i.substring(0,10)&&Qt(i)%32==4)try{const o=Jt(i,4),s=Jt(o,0,32);ar.from(s).eq(n)||ba.throwError("CCIP Read sender did not match",Dt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=ar.from(Jt(o,32,64)).toNumber(),l=ar.from(Jt(o,u,u+32)).toNumber(),c=Jt(o,u+32);for(let t=0;t<l;t++){const r=Na(c,32*t);null==r&&ba.throwError("CCIP Read contained corrupt URL string",Dt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=Ma(o,64);ar.from(Jt(o,100,128)).isZero()||ba.throwError("CCIP Read callback selector included junk",Dt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=Jt(o,96,100),p=Ma(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&ba.throwError("CCIP Read disabled or provided no URLs",Dt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:Yt([h,Ba([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===Dt.errors.SERVER_ERROR)throw e}try{return Wt(i)}catch(r){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Pr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(e){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Pr({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return ar.from(r)}catch(e){return ba.throwError("bad result from backend",Dt.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return ga(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&ba.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&ba.throwError("ENS name not configured",Dt.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return ga(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(zt(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),zt(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){ba.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return os(()=>ga(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;r<e.transactions.length;r++){const n=e.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}}const r=this.formatter.blockWithTransactions(e);return r.transactions=r.transactions.map(e=>this._wrapTransaction(e)),r}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return ga(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return os(()=>ga(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(e){return ga(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return os(()=>ga(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}),{oncePoll:this})})}getLogs(e){return ga(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Pr({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),ya.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return ga(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return ga(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&ba.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return ga(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new Fa(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return ga(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||ba.throwError("network does not support ENS",Dt.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Ln(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return ga(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(zt(e))throw t}"string"!=typeof e&&ba.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return ga(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=Na(yield this.call({to:r,data:"0x691f3431"+Ln(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return ga(this,void 0,void 0,function*(){let t=null;if(zt(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Fa(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Dt.errors.CALL_EXCEPTION)throw e}try{const e=Na(yield this.call({to:n,data:"0x691f3431"+Ln(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Dt.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url})}perform(e,t){return ba.throwError(e+" not implemented",Dt.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,r){const n=new Ia(wa(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],i=wa(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),r=!0,!e.once||(n.push(e),!1))),n.forEach(e=>{this._stopEvent(e)}),r}listenerCount(e){if(!e)return this._events.length;let t=wa(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=wa(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,i=wa(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!n||(n=!0,r.push(e),!1)),r.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=wa(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Ha=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const ja=new Dt(ds),qa=["call","estimateGas"];function Va(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=zt(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=Va(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Va(JSON.parse(e),t)}catch(e){}return null}function za(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Va(t,!0);if(e)return e.data;ja.throwError("missing revert data in call exception; Transaction reverted without a reason string",Dt.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Va(t.body,!1);null==r&&(r=Va(t,!1)),r&&ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Dt.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===Dt.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&ja.throwError("insufficient funds for intrinsic transaction cost",Dt.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&ja.throwError("nonce has already been used",Dt.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&ja.throwError("replacement fee too low",Dt.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&ja.throwError("legacy pre-eip-155 transactions not supported",Dt.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),qa.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Dt.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Ka(e){return new Promise(function(t){setTimeout(t,e)})}function Wa(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Qa(e){return e?e.toLowerCase():e}const Ja={};class Ya extends a.Signer{constructor(e,t,r){if(super(),e!==Ja)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Cr(this,"provider",t),null==r&&(r=0),"string"==typeof r?(Cr(this,"_address",this.provider.formatter.address(r)),Cr(this,"_index",null)):"number"==typeof r?(Cr(this,"_index",r),Cr(this,"_address",null)):ja.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return ja.throwError("cannot alter JSON-RPC Signer connection",Dt.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Xa(Ja,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&ja.throwError("unknown account #"+this._index,Dt.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=Nr(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=Nr(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Ha(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&ja.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),Pr({tx:Pr(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&ja.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&ja.throwError("user rejected transaction",Dt.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),za("sendTransaction",e,n)))})}signTransaction(e){return ja.throwError("signing transactions is unsupported",Dt.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Ha(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield os(()=>Ha(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}})}signMessage(e){return Ha(this,void 0,void 0,function*(){const t="string"==typeof e?dn(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Wt(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ja.throwError("user rejected signing",Dt.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return Ha(this,void 0,void 0,function*(){const t="string"==typeof e?dn(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Wt(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ja.throwError("user rejected signing",Dt.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return Ha(this,void 0,void 0,function*(){const n=yield pi.resolveNames(e,t,r,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(pi.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ja.throwError("user rejected signing",Dt.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return Ha(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class Xa extends Ya{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const Za={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class $a extends Ga{constructor(e,t){let r=t;null==r&&(r=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(r),e||(e=kr(this.constructor,"defaultUrl")()),Cr(this,"connection",Object.freeze("string"==typeof e?{url:e}:Nr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Ha(this,void 0,void 0,function*(){yield Ka(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=kr(this.constructor,"getNetwork");try{return t(ar.from(e).toNumber())}catch(t){return ja.throwError("could not detect network",Dt.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return ja.throwError("could not detect network",Dt.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Ya(Ja,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Dr(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=is(this.connection,JSON.stringify(r),Wa).then(e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e});return n&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Qa(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Qa(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Qa(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Qa(t.address),Zt(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[kr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[kr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Qa(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Ha(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&ar.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=Nr(t)).transaction=Nr(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&ja.throwError(e+" not implemented",Dt.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return za(e,r,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(r){return function n(){e.send("eth_getFilterChanges",[r]).then(function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),n.then(function(){return Ka(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){n()},0),null;e.send("eth_uninstallFilter",[r])}).catch(e=>{})}(),r}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=Nr(Za);if(t)for(const e in t)t[e]&&(r[e]=!0);_r(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=Xt(ar.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Wt(e[t]))}),e.accessList&&(n.accessList=la(e.accessList)),n}}const eu=new Dt("random/5.8.0"),tu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let ru=tu.crypto||tu.msCrypto;function nu(e){(e<=0||e>1024||e%1||e!=e)&&eu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return ru.getRandomValues(t),jt(t)}ru&&ru.getRandomValues||(eu.warn("WARNING: Missing strong random number source"),ru={getRandomValues:function(e){return eu.throwError("no secure random source avaialble",Dt.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const iu=new Dt(ds);let ou=1;function su(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:ou++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:Dr(i),provider:this}),t(i,(t,o)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:i,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const e=new Error(o.error.message);return e.code=o.error.code,e.data=o.error.data,n(e)}e(o.result)})})}}class au extends $a{constructor(e,t){null==e&&iu.throwArgumentError("missing provider","provider",e);let r=null,n=null,i=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),i=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Dr(n),provider:this}),e.request(n).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e})}}(e)):e.sendAsync?n=su(0,e.sendAsync.bind(e)):e.send?n=su(0,e.send.bind(e)):iu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),Cr(this,"jsonRpcFetchFunc",n),Cr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function uu(e,t,r,n,i){let o;e=jt(e),t=jt(t);let s=1;const a=new Uint8Array(n),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=s;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=jt(Xo(i,e,u));o||(o=h.length,c=new Uint8Array(o),s=Math.ceil(n/o),l=n-(s-1)*o),c.set(h);for(let t=1;t<r;t++){h=jt(Xo(i,e,h));for(let e=0;e<o;e++)c[e]^=h[e]}const p=(d-1)*o,f=d===s?l:o;a.set(jt(c).slice(0,f),p)}return Wt(a)}new Dt(ds);const lu=new Dt("wordlists/5.8.0");class cu{constructor(e){lu.checkAbstract(new.target,cu),Cr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let r=0;r<2048;r++){const n=e.getWord(r);if(r!==e.getWordIndex(n))return"0x";t.push(n)}return pn(t.join("\n")+"\n")}static register(e,t){}}const du="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let hu=null;function pu(e){if(null==hu&&(hu=du.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==cu.check(e)))throw hu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const fu=new class extends cu{constructor(){super("en")}getWord(e){return pu(this),hu[e]}getWordIndex(e){return pu(this),hu.indexOf(e)}};cu.register(fu);const mu={en:fu},yu=new Dt("hdnode/5.8.0"),gu=ar.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),bu=dn("Bitcoin seed"),vu=2147483648;function Au(e){return(1<<e)-1<<8-e}function wu(e){return Zt(Wt(e),32)}function Tu(e){return Yr.encode(qt([e,Jt(Yo(Yo(e)),0,4)]))}function Eu(e){if(null==e)return mu.en;if("string"==typeof e){const t=mu[e];return null==t&&yu.throwArgumentError("unknown locale","wordlist",e),t}return e}const Su={},Iu="m/44'/60'/0'/0/0";class xu{constructor(e,t,r,n,i,o,s,a){if(e!==Su)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Xs(t);Cr(this,"privateKey",e.privateKey),Cr(this,"publicKey",e.compressedPublicKey)}else Cr(this,"privateKey",null),Cr(this,"publicKey",Wt(r));var u;Cr(this,"parentFingerprint",n),Cr(this,"fingerprint",Jt((u=Yo(this.publicKey),"0x"+Qo.ripemd160().update(jt(u)).digest("hex")),0,4)),Cr(this,"address",oa(this.publicKey)),Cr(this,"chainCode",i),Cr(this,"index",o),Cr(this,"depth",s),null==a?(Cr(this,"mnemonic",null),Cr(this,"path",null)):"string"==typeof a?(Cr(this,"mnemonic",null),Cr(this,"path",a)):(Cr(this,"mnemonic",a),Cr(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return Tu(qt([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Wt(this.depth),this.parentFingerprint,Zt(Wt(this.index),4),this.chainCode,null!=this.privateKey?qt(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new xu(Su,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&vu){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(jt(this.privateKey),1),t&&(t+="'")}else r.set(jt(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=jt(Xo(Ko.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=wu(ar.from(i).add(this.privateKey).mod(gu)):a=new Xs(Wt(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new xu(Su,s,a,this.fingerprint,wu(o),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e<t.length;e++){const n=t[e];if(n.match(/^[0-9]+'$/)){const e=parseInt(n.substring(0,n.length-1));if(e>=vu)throw new Error("invalid path index - "+n);r=r._derive(vu+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=vu)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=jt(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=jt(Xo(Ko.sha512,bu,r));return new xu(Su,wu(n.slice(0,32)),null,"0x00000000",wu(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=ku(Cu(e,r=Eu(r)),r),xu._fromSeed(function(e,t){t||(t="");const r=dn("mnemonic"+t,sn.NFKD);return uu(dn(e,sn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return xu._fromSeed(e,null)}static fromExtendedKey(e){const t=Yr.decode(e);82===t.length&&Tu(t.slice(0,78))===e||yu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Wt(t.slice(5,9)),i=parseInt(Wt(t.slice(9,13)).substring(2),16),o=Wt(t.slice(13,45)),s=t.slice(45,78);switch(Wt(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new xu(Su,null,Wt(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new xu(Su,Wt(s.slice(1)),null,n,o,i,r,null)}return yu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function Cu(e,t){t=Eu(t),yu.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=jt(new Uint8Array(Math.ceil(11*r.length/8)));let i=0;for(let e=0;e<r.length;e++){let o=t.getWordIndex(r[e].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)o&1<<10-e&&(n[i>>3]|=1<<7-i%8),i++}const o=32*r.length/3,s=Au(r.length/3);if((jt(Yo(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Wt(n.slice(0,o/8))}function ku(e,t){if(t=Eu(t),(e=jt(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const i=e.length/4,o=jt(Yo(e))[0]&Au(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var Pu=Et(function(e,t){!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t<e.length;t++)if(!r(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function o(e){return new Uint8Array(e)}function s(e,t,r,n,i){null==n&&null==i||(e=e.slice?e.slice(n,i):Array.prototype.slice.call(e,n,i)),t.set(e,r)}var a,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r<e.length;){var n=e.charCodeAt(r++);37===n?(t.push(parseInt(e.substr(r,2),16)),r+=2):t.push(n)}return i(t)},fromBytes:function(e){for(var t=[],r=0;r<e.length;){var n=e[r];n<128?(t.push(String.fromCharCode(n)),r++):n>191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},fromBytes:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];t.push(a[(240&n)>>4]+a[15&n])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],A=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],S=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function x(e){for(var t=[],r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var r,n=4*(e+1),i=this.key.length/4,o=x(this.key);for(t=0;t<i;t++)this._Ke[r=t>>2][t%4]=o[t],this._Kd[e-r][t%4]=o[t];for(var s,a=0,u=i;u<n;){if(o[0]^=h[(s=o[i-1])>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^d[a]<<24,a+=1,8!=i)for(t=1;t<i;t++)o[t]^=o[t-1];else{for(t=1;t<i/2;t++)o[t]^=o[t-1];for(o[i/2]^=h[255&(s=o[i/2-1])]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24,t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(t=0;t<i&&u<n;)this._Ke[l=u>>2][p=u%4]=o[t],this._Kd[e-l][p]=o[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(s=this._Kd[l][p])>>24&255]^E[s>>16&255]^S[s>>8&255]^I[255&s]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=x(e),i=0;i<4;i++)n[i]^=this._Ke[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=f[n[i]>>24&255]^m[n[(i+1)%4]>>16&255]^y[n[(i+2)%4]>>8&255]^g[255&n[(i+3)%4]]^this._Ke[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(h[n[i]>>24&255]^(a=this._Ke[t][i])>>24),u[4*i+1]=255&(h[n[(i+1)%4]>>16&255]^a>>16),u[4*i+2]=255&(h[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(h[255&n[(i+3)%4]]^a);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=x(e),i=0;i<4;i++)n[i]^=this._Kd[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=b[n[i]>>24&255]^v[n[(i+3)%4]>>16&255]^A[n[(i+2)%4]>>8&255]^w[255&n[(i+1)%4]]^this._Kd[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(p[n[i]>>24&255]^(a=this._Kd[t][i])>>24),u[4*i+1]=255&(p[n[(i+3)%4]>>16&255]^a>>16),u[4*i+2]=255&(p[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(p[255&n[(i+1)%4]]^a);return u};var k=function(e){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.encrypt(r),t,n);return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.decrypt(r),t,n);return t};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};P.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16);for(var a=0;a<16;a++)r[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(r),s(this._lastCipherblock,t,n)}return t},P.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16),r=this._aes.decrypt(r);for(var a=0;a<16;a++)t[n+a]=r[a]^this._lastCipherblock[a];s(e,this._lastCipherblock,0,n,n+16)}return t};var _=function(e,t,r){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=o(16);r||(r=1),this.segmentSize=r,this._shiftRegister=i(t,!0),this._aes=new C(e)};_.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(r,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r},_.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(e,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var M=function(e){if(!(this instanceof M))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=o(16),this.setValue(e)):this.setBytes(e)};M.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},M.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},M.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var R=function(e,t){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof M||(t=new M(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};R.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[r]^=this._remainingCounter[this._remainingCounterIndex++];return t},R.prototype.decrypt=R.prototype.encrypt,e.exports={AES:C,Counter:M,ModeOfOperation:{ecb:k,cbc:P,cfb:_,ofb:N,ctr:R},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,r=o(e.length+t);s(e,r);for(var n=e.length;n<r.length;n++)r[n]=t;return r},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n<t;n++)if(e[r+n]!==t)throw new Error("PKCS#7 invalid padding byte");var a=o(r);return s(e,a,0,0,r),a}}},_arrayTest:{coerceArray:i,createArray:o,copyArray:s}}}()});const _u="json-wallets/5.8.0";function Nu(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),jt(e)}function Mu(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Ru(e){return"string"==typeof e?dn(e,sn.NFKC):jt(e)}function Ou(e,t){let r=e;const n=t.toLowerCase().split("/");for(let e=0;e<n.length;e++){let t=null;for(const i in r)if(i.toLowerCase()===n[e]){t=r[i];break}if(null===t)return null;r=t}return r}function Du(e){const t=jt(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Wt(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Bu=new Dt(_u);class Fu extends Br{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Lu(e,t){const r=JSON.parse(e);t=Ru(t);const n=Xn(Ou(r,"ethaddr")),i=Nu(Ou(r,"encseed"));i&&i.length%16==0||Bu.throwArgumentError("invalid encseed","json",e);const o=jt(uu(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new Pu.ModeOfOperation.cbc(o,s),l=Pu.padding.pkcs7.strip(jt(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=nn(dn(c));return new Fu({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function Uu(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Gu(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var Hu=Et(function(e,t){!function(t){const r=2147483647;function n(e){const t=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]);let r=1779033703,n=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=r,v=n,A=i,w=o,T=s,E=a,S=u,I=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&S)|0)+(I+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&A^v&A)|0,I=S,S=E,E=T,T=w+y|0,w=A,A=v,v=b,b=y+g|0;r=r+b|0,n=n+v|0,i=i+A|0,o=o+w|0,s=s+T|0,a=a+E|0,u=u+S|0,l=l+I|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);const i=64+t.length+4,o=new Array(i),s=new Array(64);let a,u=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<e.length;a++)o[a]^=e[a];for(a=0;a<t.length;a++)o[64+a]=t[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<e.length;a++)s[a]^=e[a];function l(){for(let e=i-1;e>=i-4;e--){if(o[e]++,o[e]<=255)return;o[e]=0}}for(;r>=32;)l(),u=u.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),u=u.concat(n(s.concat(n(o))).slice(0,r))),u}function o(e,t,r,n,i){let o;for(l(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),a(i,n),l(i,0,e,t+16*o,16);for(o=0;o<r;o++)l(e,t+2*o*16,e,16*o,16);for(o=0;o<r;o++)l(e,t+16*(2*o+1),e,16*(o+r),16)}function s(e,t){return e<<t|e>>>32-t}function a(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=s(t[0]+t[12],7),t[8]^=s(t[4]+t[0],9),t[12]^=s(t[8]+t[4],13),t[0]^=s(t[12]+t[8],18),t[9]^=s(t[5]+t[1],7),t[13]^=s(t[9]+t[5],9),t[1]^=s(t[13]+t[9],13),t[5]^=s(t[1]+t[13],18),t[14]^=s(t[10]+t[6],7),t[2]^=s(t[14]+t[10],9),t[6]^=s(t[2]+t[14],13),t[10]^=s(t[6]+t[2],18),t[3]^=s(t[15]+t[11],7),t[7]^=s(t[3]+t[15],9),t[11]^=s(t[7]+t[3],13),t[15]^=s(t[11]+t[7],18),t[1]^=s(t[0]+t[3],7),t[2]^=s(t[1]+t[0],9),t[3]^=s(t[2]+t[1],13),t[0]^=s(t[3]+t[2],18),t[6]^=s(t[5]+t[4],7),t[7]^=s(t[6]+t[5],9),t[4]^=s(t[7]+t[6],13),t[5]^=s(t[4]+t[7],18),t[11]^=s(t[10]+t[9],7),t[8]^=s(t[11]+t[10],9),t[9]^=s(t[8]+t[11],13),t[10]^=s(t[9]+t[8],18),t[12]^=s(t[15]+t[14],7),t[13]^=s(t[12]+t[15],9),t[14]^=s(t[13]+t[12],13),t[15]^=s(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let i=0;i<n;i++)r[i]^=e[t+i]}function l(e,t,r,n,i){for(;i--;)r[n++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||r%1||r<0||r>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,n,s,a,h,p){if(n=d(n,"N"),s=d(s,"r"),a=d(a,"p"),h=d(h,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/s)throw new Error("N too large");if(s>r/128/a)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*a*s);const m=new Uint32Array(32*a*s);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*s),g=new Uint32Array(32*s*n),b=32*s,v=new Uint32Array(16),A=new Uint32Array(16),w=a*n*2;let T,E,S=0,I=null,x=!1,C=0,k=0;const P=p?parseInt(1e3/s):4294967295,_="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(x)return p(new Error("cancelled"),S/w);let t;switch(C){case 0:E=32*k*s,l(m,E,y,0,b),C=1,T=0;case 1:t=n-T,t>P&&(t=P);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(x=p(null,S/w),x)break;I=e}}if(T<n)break;T=0,C=2;case 2:t=n-T,t>P&&(t=P);for(let e=0;e<t;e++)u(g,(y[16*(2*s-1)]&n-1)*b,y,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(x=p(null,S/w),x)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),k++,k<a){C=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const r=i(e,f,h);return p&&p(null,1,r),r}p&&_(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,r,n,i,o,s){return new Promise(function(a,u){let l=0;s&&s(0),h(e,t,r,n,i,o,function(e,t,r){if(e)u(e);else if(r)s&&1!==l&&s(1),a(new Uint8Array(r));else if(s&&t!==l)return l=t,s(t)})})},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(h(e,t,r,n,i,o))}};e.exports=p}()}),ju=Hu;const qu=new Dt(_u);function Vu(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class zu extends Br{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Ku(e,t){const r=Nu(Ou(e,"crypto/ciphertext"));if(Wt(nn(qt([t.slice(16,32),r]))).substring(2)!==Ou(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===Ou(e,"crypto/cipher")){const n=Nu(Ou(e,"crypto/cipherparams/iv")),i=new Pu.Counter(n);return jt(new Pu.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||qu.throwError("unsupported cipher",Dt.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=oa(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Xn(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Wt(n)};if("0.1"===Ou(e,"x-ethers/version")){const t=Nu(Ou(e,"x-ethers/mnemonicCiphertext")),r=Nu(Ou(e,"x-ethers/mnemonicCounter")),n=new Pu.Counter(r),o=new Pu.ModeOfOperation.ctr(i,n),a=Ou(e,"x-ethers/path")||Iu,u=Ou(e,"x-ethers/locale")||"en",l=jt(o.decrypt(t));try{const e=ku(l,u),t=xu.fromMnemonic(e,null,u).derivePath(a);if(t.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=t.mnemonic}catch(e){if(e.code!==Dt.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new zu(s)}function Wu(e,t,r,n,i){return jt(uu(e,t,r,n,i))}function Qu(e,t,r,n,i){return Promise.resolve(Wu(e,t,r,n,i))}function Ju(e,t,r,n,i){const o=Ru(t),s=Ou(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return qu.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=Nu(Ou(e,"crypto/kdfparams/salt")),a=parseInt(Ou(e,"crypto/kdfparams/n")),u=parseInt(Ou(e,"crypto/kdfparams/r")),l=parseInt(Ou(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(Ou(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=Nu(Ou(e,"crypto/kdfparams/salt"));let i=null;const s=Ou(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(Ou(e,"crypto/kdfparams/c")),u=parseInt(Ou(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return qu.throwArgumentError("unsupported key-derivation function","kdf",s)}var Yu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Xu=new Dt("wallet/5.8.0");class Zu extends a.Signer{constructor(e,t){if(super(),null!=(r=e)&&zt(r.privateKey,32)&&null!=r.address){const t=new Xs(e.privateKey);if(Cr(this,"_signingKey",()=>t),Cr(this,"address",oa(this.publicKey)),this.address!==Xn(e.address)&&Xu.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Cr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||Iu,locale:t.locale||"en"}));const r=this.mnemonic;oa(xu.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&Xu.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Cr(this,"_mnemonic",()=>null)}else{if(Xs.isSigningKey(e))"secp256k1"!==e.curve&&Xu.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Cr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Xs(e);Cr(this,"_signingKey",()=>t)}Cr(this,"_mnemonic",()=>null),Cr(this,"address",oa(this.publicKey))}var r;t&&!Ur.isProvider(t)&&Xu.throwArgumentError("invalid provider","provider",t),Cr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Zu(this,e)}signTransaction(e){return Pr(e).then(t=>{null!=t.from&&(Xn(t.from)!==this.address&&Xu.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(nn(pa(t)));return pa(t,r)})}signMessage(e){return Yu(this,void 0,void 0,function*(){return er(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=dn(e)),nn(qt([dn("Ethereum Signed Message:\n"),dn(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return Yu(this,void 0,void 0,function*(){const n=yield pi.resolveNames(e,t,r,e=>(null==this.provider&&Xu.throwError("cannot resolve ENS names without a provider",Dt.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return er(this._signingKey().signDigest(pi.hash(n.domain,t,n.value)))})}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(Xn(e.address)!==oa(e.privateKey))throw new Error("address/privateKey mismatch");if(Vu(e)){const t=e.mnemonic;if(xu.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||Iu).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const i=jt(e.privateKey),o=Ru(t);let s=null,a=null,u=null;if(Vu(e)){const t=e.mnemonic;s=jt(Cu(t.phrase,t.locale||"en")),a=t.path||Iu,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?jt(r.salt):nu(32);let d=null;if(r.iv){if(d=jt(r.iv),16!==d.length)throw new Error("invalid iv")}else d=nu(16);let h=null;if(r.uuid){if(h=jt(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=nu(16);let p=1<<17,f=8,m=1;return r.scrypt&&(r.scrypt.N&&(p=r.scrypt.N),r.scrypt.r&&(f=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),ju.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=jt(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new Pu.Counter(d),g=jt(new Pu.ModeOfOperation.ctr(r,y).encrypt(i)),b=nn(qt([n,g])),v={address:e.address.substring(2).toLowerCase(),id:Du(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Wt(d).substring(2)},ciphertext:Wt(g).substring(2),kdf:"scrypt",kdfparams:{salt:Wt(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=nu(16),t=new Pu.Counter(e),r=jt(new Pu.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+Mu(n.getUTCMonth()+1,2)+"-"+Mu(n.getUTCDate(),2)+"T"+Mu(n.getUTCHours(),2)+"-"+Mu(n.getUTCMinutes(),2)+"-"+Mu(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Wt(e).substring(2),mnemonicCiphertext:Wt(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=nu(16);e||(e={}),e.extraEntropy&&(t=jt(Jt(nn(qt([t,e.extraEntropy])),0,16)));const r=ku(t,e.locale);return Zu.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(Uu(e)){r&&r(0);const n=Lu(e,t);return r&&r(1),Promise.resolve(n)}return Gu(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return Ku(n,yield Ju(n,t,Qu,ju.scrypt,r))},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(o.next(e))}catch(e){t(e)}}function s(e){try{a(o.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,s)}a((o=o.apply(n,[])).next())});var n,i,o}(e,t,r):Promise.reject(new Error("invalid JSON wallet"))}(e,t,r).then(e=>new Zu(e))}static fromEncryptedJsonSync(e,t){return new Zu(function(e,t){if(Uu(e))return Lu(e,t);if(Gu(e))return function(e,t){const r=JSON.parse(e);return Ku(r,Ju(r,t,Wu,ju.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=Iu),new Zu(xu.fromMnemonic(e,null,r).derivePath(t))}}function $u(e){return"string"==typeof e?new Zu(e):"request"in e||"send"in e?new au(e).getSigner():e}const el=function(e,t,r){try{function n(n){return Promise.resolve(tl(e,{chainId:e.chainId,appCode:e.appCode,account:n},t,r)).then(function(e){return{result:{...e.result,signer:i},orderBookApi:e.orderBookApi}})}const i=$u(e.signer),o=e.owner;return Promise.resolve(o?n(o):Promise.resolve(i.getAddress()).then(n))}catch(s){return Promise.reject(s)}},tl=function(e,t,r,n){try{const{appCode:i,chainId:o,account:a}=t,u=dt(e),l=u?{...e,...ft(o,e)}:e,{sellToken:c,sellTokenDecimals:d,buyToken:h,buyTokenDecimals:p,amount:m,kind:y,partnerFee:g,validFor:b=ze,slippageBps:v=Ke,env:A="prod"}=l;me(`Swap ${m} ${c} for ${h} on chain ${o}`);const w=n||new Ee({chainId:o,env:A}),T=l.receiver||a,E="sell"===y;return me("Building app data..."),Promise.resolve(vt({slippageBps:v,orderClass:"market",appCode:i,partnerFee:g},r?.appData)).then(function(e){const{appDataKeccak256:t,fullAppData:n}=e;me(`App data: appDataKeccak256=${t} fullAppData=${n}`);const i={from:a,sellToken:c,buyToken:h,receiver:T,validFor:b,appData:n,appDataHash:t,priceQuality:exports.PriceQuality.OPTIMAL,signingScheme:exports.SigningScheme.EIP712,...u?rl:{},...E?{kind:exports.OrderQuoteSideKindSell.SELL,sellAmountBeforeFee:m}:{kind:exports.OrderQuoteSideKindBuy.BUY,buyAmountAfterFee:m},...r?.quoteRequest};return me("Getting quote..."),Promise.resolve(w.getQuote(i)).then(function(t){const r=He({orderParams:t.quote,slippagePercentBps:v,partnerFeeBps:g?.bps,sellDecimals:d,buyDecimals:p}),n=Ze({from:a,networkCostsAmount:t.quote.feeAmount},ct(l,t),e.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(Xe.getDomain(e)).then(function(e){return{domain:e,primaryType:f,types:{[f]:s.ORDER_TYPE_FIELDS,EIP712Domain:wt},message:t}})}catch(e){return Promise.reject(e)}}(o,n)).then(function(i){return{result:{tradeParameters:l,amountsAndCosts:r,orderToSign:n,quoteResponse:t,appDataInfo:e,orderTypedData:i},orderBookApi:w}})})})}catch(e){return Promise.reject(e)}},rl={signingScheme:exports.SigningScheme.EIP1271,onchainOrder:!0,verificationGasLimit:0},nl=function(e,t){try{const{orderBookApi:r,result:{signer:n,appDataInfo:i,quoteResponse:o,tradeParameters:s}}=e;return Promise.resolve(gt(r,n,i,ct(s,o),{signingScheme:t?.quoteRequest?.signingScheme,networkCostsAmount:o.quote.feeAmount,...t?.additionalParams}))}catch(e){return Promise.reject(e)}},il=function(e,t,r){try{return Promise.resolve(el(e,t,r)).then(function(e){return nl(e,t)})}catch(e){return Promise.reject(e)}},ol=function(e,t,r){try{const{appCode:n,chainId:i,sellToken:o,buyToken:s,sellAmount:a,buyAmount:u,partnerFee:l,slippageBps:c=0,env:d="prod"}=e;me(`Limit order ${a} ${o} for ${u} ${s} on chain ${i}`);const h=$u(e.signer),p=r||new Ee({chainId:i,env:d});return me("Building app data..."),Promise.resolve(vt({slippageBps:c,orderClass:"limit",appCode:n,partnerFee:l},t?.appData)).then(function(r){return gt(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},sl=function(e,t,r,n){try{const i=lt.connect(r,e),o=ie[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Je))).then(function(e){return{data:s,gasLimit:"0x"+ht(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class al{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&ye(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(el(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:r=>nl({...t,result:{...t.result,tradeParameters:pt({quoteParameters:t.result.tradeParameters,orderParameters:e})}},r)}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(el(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(il(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(ol(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(el(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return yt(r.orderBookApi,r.result.signer,r.result.appDataInfo,ct(pt({quoteParameters:n,orderParameters:e}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=$u(t.signer);return Promise.resolve(sl(r,t.chainId,e.account,e.orderId))}catch(e){return Promise.reject(e)}}mergeParams(e){const{chainId:t,signer:r,appCode:n}=e,i={chainId:t||this.traderParams.chainId,signer:r||this.traderParams.signer,appCode:n||this.traderParams.appCode};return function(e){if(!function(e){return 0===ul(e).length}(e))throw new Error("Missing trader parameters: "+ul(e).join(", "))}(i),{...e,...i}}}function ul(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const ll=new Dt("units/5.8.0"),cl=["wei","kwei","mwei","gwei","szabo","finney","ether"],dl="abi/5.8.0",hl=new Dt(dl),pl={};let fl={calldata:!0,memory:!0,storage:!0},ml={calldata:!0,memory:!0};function yl(e,t){if("bytes"===e||"string"===e){if(fl[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&ml[t])return!0;return(fl[t]||"payable"===t)&&hl.throwArgumentError("invalid modifier","name",t),!1}function gl(e,t){for(let r in t)Cr(e,r,t[r])}const bl=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),vl=new RegExp(/^(.*)\[([0-9]*)\]$/);class Al{constructor(e,t){e!==pl&&hl.throwError("use fromString",Dt.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),gl(this,t);let r=this.type.match(vl);gl(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:Al.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=bl.sighash),bl[e]||hl.throwArgumentError("invalid format type","format",e),e===bl.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==bl.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===bl.full?", ":",")+")"):t+=this.type,e!==bl.sighash&&(!0===this.indexed&&(t+=" indexed"),e===bl.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Al.fromString(e,t):Al.fromObject(e)}static fromObject(e){return Al.isParamType(e)?e:new Al(pl,{name:e.name||null,type:Nl(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Al.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){hl.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let o={type:"",name:"",state:{allowType:!0}},s=o;for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"(":s.state.allowType&&""===s.type?s.type="tuple":s.state.allowParams||n(r),s.state.allowType=!1,s.type=Nl(s.type),s.components=[i(s)],s=s.components[0];break;case")":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),yl(s.type,s.name)&&(s.name=""),s.type=Nl(s.type);let e=s;s=s.parent,s||n(r),delete e.parent,s.state.allowParams=!1,s.state.allowName=!0,s.state.allowArray=!0;break;case",":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),yl(s.type,s.name)&&(s.name=""),s.type=Nl(s.type);let a=i(s.parent);s.parent.components.push(a),delete s.parent,s=a;break;case" ":s.state.allowType&&""!==s.type&&(s.type=Nl(s.type),delete s.state.allowType,s.state.allowName=!0,s.state.allowParams=!0),s.state.allowName&&""!==s.name&&("indexed"===s.name?(t||n(r),s.indexed&&n(r),s.indexed=!0,s.name=""):yl(s.type,s.name)?s.name="":s.state.allowName=!1);break;case"[":s.state.allowArray||n(r),s.type+=o,s.state.allowArray=!1,s.state.allowName=!1,s.state.readArray=!0;break;case"]":s.state.readArray||n(r),s.type+=o,s.state.readArray=!1,s.state.allowArray=!0,s.state.allowName=!0;break;default:s.state.allowType?(s.type+=o,s.state.allowParams=!0,s.state.allowArray=!0):s.state.allowName?(s.name+=o,delete s.state.allowArray):s.state.readArray?s.type+=o:n(r)}}return s.parent&&hl.throwArgumentError("unexpected eof","param",e),delete o.state,"indexed"===s.name?(t||n(r.length-7),s.indexed&&n(r.length-7),s.indexed=!0,s.name=""):yl(s.type,s.name)&&(s.name=""),o.type=Nl(o.type),o}(e,!!t),Al.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function wl(e,t){return function(e){e=e.trim();let t=[],r="",n=0;for(let i=0;i<e.length;i++){let o=e[i];","===o&&0===n?(t.push(r),r=""):(r+=o,"("===o?n++:")"===o&&(n--,-1===n&&hl.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>Al.fromString(e,t))}class Tl{constructor(e,t){e!==pl&&hl.throwError("use a static from method",Dt.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),gl(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return Tl.isFragment(e)?e:"string"==typeof e?Tl.fromString(e):Tl.fromObject(e)}static fromObject(e){if(Tl.isFragment(e))return e;switch(e.type){case"function":return kl.fromObject(e);case"event":return El.fromObject(e);case"constructor":return Cl.fromObject(e);case"error":return _l.fromObject(e);case"fallback":case"receive":return null}return hl.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?El.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?kl.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Cl.fromString(e.trim()):"error"===e.split(" ")[0]?_l.fromString(e.substring(5).trim()):hl.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class El extends Tl{format(e){if(e||(e=bl.sighash),bl[e]||hl.throwArgumentError("invalid format type","format",e),e===bl.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==bl.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===bl.full?", ":",")+") ",e!==bl.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?El.fromString(e):El.fromObject(e)}static fromObject(e){if(El.isEventFragment(e))return e;"event"!==e.type&&hl.throwArgumentError("invalid event object","value",e);const t={name:Rl(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Al.fromObject):[],type:"event"};return new El(pl,t)}static fromString(e){let t=e.match(Ol);t||hl.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:hl.warn("unknown modifier: "+e)}}),El.fromObject({name:t[1].trim(),anonymous:r,inputs:wl(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Sl(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&hl.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||hl.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=ar.from(r[1]),r[0]):e}function Il(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function xl(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&hl.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&hl.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||hl.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&hl.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&hl.throwArgumentError("unable to determine stateMutability","value",e),t}class Cl extends Tl{format(e){if(e||(e=bl.sighash),bl[e]||hl.throwArgumentError("invalid format type","format",e),e===bl.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===bl.sighash&&hl.throwError("cannot format a constructor for sighash",Dt.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===bl.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Cl.fromString(e):Cl.fromObject(e)}static fromObject(e){if(Cl.isConstructorFragment(e))return e;"constructor"!==e.type&&hl.throwArgumentError("invalid constructor object","value",e);let t=xl(e);t.constant&&hl.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Al.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?ar.from(e.gas):null};return new Cl(pl,r)}static fromString(e){let t={type:"constructor"},r=(e=Sl(e,t)).match(Ol);return r&&"constructor"===r[1].trim()||hl.throwArgumentError("invalid constructor string","value",e),t.inputs=wl(r[2].trim(),!1),Il(r[3].trim(),t),Cl.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class kl extends Cl{format(e){if(e||(e=bl.sighash),bl[e]||hl.throwArgumentError("invalid format type","format",e),e===bl.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==bl.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===bl.full?", ":",")+") ",e!==bl.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?kl.fromString(e):kl.fromObject(e)}static fromObject(e){if(kl.isFunctionFragment(e))return e;"function"!==e.type&&hl.throwArgumentError("invalid function object","value",e);let t=xl(e);const r={type:e.type,name:Rl(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Al.fromObject):[],outputs:e.outputs?e.outputs.map(Al.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?ar.from(e.gas):null};return new kl(pl,r)}static fromString(e){let t={type:"function"},r=(e=Sl(e,t)).split(" returns ");r.length>2&&hl.throwArgumentError("invalid function string","value",e);let n=r[0].match(Ol);if(n||hl.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&Rl(t.name),t.inputs=wl(n[2],!1),Il(n[3].trim(),t),r.length>1){let n=r[1].match(Ol);""==n[1].trim()&&""==n[3].trim()||hl.throwArgumentError("unexpected tokens","value",e),t.outputs=wl(n[2],!1)}else t.outputs=[];return kl.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Pl(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||hl.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class _l extends Tl{format(e){if(e||(e=bl.sighash),bl[e]||hl.throwArgumentError("invalid format type","format",e),e===bl.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==bl.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===bl.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?_l.fromString(e):_l.fromObject(e)}static fromObject(e){if(_l.isErrorFragment(e))return e;"error"!==e.type&&hl.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Rl(e.name),inputs:e.inputs?e.inputs.map(Al.fromObject):[]};return Pl(new _l(pl,t))}static fromString(e){let t={type:"error"},r=e.match(Ol);return r||hl.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&Rl(t.name),t.inputs=wl(r[2],!1),Pl(_l.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Nl(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Ml=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Rl(e){return e&&e.match(Ml)||hl.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Ol=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),Dl=new Dt(dl);class Bl{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){Dl.throwArgumentError(e,this.localName,t)}}class Fl{constructor(e){Cr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Yt(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(qt(e._data))}writeBytes(e){let t=jt(e);const r=t.length%this.wordSize;return r&&(t=qt([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=jt(ar.from(e));return t.length>this.wordSize&&Dl.throwError("value out-of-bounds",Dt.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=qt([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Ll{constructor(e,t,r,n){Cr(this,"_data",jt(e)),Cr(this,"wordSize",t||32),Cr(this,"_coerceFunc",r),Cr(this,"allowLoose",n),this._offset=0}get data(){return Wt(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Ll.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:Dl.throwError("data out-of-bounds",Dt.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Ll(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return ar.from(this.readBytes(this.wordSize))}}class Ul extends Bl{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Xn(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Xn(Zt(e.readValue().toHexString(),20))}}class Gl extends Bl{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Hl=new Dt(dl);function jl(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{const n=t.localName;return n||Hl.throwError("cannot encode object for signature with missing names",Dt.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Hl.throwError("cannot encode object for signature with duplicate names",Dt.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else Hl.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Hl.throwArgumentError("types/value length mismatch","tuple",r);let i=new Fl(e.wordSize),o=new Fl(e.wordSize),s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=o.length;e.encode(o,r);let n=i.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(i,r)}),s.forEach(e=>{e(i.length)});let a=e.appendWriter(i);return a+=e.appendWriter(o),a}function ql(e,t){let r=[],n=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readValue(),o=n.subReader(r.toNumber());try{i=t.decode(o)}catch(e){if(e.code===Dt.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Dt.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)});const i=t.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});t.forEach((e,t)=>{let n=e.localName;if(!n||1!==i[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const o=r[t];o instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw o}}):r[n]=o});for(let e=0;e<r.length;e++){const t=r[e];t instanceof Error&&Object.defineProperty(r,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(r)}class Vl extends Bl{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),Hl.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));let n=[];for(let e=0;e<t.length;e++)n.push(this.coder);return jl(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Hl.throwError("insufficient data length",Dt.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new Gl(this.coder));return e.coerce(this.name,ql(e,r))}}class zl extends Bl{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Kl extends Bl{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=jt(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Wl extends Kl{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Wt(super.decode(e)))}}class Ql extends Bl{constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=jt(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Wt(e.readBytes(this.size)))}}class Jl extends Bl{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Yl extends Bl{constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let r=ar.from(t),n=en.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add($r).mul(Xr)))&&this._throwError("value out-of-bounds",t)}else(r.lt(Zr)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Xl extends Kl{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,dn(t))}decode(e){return hn(super.decode(e))}}class Zl extends Bl{constructor(e,t){let r=!1;const n=[];e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[n]))}),Object.freeze(e)}encode(e,t){return jl(e,this.coders,t)}decode(e){return e.coerce(this.name,ql(e,this.coders))}}const $l=new Dt(dl),ec=new RegExp(/^bytes([0-9]*)$/),tc=new RegExp(/^(u?int)([0-9]*)$/),rc=new class{constructor(e){Cr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Ul(e.name);case"bool":return new zl(e.name);case"string":return new Xl(e.name);case"bytes":return new Wl(e.name);case"array":return new Vl(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Zl((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Jl(e.name)}let t=e.type.match(tc);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&$l.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Yl(r/8,"int"===t[1],e.name)}if(t=e.type.match(ec),t){let r=parseInt(t[1]);return(0===r||r>32)&&$l.throwArgumentError("invalid bytes length","param",e),new Ql(r,e.name)}return $l.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Ll(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Fl(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(Al.from(e)));return new Zl(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&$l.throwError("types/values length mismatch",Dt.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(Al.from(e))),n=new Zl(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(Al.from(e)));return new Zl(n,"_").decode(this._getReader(jt(t),r))}},nc=new Dt(dl);class ic extends Br{}class oc extends Br{}class sc extends Br{}class ac extends Br{static isIndexed(e){return!(!e||!e._isIndexed)}}const uc={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function lc(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class cc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Cr(this,"fragments",t.map(e=>Tl.from(e)).filter(e=>null!=e)),Cr(this,"_abiCoder",kr(new.target,"getAbiCoder")()),Cr(this,"functions",{}),Cr(this,"errors",{}),Cr(this,"events",{}),Cr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void nc.warn("duplicate definition - constructor"):void Cr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?nc.warn("duplicate definition - "+r):t[r]=e}),this.deploy||Cr(this,"deploy",Cl.from({payable:!1,type:"constructor"})),Cr(this,"_isInterface",!0)}format(e){e||(e=bl.full),e===bl.sighash&&nc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===bl.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return rc}static getAddress(e){return Xn(e)}static getSighash(e){return Jt(pn(e.format()),0,4)}static getEventTopic(e){return pn(e.format())}getFunction(e){if(zt(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];nc.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===r.length?nc.throwArgumentError("no matching function","name",t):r.length>1&&nc.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[kl.fromString(e).format()];return t||nc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(zt(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];nc.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===r.length?nc.throwArgumentError("no matching event","name",t):r.length>1&&nc.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[El.fromString(e).format()];return t||nc.throwArgumentError("no matching event","signature",e),t}getError(e){if(zt(e)){const t=kr(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];nc.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===r.length?nc.throwArgumentError("no matching error","name",t):r.length>1&&nc.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[kl.fromString(e).format()];return t||nc.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return kr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),kr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=jt(t);return Wt(r.slice(0,4))!==this.getSighash(e)&&nc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Wt(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Wt(qt([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=jt(t);return Wt(r.slice(0,4))!==this.getSighash(e)&&nc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Wt(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Wt(qt([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=jt(t),n=null,i="",o=null,s=null,a=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=Wt(r.slice(0,4)),t=uc[e];if(t)o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.signature,t.reason&&(n=o[0]),"Error"===s?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===s&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.format()}catch(e){}break}}return nc.throwError("call revert exception"+i,Dt.errors.CALL_EXCEPTION,{method:e.format(),data:Wt(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Wt(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&nc.throwError("too many arguments for "+e.format(),Dt.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?pn(t):"bytes"===e.type?nn(Wt(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=ar.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Zt(Wt(t),32));for(t.forEach((t,i)=>{let o=e.inputs[i];o.indexed?null==t?r.push(null):"array"===o.baseType||"tuple"===o.baseType?nc.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?r.push(t.map(e=>n(o,e))):r.push(n(o,t)):null!=t&&nc.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],i=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&nc.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,o)=>{const s=t[o];if(e.indexed)if("string"===e.type)r.push(pn(s));else if("bytes"===e.type)r.push(nn(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[s]))}else n.push(e),i.push(s)}),{data:this._abiCoder.encode(n,i),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);zt(r[0],32)&&r[0].toLowerCase()===t||nc.throwError("fragment/topic mismatch",Dt.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],i=[],o=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(Al.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(n.push(e),o.push(!1)):(i.push(e),o.push(!1))});let s=null!=r?this._abiCoder.decode(n,qt(r)):null,a=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==s)u[t]=new ac({_isIndexed:!0,hash:null});else if(o[t])u[t]=new ac({_isIndexed:!0,hash:s[c++]});else try{u[t]=s[c++]}catch(e){u[t]=e}else try{u[t]=a[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw lc(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw lc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new oc({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:ar.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new ic({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Wt(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new sc({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var dc=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const hc=new Dt("contracts/5.8.0");function pc(e,t){return dc(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&hc.throwArgumentError("invalid address or ENS name","name",r);try{return Xn(r)}catch(e){}e||hc.throwError("a provider or signer is needed to resolve ENS names",Dt.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&hc.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function fc(e,t,r){return dc(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>fc(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield pc(e,t):"tuple"===r.type?yield fc(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>fc(e,t,r.arrayChildren))):Promise.reject(hc.makeError("invalid value for array",Dt.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function mc(e,t,r){return dc(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=Nr(r.pop())),hc.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?Pr({override:pc(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>dc(this,void 0,void 0,function*(){return Xn(e.signer)!==e.override&&hc.throwError("Contract with a Signer cannot override from",Dt.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=pc(e.provider,n.from));const i=yield Pr({args:fc(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:Pr(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=ar.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=ar.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=ar.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=ar.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=ar.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=la(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=jt(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=ar.from(t.gas).add(e)}if(a.value){const e=ar.from(a.value);e.isZero()||t.payable||hc.throwError("non-payable method cannot override value",Dt.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=Nr(a.customData)),a.ccipReadEnabled&&(s.ccipReadEnabled=!!a.ccipReadEnabled),delete n.nonce,delete n.gasLimit,delete n.gasPrice,delete n.from,delete n.value,delete n.type,delete n.accessList,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.customData,delete n.ccipReadEnabled;const u=Object.keys(n).filter(e=>null!=n[e]);return u.length&&hc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,Dt.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function yc(e,t,r){const n=e.signer||e.provider;return function(...i){return dc(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Nr(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const s=yield mc(e,t,i),a=yield n.call(s,o);try{let n=e.interface.decodeFunctionResult(t,a);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===Dt.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function gc(e,t,r){return t.constant?yc(e,t,r):function(e,t){return function(...r){return dc(this,void 0,void 0,function*(){e.signer||hc.throwError("sending a transaction requires a signer",Dt.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield mc(e,t,r),i=yield e.signer.sendTransaction(n);return function(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then(t=>(t.events=t.logs.map(r=>{let n=Dr(r),i=null;try{i=e.interface.parseLog(r)}catch(e){}return i&&(n.args=i.args,n.decode=(t,r)=>e.interface.decodeEventLog(i.eventFragment,t,r),n.event=i.name,n.eventSignature=i.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n}),t))}(e,i),i})}}(e,t)}function bc(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class vc{constructor(e,t){Cr(this,"tag",e),Cr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(r=>!(!t&&r.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const r=e.slice();return setTimeout(()=>{t.listener.apply(this,r)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class Ac extends vc{constructor(){super("error",null)}}class wc extends vc{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&hc.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(bc(i),i),Cr(this,"address",e),Cr(this,"interface",t),Cr(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let i in n){const o=e.slice();o.push(i);try{r(o,n[i])}catch(e){t.push({path:o,error:e})}}};return r([],e),t}(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class Tc extends vc{constructor(e,t){super("*",{address:e}),Cr(this,"address",e),Cr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class Ec{constructor(e,t,r){Cr(this,"interface",kr(new.target,"getInterface")(t)),null==r?(Cr(this,"provider",null),Cr(this,"signer",null)):a.Signer.isSigner(r)?(Cr(this,"provider",r.provider||null),Cr(this,"signer",r)):Ur.isProvider(r)?(Cr(this,"provider",r),Cr(this,"signer",null)):hc.throwArgumentError("invalid signer or provider","signerOrProvider",r),Cr(this,"callStatic",{}),Cr(this,"estimateGas",{}),Cr(this,"functions",{}),Cr(this,"populateTransaction",{}),Cr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];Cr(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)})),e[r.name]||(e[r.name]=[]),e[r.name].push(t)}),Object.keys(e).forEach(t=>{const r=e[t];1===r.length?Cr(this.filters,t,this.filters[r[0]]):hc.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(Cr(this,"_runningEvents",{}),Cr(this,"_wrappedEmits",{}),null==e&&hc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Cr(this,"address",e),this.provider)Cr(this,"resolvedAddress",pc(this.provider,e));else try{Cr(this,"resolvedAddress",Promise.resolve(Xn(e)))}catch(e){hc.throwError("provider is required to use ENS name as contract address",Dt.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const n={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])hc.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&Cr(this,e,gc(this,t,!0)),null==this.functions[e]&&Cr(this.functions,e,gc(this,t,!1)),null==this.callStatic[e]&&Cr(this.callStatic,e,yc(this,t,!0)),null==this.populateTransaction[e]&&Cr(this.populateTransaction,e,function(e,t){return function(...r){return mc(e,t,r)}}(this,t)),null==this.estimateGas[e]&&Cr(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return dc(this,void 0,void 0,function*(){r||hc.throwError("estimate require a provider or signer",Dt.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield mc(e,t,n);return yield r.estimateGas(i)})}}(this,t))}}),Object.keys(n).forEach(e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&Cr(this,e,this[r])}catch(e){}null==this.functions[e]&&Cr(this.functions,e,this.functions[r]),null==this.callStatic[e]&&Cr(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&Cr(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&Cr(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return Zn(e)}static getInterface(e){return cc.isInterface(e)?e:new cc(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&hc.throwError("contract not deployed",Dt.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||hc.throwError("sending a transactions require a signer",Dt.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Nr(e||{});return["from","to"].forEach(function(e){null!=t[e]&&hc.throwError("cannot override "+e,Dt.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new a.VoidSigner(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Cr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return ac.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Ac);if("event"===e)return this._normalizeRunningEvent(new vc("event",null));if("*"===e)return this._normalizeRunningEvent(new Tc(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new wc(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new wc(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new vc(bc(t),t))}return this._normalizeRunningEvent(new Tc(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=Dr(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||hc.throwError("events require a provider or a signer with a provider",Dt.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),i=Nr(n.filter);return"string"==typeof t&&zt(t,32)?(null!=r&&hc.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=r?r:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(n,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class Sc extends Ec{}const Ic=["function decimals() external view returns (uint8)"],xc=`${P}/src/bridging/providers`,Cc={to:"0x0000000000000000000000000000000000000001",data:"0x0",value:BigInt(0)},kc=[{chainId:exports.SupportedChainId.MAINNET,address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"USD Coin",symbol:"USDC",decimals:6},{chainId:exports.SupportedChainId.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",logoUrl:"https://swap.cow.fi/assets/network-gnosis-chain-logo-Do_DEWQv.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18},{chainId:exports.SupportedChainId.SEPOLIA,address:"0x0625aFB445C3B6B7B929342a04A22599fd5dBB59",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"CoW Protocol Token",symbol:"COW",decimals:18},{chainId:exports.AdditionalTargetChainId.OPTIMISM,address:"0x4200000000000000000000000000000000000006",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18}],Pc={[exports.SupportedChainId.MAINNET]:["0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aB"],[exports.AdditionalTargetChainId.OPTIMISM]:["0x68f180fcCe6836688e9084f035309E29Bf0A2095"],[exports.SupportedChainId.SEPOLIA]:["0xB4F1737Af37711e9A5890D9510c9bB60e170CB0D"]},_c=[{chainId:exports.SupportedChainId.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:exports.AdditionalTargetChainId.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:exports.SupportedChainId.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:exports.SupportedChainId.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:exports.AdditionalTargetChainId.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});class Nc{constructor(e={}){this.options=void 0,this.options=e}getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:r,destinationToken:n}){try{const i=this,o={};return e&&(o.originChainId=e),t&&(o.originToken=t),r&&(o.destinationChainId=r),n&&(o.destinationToken=n),Promise.resolve(i.fetchApi("/available-routes",o,Oc))}catch(e){return Promise.reject(e)}}getSuggestedFees(e){try{const t=this,r={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(r.recipient=e.recipient),Promise.resolve(t.fetchApi("/suggested-fees",r,Mc))}catch(e){return Promise.reject(e)}}fetchApi(e,t,r){try{const n=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;return me(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET",headers:{"Content-Type":"application/json"}})).then(function(t){let n;function i(i){return n?i:Promise.resolve(t.json()).then(function(t){if(r){if(r(t))return t;throw new Error(`Invalid response for Across API call ${e}. The response doesn't pass the validation. Did the API change? Result: ${JSON.stringify(t)}`)}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.text()).then(function(e){throw new Error(`HTTP error! Status: ${t.status}, Body: ${e}`)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function Mc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&Rc(e.totalRelayFee)&&"relayerCapitalFee"in e&&Rc(e.relayerCapitalFee)&&"relayerGasFee"in e&&Rc(e.relayerGasFee)&&"lpFee"in e&&Rc(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function Rc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Oc(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Dc=10n**18n;function Bc(e){return _c[e]}function Fc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=je(n,i),a=s.big,u=je(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=Uc(u,l),d=a-Uc(a,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:a,buyAmount:u},afterFee:{sellAmount:a,buyAmount:c},afterSlippage:{sellAmount:a,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,Lc(f),Number(10000n*f/Dc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Lc(e){if(e>Dc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Uc(e,t){return Lc(t),e*(Dc-t)/Dc}let Gc;function Hc(e,t,r){if(!e.s){if(r instanceof jc){if(!r.s)return void(r.o=Hc.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(Hc.bind(null,e,t),Hc.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const jc=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,r){const n=new e,i=this.s;if(i){const e=1&i?t:r;if(e){try{Hc(n,1,e(this.v))}catch(e){Hc(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?Hc(n,1,t?t(i):i):r?Hc(n,1,r(i)):Hc(n,2,i)}catch(e){Hc(n,2,e)}},n},e}(),qc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Vc{constructor(e,t){this.chainId=void 0,this.customOptions=void 0,this.chainId=e,this.customOptions=t}proxyOf(e){const t=o.defaultAbiCoder.encode(["address"],[e]),r=o.solidityKeccak256(["bytes","bytes"],[this.proxyCreationCode(),o.defaultAbiCoder.encode(["address","address"],[this.getImplementationAddress(),e])]);return o.getCreate2Address(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(Gc||(Gc=tt.createInterface()),Gc).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,i){try{const a=this;return Promise.resolve(n.getAddress()).then(function(u){const l=a.proxyOf(u),{domain:c,types:d,message:h}=a.infoToSign(e,t,r,l);return Promise.resolve(function(e,t,r,n,i){try{let a,u;function l(e){return a?e:o.joinSignature(o.splitSignature(c))}let c=null;const d=function(e,t){var r,n=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var s=o();if(s&&s.then)break e;if(s===e){n=i;break}}else n=i}if(-1!==n){do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then){r=!0;break e}var l=t[n][2];n++}while(l&&!l());return u}}const c=new jc,d=Hc.bind(null,c,2);return(r?u.then(h):s.then(function r(s){for(;;){if(s===e){n=i;break}if(++i===t.length){if(-1!==n)break;return void Hc(c,1,u)}if(o=t[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,d)}else n=i}do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then)return void u.then(h).then(void 0,d);var l=t[n][2];n++}while(l&&!l());Hc(c,1,u)})).then(void 0,d),c;function h(e){for(;;){var r=t[n][2];if(!r||r())break;n++;for(var i=t[n][1];!i;)n++,i=t[n][1];if((e=i())&&e.then)return void e.then(h).then(void 0,d)}Hc(c,1,e)}}(e,[[function(){return s.SigningScheme.EIP712},function(){if(!s.isTypedDataSigner(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,i)).then(function(e){c=e,u=1})}],[function(){return s.SigningScheme.ETHSIGN},function(){return Promise.resolve(t.signMessage(o.arrayify(s.hashTypedData(r,n,i)))).then(function(e){c=e,u=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(d&&d.then?d.then(l):l(d))}catch(h){return Promise.reject(h)}}(i,n,c,d,h))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,r,n){const i={calls:e,nonce:t,deadline:r};return{domain:this.getDomain(n),types:qc,message:i}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033"}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:re}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:ne}}const zc=en.toBigInt();class Kc{constructor(e={}){this.options=void 0,this.hooksCache=new Map,this.options=e}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=Kc.getNonce(),deadline:i=zc,defaultGasLimit:o,signingScheme:a=s.SigningScheme.EIP712}){try{const s=this,u=s.getCowShedHooks(r),l=t||s.options?.signer;if(!l)throw new Error("Signer is required");const c=$u(l);return Promise.resolve(c.getAddress()).then(function(t){const r=u.proxyOf(t);return Promise.resolve(u.signCalls(e,n,i,c,a)).then(function(s){const a=u.encodeExecuteHooksForFactory(e,n,i,t,s),l={to:u.getFactoryAddress(),data:a,value:BigInt(0)};return Promise.resolve(c.estimateGas(l).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(l,ve,2)}. Review the factory call`;if(o)return me(`${t}, using the default gas limit.`),o;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(function(e){return{cowShedAccount:r,signedMulticall:l,gasLimit:BigInt(e.toString())}})})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new Vc(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return o.formatBytes32String(Date.now().toString())}}const Wc={[exports.SupportedChainId.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[exports.SupportedChainId.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[exports.SupportedChainId.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[exports.SupportedChainId.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[exports.SupportedChainId.GNOSIS_CHAIN]:void 0,[exports.AdditionalTargetChainId.POLYGON]:void 0,[exports.AdditionalTargetChainId.OPTIMISM]:void 0},Qc={[exports.SupportedChainId.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[exports.SupportedChainId.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[exports.SupportedChainId.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[exports.SupportedChainId.GNOSIS_CHAIN]:void 0,[exports.SupportedChainId.SEPOLIA]:void 0,[exports.AdditionalTargetChainId.POLYGON]:void 0,[exports.AdditionalTargetChainId.OPTIMISM]:void 0};var Jc;exports.WeirollCommandFlags=void 0,(Jc=exports.WeirollCommandFlags||(exports.WeirollCommandFlags={}))[Jc.DELEGATECALL=0]="DELEGATECALL",Jc[Jc.CALL=1]="CALL",Jc[Jc.STATICCALL=2]="STATICCALL",Jc[Jc.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",Jc[Jc.CALLTYPE_MASK=3]="CALLTYPE_MASK",Jc[Jc.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",Jc[Jc.TUPLE_RETURN=128]="TUPLE_RETURN";const Yc="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",Xc=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function Zc(e){const t=e.plan(),{commands:r,state:n}=t;return new cc(Xc).encodeFunctionData("execute",[r,n])}function $c(e){const t=new u.Planner;return e(t),{to:Yc,value:BigInt(0),data:Zc(t)}}function ed(e,t){return u.Contract.createContract(e,t)}const td=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],rd=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],nd=["function balanceOf(address account) external view returns (uint256)"],id=["function approve(address spender, uint256 amount) external returns (bool)"],od=[M,z,F,U,q],sd=l.gql`
|
|
1
|
+
require("cross-fetch/polyfill");var e=require("limiter"),t=require("exponential-backoff"),r=require("ethers"),n=require("@cowprotocol/app-data"),i=require("ethers/lib/utils"),o=require("deepmerge"),s=require("@cowprotocol/contracts"),a=require("@ethersproject/abstract-signer"),u=require("@weiroll/weiroll.js"),l=require("graphql-request"),c=require("@openzeppelin/merkle-tree");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function h(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var p,f=/*#__PURE__*/d(o);function m(e){return"bridge"in e}function y(e){return!m(e)}exports.BridgeStatus=void 0,(p=exports.BridgeStatus||(exports.BridgeStatus={})).NOT_INITIATED="not_initiated",p.IN_PROGRESS="in_progress",p.EXECUTED="executed",p.FAILED="failed",p.EXPIRED="expired";const g="Order";var b,v;exports.SupportedChainId=void 0,(b=exports.SupportedChainId||(exports.SupportedChainId={}))[b.MAINNET=1]="MAINNET",b[b.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",b[b.ARBITRUM_ONE=42161]="ARBITRUM_ONE",b[b.BASE=8453]="BASE",b[b.SEPOLIA=11155111]="SEPOLIA",exports.AdditionalTargetChainId=void 0,(v=exports.AdditionalTargetChainId||(exports.AdditionalTargetChainId={}))[v.POLYGON=137]="POLYGON",v[v.OPTIMISM=10]="OPTIMISM";class A extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const w=function(e,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${e}${r}${n?"?"+n:""}`,c={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(t.backOff(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(x(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new T(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class T extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const E=[408,425,429,500,502,503,504],S={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof T)||E.includes(e.response.status)},I={tokensPerInterval:5,interval:"second"},x=function(e){try{let t;const r=function(){if(204!==e.status)return function(r,n){try{var i=function(){const r=e.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(e){console.error(e)})}();return Promise.resolve(r&&r.then?r.then(function(e){return t?e:void 0}):t?r:void 0)}catch(e){return Promise.reject(e)}},C="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",k="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",P={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${k}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},_={[exports.SupportedChainId.MAINNET]:{...P,chainId:exports.SupportedChainId.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},[exports.SupportedChainId.GNOSIS_CHAIN]:{chainId:exports.SupportedChainId.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${k}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[exports.SupportedChainId.ARBITRUM_ONE]:{...P,chainId:exports.SupportedChainId.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},[exports.SupportedChainId.BASE]:{...P,chainId:exports.SupportedChainId.BASE,address:"0x4200000000000000000000000000000000000006"},[exports.SupportedChainId.SEPOLIA]:{...P,chainId:exports.SupportedChainId.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"}},N={address:C,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${k}/1/${C}/logo.png`},M="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",R=`${M}/src/chains`,O=`${R}/images/mainnet-logo.svg`,D={id:exports.SupportedChainId.MAINNET,label:"Ethereum",nativeCurrency:{...N,chainId:exports.SupportedChainId.MAINNET},addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:O,dark:O},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},B=`${R}/images/gnosis-logo.svg`,F={id:exports.SupportedChainId.GNOSIS_CHAIN,label:"Gnosis Chain",nativeCurrency:{...N,chainId:exports.SupportedChainId.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${k}/100/${C}/logo.png`},addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:B,dark:B},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},L=`${R}/images/arbitrum-one-logo-light.svg`,U=`${R}/images/arbitrum-one-logo-dark.svg`,G={id:exports.SupportedChainId.ARBITRUM_ONE,label:"Arbitrum One",nativeCurrency:{...N,chainId:exports.SupportedChainId.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:L,dark:U},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},H=`${R}/images/base-logo.svg`,j={id:exports.SupportedChainId.BASE,label:"Base",nativeCurrency:{...N,chainId:exports.SupportedChainId.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:H,dark:H},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"BaseScan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},q=`${R}/images/sepolia-logo.svg`,V={id:exports.SupportedChainId.SEPOLIA,label:"Sepolia",nativeCurrency:{...N,chainId:exports.SupportedChainId.SEPOLIA},addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:q,dark:q},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},z=`${R}/images/optimism-logo.svg`,K={id:10,label:"Optimism",logo:{light:z,dark:z},nativeCurrency:{...N,chainId:10},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},W=`${R}/polygon-logo.svg`,Q={id:137,label:"Polygon",logo:{light:W,dark:W},nativeCurrency:{...N,chainId:137,name:"POL",symbol:"POL",logoUrl:W},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#ff0420",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"PolygonScan",url:"https://polygonscan.com"}},J={[exports.SupportedChainId.MAINNET]:D,[exports.SupportedChainId.GNOSIS_CHAIN]:F,[exports.SupportedChainId.ARBITRUM_ONE]:G,[exports.SupportedChainId.BASE]:j,[exports.SupportedChainId.SEPOLIA]:V},Y=Object.values(J),X=Y.map(e=>e.id),Z={[exports.AdditionalTargetChainId.OPTIMISM]:K,[exports.AdditionalTargetChainId.POLYGON]:Q},$=Y.concat(Object.values(Z)),ee=$.map(e=>e.id);function te(e){return X.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function re(e){return te(e)}const ne="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ie="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",oe="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",se="0x00E989b87700514118Fa55326CD1cCE82faebEF6",ae="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",ue=re("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),le=re("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),ce=re(ie),de=re(oe),he="0xba3cb449bd2b4adddbc894d8697f5170800eadec",pe="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",fe=re(he),me=re(pe),ye=4294967295;function ge(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=ne;return{...e,validTo:r,owner:n,sellToken:i}}(function(e){const{executedFeeAmount:t,executedFee:r}=e,n=BigInt(t||"0"),i=BigInt(r||"0"),o=String(n+i);return{...e,totalFee:o}}(e))}let be=!1;function ve(e){be&&console.log(`[COW TRADING SDK] ${e}`)}function Ae(e){be=e}const we=["prod","staging"],Te={env:"prod",chainId:exports.SupportedChainId.MAINNET},Ee=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,Se={[exports.SupportedChainId.MAINNET]:"https://api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://api.cow.fi/sepolia"},Ie={[exports.SupportedChainId.MAINNET]:"https://barn.api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://barn.api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function xe(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class Ce{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...Te,...t},this.rateLimiter=new e.RateLimiter(t.limiterOpts||I)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new A("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new A("Must specify either owner or orderId"));const r=new URLSearchParams(xe(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},t)}getOrders({owner:e,offset:t=0,limit:r=1e3},n={}){const i=new URLSearchParams(xe({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(ge))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(ge))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>ge(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:r}=this.getContextWithOverride(t),n=we.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof T&&404===r.response.status&&s?(i++,this.getOrder(e,{...t,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(e,{...t,env:r}).catch(o)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,r={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},r)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:r,env:n}=this.getContextWithOverride(t);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?Se:Ie}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||S,u=r.limiterOpts?new e.RateLimiter(r.limiterOpts):this.rateLimiter;return ve(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,Ee)}`),w(s,t,u,a)}}var ke,Pe,_e,Ne,Me,Re,Oe,De,Be,Fe,Le,Ue,Ge,He,je,qe;exports.BuyTokenDestination=void 0,(ke=exports.BuyTokenDestination||(exports.BuyTokenDestination={})).ERC20="erc20",ke.INTERNAL="internal",exports.CompetitionOrderStatus=void 0,(_e=(Pe=exports.CompetitionOrderStatus||(exports.CompetitionOrderStatus={})).type||(Pe.type={})).OPEN="open",_e.SCHEDULED="scheduled",_e.ACTIVE="active",_e.SOLVED="solved",_e.EXECUTING="executing",_e.TRADED="traded",_e.CANCELLED="cancelled",exports.EcdsaSigningScheme=void 0,(Ne=exports.EcdsaSigningScheme||(exports.EcdsaSigningScheme={})).EIP712="eip712",Ne.ETHSIGN="ethsign",exports.OnchainOrderData=void 0,(Re=(Me=exports.OnchainOrderData||(exports.OnchainOrderData={})).placementError||(Me.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",Re.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",Re.PRE_VALIDATION_ERROR="PreValidationError",exports.OrderCancellationError=void 0,(De=(Oe=exports.OrderCancellationError||(exports.OrderCancellationError={})).errorType||(Oe.errorType={})).INVALID_SIGNATURE="InvalidSignature",De.WRONG_OWNER="WrongOwner",De.ORDER_NOT_FOUND="OrderNotFound",De.ALREADY_CANCELLED="AlreadyCancelled",De.ORDER_FULLY_EXECUTED="OrderFullyExecuted",De.ORDER_EXPIRED="OrderExpired",De.ON_CHAIN_ORDER="OnChainOrder",exports.OrderClass=void 0,(Be=exports.OrderClass||(exports.OrderClass={})).MARKET="market",Be.LIMIT="limit",Be.LIQUIDITY="liquidity",exports.OrderKind=void 0,(Fe=exports.OrderKind||(exports.OrderKind={})).BUY="buy",Fe.SELL="sell",exports.OrderPostError=void 0,function(e){e.DUPLICATED_ORDER="DuplicatedOrder",e.QUOTE_NOT_FOUND="QuoteNotFound",e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.INVALID_QUOTE="InvalidQuote",e.MISSING_FROM="MissingFrom",e.WRONG_OWNER="WrongOwner",e.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",e.INSUFFICIENT_BALANCE="InsufficientBalance",e.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",e.INVALID_SIGNATURE="InvalidSignature",e.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",e.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",e.ZERO_AMOUNT="ZeroAmount",e.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",e.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",e.TOO_MUCH_GAS="TooMuchGas",e.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",e.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",e.INSUFFICIENT_VALID_TO="InsufficientValidTo",e.EXCESSIVE_VALID_TO="ExcessiveValidTo",e.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",e.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.INVALID_APP_DATA="InvalidAppData",e.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",e.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}((Le=exports.OrderPostError||(exports.OrderPostError={})).errorType||(Le.errorType={})),exports.OrderQuoteSideKindBuy=void 0,(exports.OrderQuoteSideKindBuy||(exports.OrderQuoteSideKindBuy={})).BUY="buy",exports.OrderQuoteSideKindSell=void 0,(exports.OrderQuoteSideKindSell||(exports.OrderQuoteSideKindSell={})).SELL="sell",exports.OrderStatus=void 0,(Ue=exports.OrderStatus||(exports.OrderStatus={})).PRESIGNATURE_PENDING="presignaturePending",Ue.OPEN="open",Ue.FULFILLED="fulfilled",Ue.CANCELLED="cancelled",Ue.EXPIRED="expired",exports.PriceEstimationError=void 0,function(e){e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.ZERO_AMOUNT="ZeroAmount",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}((Ge=exports.PriceEstimationError||(exports.PriceEstimationError={})).errorType||(Ge.errorType={})),exports.PriceQuality=void 0,(He=exports.PriceQuality||(exports.PriceQuality={})).FAST="fast",He.OPTIMAL="optimal",He.VERIFIED="verified",exports.SellTokenSource=void 0,(je=exports.SellTokenSource||(exports.SellTokenSource={})).ERC20="erc20",je.INTERNAL="internal",je.EXTERNAL="external",exports.SigningScheme=void 0,(qe=exports.SigningScheme||(exports.SigningScheme={})).EIP712="eip712",qe.ETHSIGN="ethsign",qe.PRESIGN="presign",qe.EIP1271="eip1271";const Ve=BigInt(1e4);function ze(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,a=r.kind===exports.OrderKind.SELL,u=Ke(r.feeAmount,n),l=Ke(r.sellAmount,n),c=Ke(r.buyAmount,i),d=c.num/l.num,h=Ke(l.big+u.big,n),p=Ke(d*h.num,i),f=s>0?(a?p.big:l.big)*BigInt(s)/Ve:BigInt(0),m=a?{sellAmount:h.big,buyAmount:c.big-f}:{sellAmount:h.big+f,buyAmount:c.big},y=e=>e*BigInt(o)/Ve,g=a?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-y(m.buyAmount)}:{sellAmount:m.sellAmount+y(m.sellAmount),buyAmount:m.buyAmount};return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:Ke(d*u.num,i).big},partnerFee:{amount:f,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:p.big},afterNetworkCosts:{sellAmount:h.big,buyAmount:c.big},afterPartnerFees:m,afterSlippage:g}}function Ke(e,t){if("number"==typeof e){const r=e*10**t,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:e}}const r=BigInt(e);return{big:r,num:Number(r)/10**t}}function We(e){return e in J}function Qe(e){return e in Z}const Je=1800,Ye=50,Xe={[exports.SupportedChainId.MAINNET]:200,[exports.SupportedChainId.ARBITRUM_ONE]:50,[exports.SupportedChainId.BASE]:50,[exports.SupportedChainId.GNOSIS_CHAIN]:50,[exports.SupportedChainId.SEPOLIA]:50},Ze={[exports.EcdsaSigningScheme.EIP712]:exports.SigningScheme.EIP712,[exports.EcdsaSigningScheme.ETHSIGN]:exports.SigningScheme.ETHSIGN},$e=BigInt(15e4),et=()=>Promise.resolve().then(function(){return require("./utils-3ca5d46a.js")});class tt{static signOrder(e,t,r){try{return Promise.resolve(et()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(et()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(et()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(et()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(et()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(et()).then(function({getDomain:t}){return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return h(require("ethers/lib/utils"))})).then(function({_TypedDataEncoder:r}){return r.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function rt({from:e,networkCostsAmount:t="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:c,partiallyFillable:d=!1,slippageBps:h=Ye,partnerFee:p,validFor:f}=r,m=r.receiver||e,y=r.validTo||Math.floor(Date.now()/1e3)+(f||Je),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:c,feeAmount:t,appData:n,partiallyFillable:d},{afterSlippage:b}=ze({orderParams:g,slippagePercentBps:h,partnerFeeBps:p?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:b.sellAmount.toString(),buyAmount:b.buyAmount.toString(),validTo:y,kind:c,partiallyFillable:d,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:exports.SellTokenSource.ERC20,buyTokenBalance:exports.BuyTokenDestination.ERC20}}const nt=function(e,t,r,n){try{return Promise.resolve(tt.generateOrderId(e,{...t,sellTokenBalance:t.sellTokenBalance,buyTokenBalance:t.buyTokenBalance,validTo:ye,sellToken:_[e].address},{owner:"staging"===n?pe:he})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:t.sellAmount,fee:t.feeAmount});const n=nt(e,function(e){const t=BigInt(e.buyAmount);return{...e,buyAmount:(t-BigInt(1)).toString()}}(t),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(e){return Promise.reject(e)}},it=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class ot{static createInterface(){return new r.utils.Interface(it)}static connect(e,t){return new r.Contract(e,it,t)}}ot.abi=it;const st=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class at{static createInterface(){return new r.utils.Interface(st)}static connect(e,t){return new r.Contract(e,st,t)}}at.abi=st;const ut=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class lt{static createInterface(){return new r.utils.Interface(ut)}static connect(e,t){return new r.Contract(e,ut,t)}}lt.abi=ut;const ct=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class dt{static createInterface(){return new r.utils.Interface(ct)}static connect(e,t){return new r.Contract(e,ct,t)}}dt.abi=ct;const ht=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class pt{static createInterface(){return new r.utils.Interface(ht)}static connect(e,t){return new r.Contract(e,ht,t)}}function ft(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function mt(e){return e.sellToken.toLowerCase()===ne.toLowerCase()}function yt(e){return e+e*BigInt(20)/BigInt(100)}function gt({quoteParameters:e,orderParameters:t}){return{...e,sellToken:t.sellToken}}function bt(e,t){return{...t,sellToken:_[e].address,slippageBps:"number"==typeof t.slippageBps?t.slippageBps:Xe[e]}}pt.abi=ht;const vt=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){const a={...r,...bt(n,r)},{quoteId:u}=a,l=function(e,t){return lt.connect("staging"===t?pe:he,e)}(e,a.env),c=rt({from:i,networkCostsAmount:o},a,t);return Promise.resolve(nt(n,c,s,a.env)).then(function(e){const r={...c,quoteId:u,appData:t,validTo:c.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:c.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),$e))).then(function(t){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,transaction:{data:n,gasLimit:"0x"+yt(t).toString(16),to:l.address,value:"0x"+BigInt(c.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},At=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(vt(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n}){return ve("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return ve("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return ve(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,signature:"",signingScheme:exports.SigningScheme.EIP1271}})})})}catch(e){return Promise.reject(e)}},wt=function(e,t,r,n,i={}){try{function o(i){const o=rt({from:i,networkCostsAmount:s},n,r.appDataKeccak256);return ve("Signing order..."),Promise.resolve(function(){try{return a===exports.SigningScheme.PRESIGN?Promise.resolve({signature:i,signingScheme:exports.SigningScheme.PRESIGN}):Promise.resolve(tt.signOrder(o,h,t)).then(function(e){return{signature:e.signature,signingScheme:Ze[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:u,appData:d,appDataHash:c};return ve("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return ve(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r}})})}const{networkCostsAmount:s="0",signingScheme:a=exports.SigningScheme.EIP712}=i;if(mt(n)){const p=n.quoteId;if("number"==typeof p)return Promise.resolve(At(e,t,r,{...n,quoteId:p},i));throw new Error("quoteId is required for EthFlow orders")}const{quoteId:u=null,owner:l}=n,{appDataKeccak256:c,fullAppData:d}=r,h=e.context.chainId;return Promise.resolve(l?o(l):Promise.resolve(t.getAddress()).then(o))}catch(f){return Promise.reject(f)}},Tt=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?f.default(r,t):r;return Promise.resolve(Et(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},Et=function(e){try{return Promise.resolve(n.stringifyDeterministic(e)).then(function(e){return{fullAppData:e,appDataKeccak256:i.keccak256(i.toUtf8Bytes(e))}})}catch(e){return Promise.reject(e)}},St=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(It.generateAppDataDoc(f.default({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(Et(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},It=new n.MetadataApi,xt=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}];var Ct="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function kt(e){var t={exports:{}};return e(t,t.exports),t.exports}var Pt={__proto__:null,default:{}},_t=kt(function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Pt.Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},i.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},i.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=e[i]|e[i-1]<<8|e[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)this.words[o]|=(s=e[i]|e[i+1]<<8|e[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var d=1;for(l=u(e,c,e.length,t),c=0;c<s;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,c=67108863&a,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(s=(i=0|e.words[u-h|0])*(o=0|t.words[h])+c)/67108864|0,c=67108863&s;r.words[u]=0|c,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r++]=255&s,r<e.length&&(e[r++]=s>>8&255),r<e.length&&(e[r++]=s>>16&255),6===o?(r<e.length&&(e[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r--]=255&s,r>=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+(0|n.words[o])+i),i=t>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+i),i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)o=(t=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<r.length;s++)o=(t=(0|r.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,i,o,s=e.words,a=t.words,u=r.words,l=0,c=0|s[0],d=8191&c,h=c>>>13,p=0|s[1],f=8191&p,m=p>>>13,y=0|s[2],g=8191&y,b=y>>>13,v=0|s[3],A=8191&v,w=v>>>13,T=0|s[4],E=8191&T,S=T>>>13,I=0|s[5],x=8191&I,C=I>>>13,k=0|s[6],P=8191&k,_=k>>>13,N=0|s[7],M=8191&N,R=N>>>13,O=0|s[8],D=8191&O,B=O>>>13,F=0|s[9],L=8191&F,U=F>>>13,G=0|a[0],H=8191&G,j=G>>>13,q=0|a[1],V=8191&q,z=q>>>13,K=0|a[2],W=8191&K,Q=K>>>13,J=0|a[3],Y=8191&J,X=J>>>13,Z=0|a[4],$=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],de=8191&ce,he=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(l+(n=Math.imul(d,H))|0)+((8191&(i=(i=Math.imul(d,j))+Math.imul(h,H)|0))<<13)|0;l=((o=Math.imul(h,j))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,H),i=(i=Math.imul(f,j))+Math.imul(m,H)|0,o=Math.imul(m,j);var ge=(l+(n=n+Math.imul(d,V)|0)|0)+((8191&(i=(i=i+Math.imul(d,z)|0)+Math.imul(h,V)|0))<<13)|0;l=((o=o+Math.imul(h,z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,H),i=(i=Math.imul(g,j))+Math.imul(b,H)|0,o=Math.imul(b,j),n=n+Math.imul(f,V)|0,i=(i=i+Math.imul(f,z)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,z)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,Q)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,H),i=(i=Math.imul(A,j))+Math.imul(w,H)|0,o=Math.imul(w,j),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,z)|0)+Math.imul(b,V)|0,o=o+Math.imul(b,z)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,Q)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,Q)|0;var ve=(l+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((o=o+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,H),i=(i=Math.imul(E,j))+Math.imul(S,H)|0,o=Math.imul(S,j),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,z)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Q)|0,n=n+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0;var Ae=(l+(n=n+Math.imul(d,$)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,$)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(x,H),i=(i=Math.imul(x,j))+Math.imul(C,H)|0,o=Math.imul(C,j),n=n+Math.imul(E,V)|0,i=(i=i+Math.imul(E,z)|0)+Math.imul(S,V)|0,o=o+Math.imul(S,z)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,Q)|0,n=n+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0;var we=(l+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;l=((o=o+Math.imul(h,ne)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,H),i=(i=Math.imul(P,j))+Math.imul(_,H)|0,o=Math.imul(_,j),n=n+Math.imul(x,V)|0,i=(i=i+Math.imul(x,z)|0)+Math.imul(C,V)|0,o=o+Math.imul(C,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Q)|0,n=n+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,ee)|0,n=n+Math.imul(f,re)|0,i=(i=i+Math.imul(f,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0;var Te=(l+(n=n+Math.imul(d,oe)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,oe)|0))<<13)|0;l=((o=o+Math.imul(h,se)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(M,H),i=(i=Math.imul(M,j))+Math.imul(R,H)|0,o=Math.imul(R,j),n=n+Math.imul(P,V)|0,i=(i=i+Math.imul(P,z)|0)+Math.imul(_,V)|0,o=o+Math.imul(_,z)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(C,W)|0,o=o+Math.imul(C,Q)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0,n=n+Math.imul(f,oe)|0,i=(i=i+Math.imul(f,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(l+(n=n+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((o=o+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(D,H),i=(i=Math.imul(D,j))+Math.imul(B,H)|0,o=Math.imul(B,j),n=n+Math.imul(M,V)|0,i=(i=i+Math.imul(M,z)|0)+Math.imul(R,V)|0,o=o+Math.imul(R,z)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,Q)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Q)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,$)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,n=n+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,le)|0;var Se=(l+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((o=o+Math.imul(h,he)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,H),i=(i=Math.imul(L,j))+Math.imul(U,H)|0,o=Math.imul(U,j),n=n+Math.imul(D,V)|0,i=(i=i+Math.imul(D,z)|0)+Math.imul(B,V)|0,o=o+Math.imul(B,z)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Q)|0,n=n+Math.imul(P,Y)|0,i=(i=i+Math.imul(P,X)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,se)|0,n=n+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,le)|0,n=n+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,o=o+Math.imul(m,he)|0;var Ie=(l+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((o=o+Math.imul(h,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,V),i=(i=Math.imul(L,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(D,W)|0,i=(i=i+Math.imul(D,Q)|0)+Math.imul(B,W)|0,o=o+Math.imul(B,Q)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(R,Y)|0,o=o+Math.imul(R,X)|0,n=n+Math.imul(P,$)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(C,re)|0,o=o+Math.imul(C,ne)|0,n=n+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,le)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,o=o+Math.imul(b,he)|0;var xe=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Q))+Math.imul(U,W)|0,o=Math.imul(U,Q),n=n+Math.imul(D,Y)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(C,oe)|0,o=o+Math.imul(C,se)|0,n=n+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,le)|0,n=n+Math.imul(A,de)|0,i=(i=i+Math.imul(A,he)|0)+Math.imul(w,de)|0,o=o+Math.imul(w,he)|0;var Ce=(l+(n=n+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,ee)|0)+Math.imul(B,$)|0,o=o+Math.imul(B,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(C,ue)|0,o=o+Math.imul(C,le)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(S,de)|0,o=o+Math.imul(S,he)|0;var ke=(l+(n=n+Math.imul(A,fe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((o=o+Math.imul(w,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,o=Math.imul(U,ee),n=n+Math.imul(D,re)|0,i=(i=i+Math.imul(D,ne)|0)+Math.imul(B,re)|0,o=o+Math.imul(B,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,le)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,le)|0,n=n+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(C,de)|0,o=o+Math.imul(C,he)|0;var Pe=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(S,fe)|0))<<13)|0;l=((o=o+Math.imul(S,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(D,oe)|0,i=(i=i+Math.imul(D,se)|0)+Math.imul(B,oe)|0,o=o+Math.imul(B,se)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,le)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,le)|0,n=n+Math.imul(P,de)|0,i=(i=i+Math.imul(P,he)|0)+Math.imul(_,de)|0,o=o+Math.imul(_,he)|0;var _e=(l+(n=n+Math.imul(x,fe)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((o=o+Math.imul(C,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(D,ue)|0,i=(i=i+Math.imul(D,le)|0)+Math.imul(B,ue)|0,o=o+Math.imul(B,le)|0,n=n+Math.imul(M,de)|0,i=(i=i+Math.imul(M,he)|0)+Math.imul(R,de)|0,o=o+Math.imul(R,he)|0;var Ne=(l+(n=n+Math.imul(P,fe)|0)|0)+((8191&(i=(i=i+Math.imul(P,me)|0)+Math.imul(_,fe)|0))<<13)|0;l=((o=o+Math.imul(_,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(D,de)|0,i=(i=i+Math.imul(D,he)|0)+Math.imul(B,de)|0,o=o+Math.imul(B,he)|0;var Me=(l+(n=n+Math.imul(M,fe)|0)|0)+((8191&(i=(i=i+Math.imul(M,me)|0)+Math.imul(R,fe)|0))<<13)|0;l=((o=o+Math.imul(R,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,de),i=(i=Math.imul(L,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Re=(l+(n=n+Math.imul(D,fe)|0)|0)+((8191&(i=(i=i+Math.imul(D,me)|0)+Math.imul(B,fe)|0))<<13)|0;l=((o=o+Math.imul(B,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Oe=(l+(n=Math.imul(L,fe))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,fe)|0))<<13)|0;return l=((o=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Ae,u[5]=we,u[6]=Te,u[7]=Ee,u[8]=Se,u[9]=Ie,u[10]=xe,u[11]=Ce,u[12]=ke,u[13]=Pe,u[14]=_e,u[15]=Ne,u[16]=Me,u[17]=Re,u[18]=Oe,0!==l&&(u[19]=l,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,t.length-1),l=Math.max(0,o-e.length+1);l<=u;l++){var c=(0|e.words[o-l])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),i+=(s=(s=s+(c/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++)t[r]=e.words[r/26|0]>>>r%26&1;return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var o=r.sqr();n<t.length;n++,o=o.sqr())0!==t[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o;this.words[t]=(0|this.words[t])-a<<n|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-o|d>>>o,c=d&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return!(this.length<=n||!(this.words[n]&1<<t))},i.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==t&&n++,this.length=Math.min(n,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,n){var i,o;this._expand(e.length+n);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+s;var a=(0|e.words[i])*t;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r,n=this.clone(),o=e,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==t){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(o,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[o.length+d])+(0|n.words[o.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(o,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(o=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:o,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,s,a},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(c),s.isub(d)),o.iushrn(1),s.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a),s.isub(u)):(n.isub(t),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(o=0===t.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new S(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(A,v),A.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&r)<<4|o>>>22,o=s}e.words[i-10]=o>>>=22,e.length-=0===o&&e.length>10?10:9},A.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];e.words[r]=67108863&(t+=977*n),t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(w,v),n(T,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new A;else if("p224"===e)t=new w;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,o),h=this.pow(e,o.addn(1).iushrn(1)),p=this.pow(e,o),f=s;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var o=r[0],s=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var d=l>>c&1;o!==r[0]&&(o=this.sqr(o)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===c)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},n(I,S),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,Ct)});let Nt=!1,Mt=!1;const Rt={debug:1,default:2,info:2,warning:3,error:4,off:5};let Ot=Rt.default,Dt=null;const Bt=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Ft,Lt;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Ft||(Ft={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Lt||(Lt={}));const Ut="0123456789abcdef";class Gt{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==Rt[r]&&this.throwArgumentError("invalid log level name","logLevel",e),Ot>Rt[r]||console.log.apply(console,t)}debug(...e){this._log(Gt.levels.DEBUG,e)}info(...e){this._log(Gt.levels.INFO,e)}warn(...e){this._log(Gt.levels.WARNING,e)}makeError(e,t,r){if(Mt)return this.makeError("censored error",t,{});t||(t=Gt.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=Ut[t[e]>>4],r+=Ut[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}}),n.push(`code=${t}`),n.push(`version=${this.version}`);const i=e;let o="";switch(t){case Lt.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Lt.CALL_EXCEPTION:case Lt.INSUFFICIENT_FUNDS:case Lt.MISSING_NEW:case Lt.NONCE_EXPIRED:case Lt.REPLACEMENT_UNDERPRICED:case Lt.TRANSACTION_REPLACED:case Lt.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach(function(e){s[e]=r[e]}),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,Gt.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){Bt&&this.throwError("platform missing String.prototype.normalize",Gt.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Bt})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Gt.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Gt.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,Gt.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,Gt.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Gt.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Gt.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Gt.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return Dt||(Dt=new Gt("logger/5.8.0")),Dt}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Gt.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Nt){if(!e)return;this.globalLogger().throwError("error censorship permanent",Gt.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Mt=!!e,Nt=!!t}static setLogLevel(e){const t=Rt[e.toLowerCase()];null!=t?Ot=t:Gt.globalLogger().warn("invalid log level - "+e)}static from(e){return new Gt(e)}}Gt.errors=Lt,Gt.levels=Ft;const Ht=new Gt("bytes/5.8.0");function jt(e){return!!e.toHexString}function qt(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return qt(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Vt(e){return Yt(e)&&!(e.length%2)||Kt(e)}function zt(e){return"number"==typeof e&&e==e&&e%1==0}function Kt(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!zt(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!zt(r)||r<0||r>=256)return!1}return!0}function Wt(e,t){if(t||(t={}),"number"==typeof e){Ht.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),qt(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),jt(e)&&(e=e.toHexString()),Yt(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Ht.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return qt(new Uint8Array(n))}return Kt(e)?qt(new Uint8Array(e)):Ht.throwArgumentError("invalid arrayify value","value",e)}function Qt(e){const t=e.map(e=>Wt(e)),r=t.reduce((e,t)=>e+t.length,0),n=new Uint8Array(r);return t.reduce((e,t)=>(n.set(t,e),e+t.length),0),qt(n)}function Jt(e){let t=Wt(e);if(0===t.length)return t;let r=0;for(;r<t.length&&0===t[r];)r++;return r&&(t=t.slice(r)),t}function Yt(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Xt="0123456789abcdef";function Zt(e,t){if(t||(t={}),"number"==typeof e){Ht.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Xt[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),jt(e))return e.toHexString();if(Yt(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Ht.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Kt(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Xt[(240&n)>>4]+Xt[15&n]}return t}return Ht.throwArgumentError("invalid hexlify value","value",e)}function $t(e){if("string"!=typeof e)e=Zt(e);else if(!Yt(e)||e.length%2)return null;return(e.length-2)/2}function er(e,t,r){return"string"!=typeof e?e=Zt(e):(!Yt(e)||e.length%2)&&Ht.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function tr(e){let t="0x";return e.forEach(e=>{t+=Zt(e).substring(2)}),t}function rr(e){const t=function(e){"string"!=typeof e&&(e=Zt(e)),Yt(e)||Ht.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Zt(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function nr(e,t){for("string"!=typeof e?e=Zt(e):Yt(e)||Ht.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Ht.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function ir(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Vt(e)){let r=Wt(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Zt(r.slice(0,32)),t.s=Zt(r.slice(32,64))):65===r.length?(t.r=Zt(r.slice(0,32)),t.s=Zt(r.slice(32,64)),t.v=r[64]):Ht.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Ht.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Zt(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=function(e,t){(e=Wt(e)).length>t&&Ht.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),qt(r)}(Wt(t._vs),32);t._vs=Zt(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Ht.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Zt(r);null==t.s?t.s=i:t.s!==i&&Ht.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Ht.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Ht.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Yt(t.r)?t.r=nr(t.r,32):Ht.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Yt(t.s)?t.s=nr(t.s,32):Ht.throwArgumentError("signature missing or invalid s","signature",e);const r=Wt(t.s);r[0]>=128&&Ht.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Zt(r);t._vs&&(Yt(t._vs)||Ht.throwArgumentError("signature invalid _vs","signature",e),t._vs=nr(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Ht.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function or(e){return Zt(Qt([(e=ir(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const sr="bignumber/5.8.0";var ar=_t.BN;const ur=new Gt(sr),lr={},cr=9007199254740991;let dr=!1;class hr{constructor(e,t){e!==lr&&ur.throwError("cannot call constructor directly; use BigNumber.from",Gt.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return fr(mr(this).fromTwos(e))}toTwos(e){return fr(mr(this).toTwos(e))}abs(){return"-"===this._hex[0]?hr.from(this._hex.substring(1)):this}add(e){return fr(mr(this).add(mr(e)))}sub(e){return fr(mr(this).sub(mr(e)))}div(e){return hr.from(e).isZero()&&yr("division-by-zero","div"),fr(mr(this).div(mr(e)))}mul(e){return fr(mr(this).mul(mr(e)))}mod(e){const t=mr(e);return t.isNeg()&&yr("division-by-zero","mod"),fr(mr(this).umod(t))}pow(e){const t=mr(e);return t.isNeg()&&yr("negative-power","pow"),fr(mr(this).pow(t))}and(e){const t=mr(e);return(this.isNegative()||t.isNeg())&&yr("unbound-bitwise-result","and"),fr(mr(this).and(t))}or(e){const t=mr(e);return(this.isNegative()||t.isNeg())&&yr("unbound-bitwise-result","or"),fr(mr(this).or(t))}xor(e){const t=mr(e);return(this.isNegative()||t.isNeg())&&yr("unbound-bitwise-result","xor"),fr(mr(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&yr("negative-width","mask"),fr(mr(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&yr("negative-width","shl"),fr(mr(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&yr("negative-width","shr"),fr(mr(this).shrn(e))}eq(e){return mr(this).eq(mr(e))}lt(e){return mr(this).lt(mr(e))}lte(e){return mr(this).lte(mr(e))}gt(e){return mr(this).gt(mr(e))}gte(e){return mr(this).gte(mr(e))}isNegative(){return"-"===this._hex[0]}isZero(){return mr(this).isZero()}toNumber(){try{return mr(this).toNumber()}catch(e){yr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return ur.throwError("this platform does not support BigInt",Gt.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?dr||(dr=!0,ur.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):ur.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",Gt.errors.UNEXPECTED_ARGUMENT,{})),mr(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof hr)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new hr(lr,pr(e)):e.match(/^-?[0-9]+$/)?new hr(lr,pr(new ar(e))):ur.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&yr("underflow","BigNumber.from",e),(e>=cr||e<=-cr)&&yr("overflow","BigNumber.from",e),hr.from(String(e));const t=e;if("bigint"==typeof t)return hr.from(t.toString());if(Kt(t))return hr.from(Zt(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return hr.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Yt(e)||"-"===e[0]&&Yt(e.substring(1))))return hr.from(e)}return ur.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function pr(e){if("string"!=typeof e)return pr(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&ur.throwArgumentError("invalid hex","value",e),"0x00"===(e=pr(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function fr(e){return hr.from(pr(e))}function mr(e){const t=hr.from(e).toHexString();return new ar("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function yr(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),ur.throwError(e,Gt.errors.NUMERIC_FAULT,n)}const gr=new Gt(sr),br={},vr=hr.from(0),Ar=hr.from(-1);function wr(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),gr.throwError(e,Gt.errors.NUMERIC_FAULT,i)}let Tr="0";for(;Tr.length<256;)Tr+=Tr;function Er(e){if("number"!=typeof e)try{e=hr.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+Tr.substring(0,e):gr.throwArgumentError("invalid decimal size","decimals",e)}function Sr(e,t){null==t&&(t=0);const r=Er(t),n=(e=hr.from(e)).lt(vr);n&&(e=e.mul(Ar));let i=e.mod(r).toString();for(;i.length<r.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const o=e.div(r).toString();return e=1===r.length?o:o+"."+i,n&&(e="-"+e),e}function Ir(e,t){null==t&&(t=0);const r=Er(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||gr.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&gr.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&gr.throwArgumentError("too many decimal points","value",e);let o=i[0],s=i[1];for(o||(o="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&wr("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=hr.from(o),u=hr.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(Ar)),l}class xr{constructor(e,t,r,n){e!==br&&gr.throwError("cannot use FixedFormat constructor; use FixedFormat.from",Gt.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=Er(n),Object.freeze(this)}static from(e){if(e instanceof xr)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||gr.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(e){const i=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&gr.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}return r%8&&gr.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&gr.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new xr(br,t,r,n)}}class Cr{constructor(e,t,r,n){e!==br&&gr.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Gt.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&gr.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=Ir(this._value,this.format.decimals),r=Ir(e._value,e.format.decimals);return Cr.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=Ir(this._value,this.format.decimals),r=Ir(e._value,e.format.decimals);return Cr.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=Ir(this._value,this.format.decimals),r=Ir(e._value,e.format.decimals);return Cr.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=Ir(this._value,this.format.decimals),r=Ir(e._value,e.format.decimals);return Cr.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Cr.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(kr.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Cr.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(kr.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&gr.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=Cr.from("1"+Tr.substring(0,e),this.format),n=Pr.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&gr.throwArgumentError("invalid byte width","width",e),nr(hr.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return Cr.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&(hr.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Yt(e)||"bigint"==typeof e||Kt(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),Cr.fromString(Sr(e,t),xr.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=xr.from(t),n=Ir(e,r.decimals);!r.signed&&n.lt(vr)&&wr("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=nr(i,r.width/8));const o=Sr(n,r.decimals);return new Cr(br,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=xr.from(t);if(Wt(e).length>r.width/8)throw new Error("overflow");let n=hr.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=Sr(n,r.decimals);return new Cr(br,i,o,r)}static from(e,t){if("string"==typeof e)return Cr.fromString(e,t);if(Kt(e))return Cr.fromBytes(e,t);try{return Cr.fromValue(e,0,t)}catch(e){if(e.code!==Gt.errors.INVALID_ARGUMENT)throw e}return gr.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const kr=Cr.from(1),Pr=Cr.from("0.5");var _r=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Nr=new Gt("properties/5.8.0");function Mr(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function Rr(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Or(e){return _r(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function Dr(e,t){e&&"object"==typeof e||Nr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||Nr.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function Br(e){const t={};for(const r in e)t[r]=e[r];return t}const Fr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Lr(e){if(null==e||Fr[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;r<t.length;r++){let n=null;try{n=e[t[r]]}catch(e){continue}if(!Lr(n))return!1}return!0}return Nr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Ur(e){if(Lr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Gr(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&Mr(t,r,Gr(n))}return t}return Nr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Gr(e){return Ur(e)}class Hr{constructor(e){for(const t in e)this[t]=Gr(e[t])}}const jr=new Gt("abstract-provider/5.8.0");class qr extends Hr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Vr{constructor(){jr.checkAbstract(new.target,Vr),Mr(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield Or({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let r=null,n=null,i=null;return e&&e.baseFeePerGas&&(r=e.baseFeePerGas,i=hr.from("1500000000"),n=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(o,s)}a((r=r.apply(e,[])).next())});var e,t,r}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const zr=new Gt("networks/5.8.0");function Kr(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new t.PocketProvider(e,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new t.AnkrProvider(e,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}if(t.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new t.QuickNodeProvider(e,r.quicknode))}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(n,i)}return n[0]};return t.renetwork=function(e){return Kr(e)},t}function Wr(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return Wr(e,t)},r}const Qr={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Kr("homestead")},Jr={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Kr("ropsten")},Yr={chainId:63,name:"classicMordor",_defaultProvider:Wr("https://www.ethercluster.com/mordor","classicMordor")},Xr={unspecified:{chainId:0,name:"unspecified"},homestead:Qr,mainnet:Qr,morden:{chainId:2,name:"morden"},ropsten:Jr,testnet:Jr,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Kr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Kr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Kr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Kr("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Kr("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Wr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Yr,classicTestnet:Yr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Wr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Kr("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Kr("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Kr("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Zr(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Wt(t)}function $r(e){e=Wt(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class en{constructor(e){Mr(this,"alphabet",e),Mr(this,"base",e.length),Mr(this,"_alphabetMap",{}),Mr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Wt(e);if(0===t.length)return"";let r=[0];for(let e=0;e<t.length;++e){let n=t[e];for(let e=0;e<r.length;++e)n+=r[e]<<8,r[e]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e<t.length-1;++e)n+=this._leader;for(let e=r.length-1;e>=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r<e.length;r++){let n=this._alphabetMap[e[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let r=0;e[r]===this._leader&&r<e.length-1;++r)t.push(0);return Wt(new Uint8Array(t.reverse()))}}new en("abcdefghijklmnopqrstuvwxyz234567");const tn=new en("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),rn=/*#__PURE__*/hr.from(-1),nn=/*#__PURE__*/hr.from(0),on=/*#__PURE__*/hr.from(1),sn=/*#__PURE__*/hr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var an=kt(function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=Ct:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new _(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new _(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,o){return T["cshake"+e].update(t,n,i,o)[r]()}},b=function(e,t,r){return function(t,n,i,o){return T["kmac"+e].update(t,n,i,o)[r]()}},v=function(e,t,r,n){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new _(e,t,e)},r.update=function(e){return r.create().update(e)},v(r,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new _(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},v(r,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=g(e,0,"hex");return n.create=function(n,i,o){return i||o?new _(e,t,n).bytepad([i,o],r):T["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},v(n,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=b(e,0,"hex");return n.create=function(n,i,o){return new N(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},v(n,b,e,t)}}],T={},E=[],S=0;S<w.length;++S)for(var I=w[S],x=I.bits,C=0;C<x.length;++C){var k=I.name+"_"+x[C];if(E.push(k),T[k]=I.createMethod(x[C],I.padding),"sha3"!==I.name){var P=I.name+x[C];E.push(P),T[P]=T[k]}}function _(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function N(e,t,r){_.call(this,e,t,r)}_.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<d+1;++i)a[i]=0;if(r)for(i=this.start;h<c&&i<u;++h)a[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(o=e.charCodeAt(h))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[d],i=0;i<d;++i)p[i]^=a[i];M(p),this.reset=!0}else this.start=i}return this},_.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},_.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var i=0;if(r)i=e.length;else for(var o=0;o<e.length;++o){var a=e.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},_.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=[];return i.length=t-r%t,this.update(i),this},_.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];M(n)}},_.prototype.toString=_.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<t&&s<n;++o,++s)u+=a[(e=r[o])>>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(M(r),o=0)}return i&&(u+=a[(e=r[o])>>4&15]+a[15&e],i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},_.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)u[s]=r[o];s%t==0&&M(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},_.prototype.buffer=_.prototype.arrayBuffer,_.prototype.digest=_.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[e=a<<2]=255&(t=n[s]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;a%r==0&&M(n)}return o&&(u[e=a<<2]=255&(t=n[s]),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},(N.prototype=new _).finalize=function(){return this.encode(this.outputBits,!0),_.prototype.finalize.call(this)};var M=function(e){var t,r,n,i,o,s,a,u,l,d,h,p,f,m,y,g,b,v,A,w,T,E,S,I,x,C,k,P,_,N,M,R,O,D,B,F,L,U,G,H,j,q,V,z,K,W,Q,J,Y,X,Z,$,ee,te,re,ne,ie,oe,se,ae,ue,le,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((a=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(s=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,r=o^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,r=a^(h<<1|d>>>31),e[4]^=t=s^(d<<1|h>>>31),e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,r=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,r=h^(o<<1|i>>>31),e[8]^=t=d^(i<<1|o>>>31),e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[1],W=e[11]<<4|e[10]>>>28,Q=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,_=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,R=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,k=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,H=e[38]<<8|e[39]>>>24,j=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&A,e[10]=I^~C&P,e[11]=x^~k&_,e[20]=D^~F&U,e[21]=B^~L&G,e[30]=z^~W&J,e[31]=K^~Q&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=C^~P&N,e[13]=k^~_&M,e[22]=F^~U&H,e[23]=L^~G&j,e[32]=W^~J&X,e[33]=Q^~Y&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=P^~N&R,e[15]=_^~M&O,e[24]=U^~H&q,e[25]=G^~j&V,e[34]=J^~X&$,e[35]=Y^~Z&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~S&y,e[16]=N^~R&I,e[17]=M^~O&x,e[26]=H^~q&D,e[27]=j^~V&B,e[36]=X^~$&z,e[37]=Z^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=R^~I&C,e[19]=O^~x&k,e[28]=q^~D&F,e[29]=V^~B&L,e[38]=$^~z&W,e[39]=ee^~K&Q,e[48]=le^~te&ne,e[49]=ce^~re&ie,e[0]^=c[n],e[1]^=c[n+1]};if(o)e.exports=T;else for(S=0;S<E.length;++S)n[E[S]]=T[E[S]]}()}),un=an;function ln(e){return"0x"+un.keccak_256(Wt(e))}const cn=new Gt("strings/5.8.0");var dn,hn;function pn(e,t,r,n,i){if(e===hn.BAD_PREFIX||e===hn.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===hn.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(dn||(dn={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(hn||(hn={}));const fn=Object.freeze({error:function(e,t,r,n,i){return cn.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:pn,replace:function(e,t,r,n,i){return e===hn.OVERLONG?(n.push(i),0):(n.push(65533),pn(e,t,r))}});function mn(e,t){null==t&&(t=fn.error),e=Wt(e);const r=[];let n=0;for(;n<e.length;){const i=e[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=t(128==(192&i)?hn.UNEXPECTED_CONTINUE:hn.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t(hn.OVERRUN,n-1,e,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[n];if(128!=(192&i)){n+=t(hn.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t(hn.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t(hn.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t(hn.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function yn(e,t=dn.current){t!=dn.current&&(cn.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Wt(r)}function gn(e,t){return mn(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function bn(e){return ln(yn(e))}const vn="hash/5.8.0";function An(e,t){null==t&&(t=1);const r=[],n=r.forEach,i=function(e,t){n.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):r.push(e)})};return i(e,t),r}function wn(e){return 1&e?~e>>1:e>>1}function Tn(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function En(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=wn(t());return r}function Sn(e,t){let r=Tn(e(),e),n=e(),i=Tn(n,e),o=function(e,t){let r=Array(e);for(let n=0;n<e;n++)r[n]=1+t();return r}(n,e);for(let e=0;e<n;e++)for(let t=0;t<o[e];t++)r.push(i[e]+t);return t?r.map(e=>t[e]):r}function In(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)En(e,r).forEach((e,t)=>n[t].push(e));return n}function xn(e,t){let r=1+t(),n=t(),i=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(r)}return t}(t);return An(In(i.length,1+e,t).map((e,t)=>{const o=e[0],s=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*n;return[o+t*r,s.map(e=>e+i)]})}))}function Cn(e,t){return In(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const kn=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),i=1,o=[0,1];for(let e=1;e<n;e++)o.push(i+=r());let s=r(),a=t;t+=s;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<o[n]?r=n:t=n}if(0==t)break;y.push(t);let s=g+Math.floor(b*o[t]/i),a=g+Math.floor(b*o[t+1]/i)-1;for(;0==((s^a)&h);)m=m<<1&f|c(),s=s<<1&f,a=a<<1&f|1;for(;s&~a&p;)m=m&h|m<<1&f>>>1|c(),s=s<<1^h,a=(a^h)<<1|h|1;g=s,b=1+a-s}let v=n-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[a++]<<16|e[a++]<<8|e[a++]);case 2:return v+256+(e[a++]<<8|e[a++]);case 1:return v+e[a++];default:return t-1}})}(Zr("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="))),Pn=new Set(Sn(kn)),_n=new Set(Sn(kn)),Nn=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(xn(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(Cn(r,e))}return function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[n[0]]=n[1]}return t}(An(t))}(kn),Mn=function(e){let t=Sn(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=Sn(e,t);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((e,t)=>t.set.size-e.set.size);let i=e(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(kn),Rn=45,On=95;function Dn(e){return function(e,t=dn.current){return mn(yn(e,t))}(e)}function Bn(e){return e.filter(e=>65039!=e)}function Fn(e){for(let t of e.split(".")){let e=Dn(t);try{for(let t=e.lastIndexOf(On)-1;t>=0;t--)if(e[t]!==On)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===Rn&&e[3]===Rn)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function Ln(e,t){var r;let n,i,o=Mn,s=[],a=e.length;for(t&&(t.length=0);a;){let u=e[--a];if(o=null===(r=o.branches.find(e=>e.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==e[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),t&&t.push(...e.slice(a).reverse()),e.length=a)}return n}const Un=new Gt(vn),Gn=new Uint8Array(32);function Hn(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function jn(e){const t=yn(function(e){return Fn(function(e,t){let r=Dn(e).reverse(),n=[];for(;r.length;){let e=Ln(r);if(e){n.push(...t(e));continue}let i=r.pop();if(Pn.has(i)){n.push(i);continue}if(_n.has(i))continue;let o=Nn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Fn(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,Bn))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Hn(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Hn(t.slice(n))),r}function qn(e){"string"!=typeof e&&Un.throwArgumentError("invalid ENS name; not a string","name",e);let t=Gn;const r=jn(e);for(;r.length;)t=ln(Qt([t,ln(r.pop())]));return Zt(t)}Gn.fill(0);const Vn=new Gt("rlp/5.8.0");function zn(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Kn(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Wn(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Wn(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=zn(t.length);return r.unshift(247+r.length),r.concat(t)}Vt(e)||Vn.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Wt(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=zn(t.length);return r.unshift(183+r.length),r.concat(t)}function Qn(e){return Zt(Wn(e))}function Jn(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Yn(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&Vn.throwError("child data too short",Gt.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Yn(e,t){if(0===e.length&&Vn.throwError("data too short",Gt.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&Vn.throwError("data short segment too short",Gt.errors.BUFFER_OVERRUN,{});const n=Kn(e,t+1,r);return t+1+r+n>e.length&&Vn.throwError("data long segment too short",Gt.errors.BUFFER_OVERRUN,{}),Jn(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&Vn.throwError("data array too short",Gt.errors.BUFFER_OVERRUN,{}),Jn(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&Vn.throwError("data array too short",Gt.errors.BUFFER_OVERRUN,{});const n=Kn(e,t+1,r);return t+1+r+n>e.length&&Vn.throwError("data array too short",Gt.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Zt(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&Vn.throwError("data too short",Gt.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Zt(e.slice(t+1,t+1+r))}}return{consumed:1,result:Zt(e[t])}}function Xn(e){const t=Wt(e),r=Yn(t,0);return r.consumed!==t.length&&Vn.throwArgumentError("invalid rlp data","data",e),r.result}const Zn=new Gt("address/5.8.0");function $n(e){Yt(e,20)||Zn.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=Wt(ln(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const ei={};for(let e=0;e<10;e++)ei[String(e)]=String(e);for(let e=0;e<26;e++)ei[String.fromCharCode(65+e)]=String(10+e);const ti=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function ri(e){let t=null;if("string"!=typeof e&&Zn.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=$n(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Zn.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>ei[e]).join("");for(;t.length>=ti;){let e=t.substring(0,ti);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}(e)&&Zn.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new ar(r,36).toString(16);t.length<40;)t="0"+t;t=$n("0x"+t)}else Zn.throwArgumentError("invalid address","address",e);var r;return t}function ni(e){let t=null;try{t=ri(e.from)}catch(t){Zn.throwArgumentError("missing from address","transaction",e)}return ri(er(ln(Qn([t,Jt(Wt(hr.from(e.nonce).toHexString()))])),12))}const ii=new Gt(vn),oi=new Uint8Array(32);oi.fill(0);const si=hr.from(-1),ai=hr.from(0),ui=hr.from(1),li=hr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ci=nr(ui.toHexString(),32),di=nr(ai.toHexString(),32),hi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},pi=["name","version","chainId","verifyingContract","salt"];function fi(e){return function(t){return"string"!=typeof t&&ii.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const mi={name:fi("name"),version:fi("version"),chainId:function(e){try{return hr.from(e).toString()}catch(e){}return ii.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return ri(e).toLowerCase()}catch(e){}return ii.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Wt(e);if(32!==t.length)throw new Error("bad length");return Zt(t)}catch(e){}return ii.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function yi(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&ii.throwArgumentError("invalid numeric width","type",e);const i=li.mask(r?n-1:n),o=r?i.add(ui).mul(si):ai;return function(t){const r=hr.from(t);return(r.lt(o)||r.gt(i))&&ii.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),nr(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&ii.throwArgumentError("invalid bytes width","type",e),function(t){return Wt(t).length!==r&&ii.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Wt(e),r=t.length%32;return r?tr([t,oi.slice(r)]):Zt(t)}(t)}}}switch(e){case"address":return function(e){return nr(ri(e),32)};case"bool":return function(e){return e?ci:di};case"bytes":return function(e){return ln(e)};case"string":return function(e){return bn(e)}}return null}function gi(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class bi{constructor(e){Mr(this,"types",Object.freeze(Gr(e))),Mr(this,"_encoderCache",{}),Mr(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach(e=>{t[e]={},r[e]=[],n[e]={}});for(const n in e){const i={};e[n].forEach(o=>{i[o.name]&&ii.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",e),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&ii.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),yi(s)||(r[s]||ii.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",e),r[s].push(n),t[n][s]=!0)})}const i=Object.keys(r).filter(e=>0===r[e].length);0===i.length?ii.throwArgumentError("missing primary type","types",e):i.length>1&&ii.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),Mr(this,"primaryType",i[0]),function i(o,s){s[o]&&ii.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e),s[o]=!0,Object.keys(t[o]).forEach(e=>{r[e]&&(i(e,s),Object.keys(s).forEach(t=>{n[t][e]=!0}))}),delete s[o]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=gi(t,e[t])+r.map(t=>gi(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=yi(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&ii.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(ln)),ln(tr(i))}}const r=this.types[e];if(r){const t=bn(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?ln(n):n});return n.unshift(t),tr(n)}}return ii.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||ii.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return ln(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(yi(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],i=parseInt(n[3]);return i>=0&&t.length!==i&&ii.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,r))}const i=this.types[e];return i?i.reduce((e,{name:n,type:i})=>(e[n]=this._visit(i,t[n],r),e),{}):ii.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new bi(e)}static getPrimaryType(e){return bi.from(e).primaryType}static hashStruct(e,t,r){return bi.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=hi[r];n||ii.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>pi.indexOf(e.name)-pi.indexOf(t.name)),bi.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return tr(["0x1901",bi.hashDomain(e),bi.from(t).hash(r)])}static hash(e,t,r){return ln(bi.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=Br(e);const i={};e.verifyingContract&&!Yt(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=bi.from(t);o.visit(r,(e,t)=>("address"!==e||Yt(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield n(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),r=o.visit(r,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:r}},new((o=void 0)||(o=Promise))(function(e,t){function r(e){try{a(s.next(e))}catch(e){t(e)}}function n(e){try{a(s.throw(e))}catch(e){t(e)}}function a(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(e,t,r){bi.hashDomain(e);const n={},i=[];pi.forEach(t=>{const r=e[t];null!=r&&(n[t]=mi[t](r),i.push({name:t,type:hi[t]}))});const o=bi.from(t),s=Br(t);return s.EIP712Domain?ii.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return Zt(Wt(t));if(e.match(/^u?int/))return hr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&ii.throwArgumentError("invalid string","value",t),t}return ii.throwArgumentError("unsupported type","type",e)})}}}var vi=Ai;function Ai(e,t){if(!e)throw new Error(t||"Assertion failed")}function wi(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function Ti(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function Ei(e){return 1===e.length?"0"+e:e}function Si(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}Ai.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var Ii={inherits:kt(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):wi(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=Ei(e[r].toString(16));return t},htonl:Ti,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=Ti(i)),r+=Si(i.toString(16))}return r},zero2:Ei,zero8:Si,join32:function(e,t,r,n){var i=r-t;vi(i%4==0);for(var o=new Array(i/4),s=0,a=t;s<o.length;s++,a+=4)o[s]=("big"===n?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a])>>>0;return o},split32:function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=n+e[t+1]>>>0;e[t]=(i<n?1:0)+r+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,o,s,a){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,o,s,a){return t+n+o+a>>>0},sum64_5_hi:function(e,t,r,n,i,o,s,a,u,l){var c=0,d=t;return c+=(d=d+n>>>0)<t?1:0,c+=(d=d+o>>>0)<o?1:0,c+=(d=d+a>>>0)<a?1:0,e+r+i+s+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,o,s,a,u,l){return t+n+o+a+l>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function xi(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var Ci=xi;xi.prototype.update=function(e,t){if(e=Ii.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=Ii.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},xi.prototype.digest=function(e){return this.update(this._pad()),vi(null===this.pending),this._digest(e)},xi.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var ki={BlockHash:Ci},Pi=Ii.rotr32;function _i(e,t,r){return e&t^~e&r}function Ni(e,t,r){return e&t^e&r^t&r}var Mi=_i,Ri=Ni,Oi=Ii.rotl32,Di=Ii.sum32,Bi=Ii.sum32_5,Fi=function(e,t,r,n){return 0===e?_i(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?Ni(t,r,n):void 0},Li=ki.BlockHash,Ui=[1518500249,1859775393,2400959708,3395469782];function Gi(){if(!(this instanceof Gi))return new Gi;Li.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Ii.inherits(Gi,Li);var Hi=Gi;Gi.blockSize=512,Gi.outSize=160,Gi.hmacStrength=80,Gi.padLength=64,Gi.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=Oi(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),c=Bi(Oi(i,5),Fi(l,o,s,a),u,r[n],Ui[l]);u=a,a=s,s=Oi(o,30),o=i,i=c}this.h[0]=Di(this.h[0],i),this.h[1]=Di(this.h[1],o),this.h[2]=Di(this.h[2],s),this.h[3]=Di(this.h[3],a),this.h[4]=Di(this.h[4],u)},Gi.prototype._digest=function(e){return"hex"===e?Ii.toHex32(this.h,"big"):Ii.split32(this.h,"big")};var ji=Ii.sum32,qi=Ii.sum32_4,Vi=Ii.sum32_5,zi=Mi,Ki=Ri,Wi=function(e){return Pi(e,2)^Pi(e,13)^Pi(e,22)},Qi=function(e){return Pi(e,6)^Pi(e,11)^Pi(e,25)},Ji=function(e){return Pi(e,7)^Pi(e,18)^e>>>3},Yi=function(e){return Pi(e,17)^Pi(e,19)^e>>>10},Xi=ki.BlockHash,Zi=[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];function $i(){if(!(this instanceof $i))return new $i;Xi.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Zi,this.W=new Array(64)}Ii.inherits($i,Xi);var eo=$i;function to(){if(!(this instanceof to))return new to;eo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}$i.blockSize=512,$i.outSize=256,$i.hmacStrength=192,$i.padLength=64,$i.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=qi(Yi(r[n-2]),r[n-7],Ji(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(vi(this.k.length===r.length),n=0;n<r.length;n++){var h=Vi(d,Qi(u),zi(u,l,c),this.k[n],r[n]),p=ji(Wi(i),Ki(i,o,s));d=c,c=l,l=u,u=ji(a,h),a=s,s=o,o=i,i=ji(h,p)}this.h[0]=ji(this.h[0],i),this.h[1]=ji(this.h[1],o),this.h[2]=ji(this.h[2],s),this.h[3]=ji(this.h[3],a),this.h[4]=ji(this.h[4],u),this.h[5]=ji(this.h[5],l),this.h[6]=ji(this.h[6],c),this.h[7]=ji(this.h[7],d)},$i.prototype._digest=function(e){return"hex"===e?Ii.toHex32(this.h,"big"):Ii.split32(this.h,"big")},Ii.inherits(to,eo);var ro=to;to.blockSize=512,to.outSize=224,to.hmacStrength=192,to.padLength=64,to.prototype._digest=function(e){return"hex"===e?Ii.toHex32(this.h.slice(0,7),"big"):Ii.split32(this.h.slice(0,7),"big")};var no=Ii.rotr64_hi,io=Ii.rotr64_lo,oo=Ii.shr64_hi,so=Ii.shr64_lo,ao=Ii.sum64,uo=Ii.sum64_hi,lo=Ii.sum64_lo,co=Ii.sum64_4_hi,ho=Ii.sum64_4_lo,po=Ii.sum64_5_hi,fo=Ii.sum64_5_lo,mo=ki.BlockHash,yo=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function go(){if(!(this instanceof go))return new go;mo.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=yo,this.W=new Array(160)}Ii.inherits(go,mo);var bo=go;function vo(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function Ao(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function wo(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function To(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function Eo(e,t){var r=no(e,t,28)^no(t,e,2)^no(t,e,7);return r<0&&(r+=4294967296),r}function So(e,t){var r=io(e,t,28)^io(t,e,2)^io(t,e,7);return r<0&&(r+=4294967296),r}function Io(e,t){var r=no(e,t,14)^no(e,t,18)^no(t,e,9);return r<0&&(r+=4294967296),r}function xo(e,t){var r=io(e,t,14)^io(e,t,18)^io(t,e,9);return r<0&&(r+=4294967296),r}function Co(e,t){var r=no(e,t,1)^no(e,t,8)^oo(e,t,7);return r<0&&(r+=4294967296),r}function ko(e,t){var r=io(e,t,1)^io(e,t,8)^so(e,t,7);return r<0&&(r+=4294967296),r}function Po(e,t){var r=no(e,t,19)^no(t,e,29)^oo(e,t,6);return r<0&&(r+=4294967296),r}function _o(e,t){var r=io(e,t,19)^io(t,e,29)^so(e,t,6);return r<0&&(r+=4294967296),r}function No(){if(!(this instanceof No))return new No;bo.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}go.blockSize=1024,go.outSize=512,go.hmacStrength=192,go.padLength=128,go.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=Po(r[n-4],r[n-3]),o=_o(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=Co(r[n-30],r[n-29]),l=ko(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=co(i,o,s,a,u,l,c,d),r[n+1]=ho(i,o,s,a,u,l,c,d)}},go.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];vi(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=Io(d,h),E=xo(d,h),S=vo(d,0,p,0,m),I=Ao(0,h,0,f,0,y),x=this.k[v],C=this.k[v+1],k=r[v],P=r[v+1],_=po(A,w,T,E,S,I,x,C,k,P),N=fo(A,w,T,E,S,I,x,C,k,P);A=Eo(n,i),w=So(n,i),T=wo(n,0,o,0,a),E=To(0,i,0,s,0,u);var M=uo(A,w,T,E),R=lo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=uo(l,c,_,N),h=lo(c,c,_,N),l=a,c=u,a=o,u=s,o=n,s=i,n=uo(_,N,M,R),i=lo(_,N,M,R)}ao(this.h,0,n,i),ao(this.h,2,o,s),ao(this.h,4,a,u),ao(this.h,6,l,c),ao(this.h,8,d,h),ao(this.h,10,p,f),ao(this.h,12,m,y),ao(this.h,14,g,b)},go.prototype._digest=function(e){return"hex"===e?Ii.toHex32(this.h,"big"):Ii.split32(this.h,"big")},Ii.inherits(No,bo);var Mo=No;No.blockSize=1024,No.outSize=384,No.hmacStrength=192,No.padLength=128,No.prototype._digest=function(e){return"hex"===e?Ii.toHex32(this.h.slice(0,12),"big"):Ii.split32(this.h.slice(0,12),"big")};var Ro={sha1:Hi,sha224:ro,sha256:eo,sha384:Mo,sha512:bo},Oo=Ii.rotl32,Do=Ii.sum32,Bo=Ii.sum32_3,Fo=Ii.sum32_4,Lo=ki.BlockHash;function Uo(){if(!(this instanceof Uo))return new Uo;Lo.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}Ii.inherits(Uo,Lo);var Go=Uo;function Ho(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function jo(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function qo(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Uo.blockSize=512,Uo.outSize=160,Uo.hmacStrength=192,Uo.padLength=64,Uo.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,c=o,d=s,h=0;h<80;h++){var p=Do(Oo(Fo(r,Ho(h,n,i,o),e[Vo[h]+t],jo(h)),Ko[h]),s);r=s,s=o,o=Oo(i,10),i=n,n=p,p=Do(Oo(Fo(a,Ho(79-h,u,l,c),e[zo[h]+t],qo(h)),Wo[h]),d),a=d,d=c,c=Oo(l,10),l=u,u=p}p=Bo(this.h[1],i,c),this.h[1]=Bo(this.h[2],o,d),this.h[2]=Bo(this.h[3],s,a),this.h[3]=Bo(this.h[4],r,u),this.h[4]=Bo(this.h[0],n,l),this.h[0]=p},Uo.prototype._digest=function(e){return"hex"===e?Ii.toHex32(this.h,"little"):Ii.split32(this.h,"little")};var Vo=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zo=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Ko=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Wo=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Qo={ripemd160:Go};function Jo(e,t,r){if(!(this instanceof Jo))return new Jo(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(Ii.toArray(t,r))}var Yo=Jo;Jo.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),vi(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Jo.prototype.update=function(e,t){return this.inner.update(e,t),this},Jo.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var Xo,Zo=kt(function(e,t){var r=t;r.utils=Ii,r.common=ki,r.sha=Ro,r.ripemd=Qo,r.hmac=Yo,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),$o=Zo;!function(e){e.sha256="sha256",e.sha512="sha512"}(Xo||(Xo={}));const es=new Gt("sha2/5.8.0");function ts(e){return"0x"+$o.sha256().update(Wt(e)).digest("hex")}function rs(e,t,r){return Xo[e]||es.throwError("unsupported algorithm "+e,Gt.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+$o.hmac($o[e],Wt(t)).update(Wt(r)).digest("hex")}var ns=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};function is(e,t){return ns(this,void 0,void 0,function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(r.mode=e.mode),e.cache&&(r.cache=e.cache),e.credentials&&(r.credentials=e.credentials),e.redirect&&(r.redirect=e.redirect),e.referrer&&(r.referrer=e.referrer)}const n=yield fetch(e,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((e,t)=>{o[t.toLowerCase()]=e}):n.headers.keys().forEach(e=>{o[e.toLowerCase()]=n.headers.get(e)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Wt(new Uint8Array(i))}})}var os=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const ss=new Gt("web/5.8.0");function as(e){return new Promise(t=>{setTimeout(t,e)})}function us(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Vt(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return gn(e)}catch(e){}return Zt(e)}return e}function ls(e,t,r){let n=null;if(null!=t){n=yn(t);const r="string"==typeof e?{url:e}:Br(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=Br(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return function(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;ss.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof e?e.throttleCallback:null,o="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;ss.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof e&&!!e.errorPassThrough,a={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||ss.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)a[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&ss.throwError("basic authentication requires a secure https url",Gt.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+$r(yn(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=Br(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Zr(p[3]):(f=p[3],yn(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){ss.throwError("processing response error",Gt.errors.SERVER_ERROR,{body:us(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(a).forEach(e=>{const t=a[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,r){d&&(e=setTimeout(()=>{null!=e&&(e=null,r(ss.makeError("timeout",Gt.errors.TIMEOUT,{requestBody:us(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return os(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield is(u,l),e<n)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let r=!0;if(i&&(r=yield i(e,u)),r){let r=0;const n=t.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,e))),yield as(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),ss.throwError("missing response",Gt.errors.SERVER_ERROR,{requestBody:us(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let a=t.body;if(c&&304===t.statusCode?a=null:!s&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),ss.throwError("bad response",Gt.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:us(a,t.headers?t.headers["content-type"]:null),requestBody:us(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const e=yield r(a,t);return y.cancel(),e}catch(r){if(r.throttleRetry&&e<n){let t=!0;if(i&&(t=yield i(e,u)),t){const t=o*parseInt(String(Math.random()*Math.pow(2,e)));yield as(t);continue}}y.cancel(),ss.throwError("processing response error",Gt.errors.SERVER_ERROR,{body:us(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:us(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return ss.throwError("failed response",Gt.errors.SERVER_ERROR,{requestBody:us(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,n,(e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(gn(e))}catch(t){ss.throwError("invalid JSON",Gt.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function cs(e,t){return t||(t={}),null==(t=Br(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},t.timeout));const a=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)s()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){s()&&n(e)})}()})}for(var ds="qpzry9x8gf2tvdw0s3jn54khce6mua7l",hs={},ps=0;ps<ds.length;ps++){var fs=ds.charAt(ps);if(void 0!==hs[fs])throw new TypeError(fs+" is ambiguous");hs[fs]=ps}function ms(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const ys="providers/5.8.0";function gs(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var bs=vs;function vs(e,t){if(!e)throw new Error(t||"Assertion failed")}vs.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var As=gs(function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}}),ws=gs(function(e,t){var r=t;r.assert=bs,r.toArray=As.toArray,r.zero2=As.zero2,r.toHex=As.toHex,r.encode=As.encode,r.getNAF=function(e,t,r){var n,i=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<t+1,s=e.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,u=e.andln(3)+i&3,l=t.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new _t(e,"hex","le")}}),Ts=ws.getNAF,Es=ws.getJSF,Ss=ws.assert;function Is(e,t){this.type=e,this.p=new _t(t.p,16),this.red=t.prime?_t.red(t.prime):_t.mont(this.p),this.zero=new _t(0).toRed(this.red),this.one=new _t(1).toRed(this.red),this.two=new _t(2).toRed(this.red),this.n=t.n&&new _t(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var xs=Is;function Cs(e,t){this.curve=e,this.type=t,this.precomputed=null}Is.prototype.point=function(){throw new Error("Not implemented")},Is.prototype.validate=function(){throw new Error("Not implemented")},Is.prototype._fixedNafMul=function(e,t){Ss(e.precomputed);var r=e._getDoubles(),n=Ts(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<a.length;o++)(s=a[o])===d?c=c.mixedAdd(r.points[o]):s===-d&&(c=c.mixedAdd(r.points[o].neg()));l=l.add(c)}return l.toP()},Is.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=Ts(t,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];Ss(0!==l),s="affine"===e.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?s.toP():s},Is.prototype._wnafMulAdd=function(e,t,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(o=0;o<n;o++){var h=(a=t[o])._getNAFPoints(e);u[o]=h.wnd,l[o]=h.points}for(o=n-1;o>=1;o-=2){var p=o-1,f=o;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=Es(r[p],r[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),s=0;s<d;s++)c[p][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],c[f][s]=0,l[p]=m}else c[p]=Ts(r[p],u[p],this._bitLength),c[f]=Ts(r[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(o=d;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)v[s]=0|c[s][o],0!==v[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,b=b.dblp(A),o<0)break;for(s=0;s<n;s++){var T=v[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),b="affine"===a.type?b.mixedAdd(a):b.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?b:b.toP()},Is.BasePoint=Cs,Cs.prototype.eq=function(){throw new Error("Not implemented")},Cs.prototype.validate=function(){return this.curve.validate(this)},Is.prototype.decodePoint=function(e,t){e=ws.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?Ss(e[e.length-1]%2==0):7===e[0]&&Ss(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},Cs.prototype.encodeCompressed=function(e){return this.encode(e,!0)},Cs.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},Cs.prototype.encode=function(e,t){return ws.encode(this._encode(t),e)},Cs.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},Cs.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},Cs.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},Cs.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},Cs.prototype._getBeta=function(){return null},Cs.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var ks=gs(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),Ps=ws.assert;function _s(e){xs.call(this,"short",e),this.a=new _t(e.a,16).toRed(this.red),this.b=new _t(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}ks(_s,xs);var Ns=_s;function Ms(e,t,r,n){xs.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new _t(t,16),this.y=new _t(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function Rs(e,t,r,n){xs.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new _t(0)):(this.x=new _t(t,16),this.y=new _t(r,16),this.z=new _t(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}_s.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new _t(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new _t(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:Ps(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:r,basis:e.basis?e.basis.map(function(e){return{a:new _t(e.a,16),b:new _t(e.b,16)}}):this._getEndoBasis(r)}}},_s.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:_t.mont(e),r=new _t(2).toRed(t).redInvm(),n=r.redNeg(),i=new _t(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},_s.prototype._getEndoBasis=function(e){for(var t,r,n,i,o,s,a,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new _t(1),f=new _t(0),m=new _t(0),y=new _t(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!n&&u.cmp(c)<0)t=a.neg(),r=p,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,h=d,d=u,m=p,p=l,y=f,f=v}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},_s.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:e.sub(s).sub(a),k2:u.add(l).neg()}},_s.prototype.pointFromX=function(e,t){(e=new _t(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},_s.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},_s.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),c=0;c<2*o;c++)n[c]=null,i[c]=null;return l},ks(Ms,xs.BasePoint),_s.prototype.point=function(e,t,r){return new Ms(this,e,t,r)},_s.prototype.pointFromJSON=function(e,t){return Ms.fromJSON(this,e,t)},Ms.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},Ms.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Ms.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},Ms.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Ms.prototype.isInfinity=function(){return this.inf},Ms.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Ms.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},Ms.prototype.getX=function(){return this.x.fromRed()},Ms.prototype.getY=function(){return this.y.fromRed()},Ms.prototype.mul=function(e){return e=new _t(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Ms.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},Ms.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},Ms.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Ms.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Ms.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},ks(Rs,xs.BasePoint),_s.prototype.jpoint=function(e,t,r){return new Rs(this,e,t,r)},Rs.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},Rs.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Rs.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),c=l.redMul(a),d=n.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(o.redMul(c)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,f)},Rs.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),c=r.redMul(u),d=a.redSqr().redIAdd(l).redISub(c).redISub(c),h=a.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(d,h,p)},Rs.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(t=0;t<e;t++){var c=o.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(n.redMul(u)),f=o.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(a);t+1<e&&(u=u.redMul(h)),o=m,a=b,l=g}return this.curve.jpoint(o,l.redMul(i),a)},Rs.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Rs.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},Rs.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);e=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,r)},Rs.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=s.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=a.redMul(d).redISub(h),f=r.redAdd(r).redMul(n);return this.curve.jpoint(c,p,f)},Rs.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(a).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(d,h,p)},Rs.prototype.mul=function(e,t){return e=new _t(e,t),this.curve._wnafMul(this,e)},Rs.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},Rs.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},Rs.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},Rs.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Os=gs(function(e,t){var r=t;r.base=xs,r.short=Ns,r.mont=null,r.edwards=null}),Ds=gs(function(e,t){var r,n=t,i=ws.assert;function o(e){this.curve="short"===e.type?new Os.short(e):"edwards"===e.type?new Os.edwards(e):new Os.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:$o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:$o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:$o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:$o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:$o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:$o.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:$o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:$o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Bs(e){if(!(this instanceof Bs))return new Bs(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=As.toArray(e.entropy,e.entropyEnc||"hex"),r=As.toArray(e.nonce,e.nonceEnc||"hex"),n=As.toArray(e.pers,e.persEnc||"hex");bs(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Fs=Bs;Bs.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},Bs.prototype._hmac=function(){return new $o.hmac(this.hash,this.K)},Bs.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Bs.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=As.toArray(e,t),r=As.toArray(r,n),bs(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},Bs.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=As.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,e);return this._update(r),this._reseed++,As.encode(o,t)};var Ls=ws.assert;function Us(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Gs=Us;Us.fromPublic=function(e,t,r){return t instanceof Us?t:new Us(e,{pub:t,pubEnc:r})},Us.fromPrivate=function(e,t,r){return t instanceof Us?t:new Us(e,{priv:t,privEnc:r})},Us.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Us.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Us.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Us.prototype._importPrivate=function(e,t){this.priv=new _t(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Us.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Ls(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Ls(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Us.prototype.derive=function(e){return e.validate()||Ls(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Us.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},Us.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},Us.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Hs=ws.assert;function js(e,t){if(e instanceof js)return e;this._importDER(e,t)||(Hs(e.r&&e.s,"Signature without r or s"),this.r=new _t(e.r,16),this.s=new _t(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var qs=js;function Vs(){this.place=0}function zs(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var i=0,o=0,s=t.place;o<n;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function Ks(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function Ws(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}js.prototype._importDER=function(e,t){e=ws.toArray(e,t);var r=new Vs;if(48!==e[r.place++])return!1;var n=zs(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=zs(e,r);if(!1===i)return!1;if(0!=(128&e[r.place]))return!1;var o=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=zs(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(0!=(128&e[r.place]))return!1;var a=e.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new _t(o),this.s=new _t(a),this.recoveryParam=null,!0},js.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=Ks(t),r=Ks(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Ws(n,t.length),(n=n.concat(t)).push(2),Ws(n,r.length);var i=n.concat(r),o=[48];return Ws(o,i.length),o=o.concat(i),ws.encode(o,e)};var Qs=function(){throw new Error("unsupported")},Js=ws.assert;function Ys(e){if(!(this instanceof Ys))return new Ys(e);"string"==typeof e&&(Js(Object.prototype.hasOwnProperty.call(Ds,e),"Unknown curve "+e),e=Ds[e]),e instanceof Ds.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Xs=Ys;Ys.prototype.keyPair=function(e){return new Gs(this,e)},Ys.prototype.keyFromPrivate=function(e,t){return Gs.fromPrivate(this,e,t)},Ys.prototype.keyFromPublic=function(e,t){return Gs.fromPublic(this,e,t)},Ys.prototype.genKeyPair=function(e){e||(e={});for(var t=new Fs({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Qs(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new _t(2));;){var i=new _t(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Ys.prototype._truncateToN=function(e,t,r){var n;if(_t.isBN(e)||"number"==typeof e)n=(e=new _t(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new _t(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new _t(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Ys.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!_t.isBN(e)){Js("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Js(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Js((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Js(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Js(new _t(a).eq(e),"Can not sign message");for(var u=new Fs({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new _t(1)),c=0;;c++){var d=n.k?n.k(c):new _t(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new qs({r:f,s:m,recoveryParam:y})}}}}}},Ys.prototype.verify=function(e,t,r,n,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(t=new qs(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},Ys.prototype.recoverPubKey=function(e,t,r,n){Js((3&r)===r,"The recovery param is more than two bits"),t=new qs(t,n);var i=this.n,o=new _t(e),s=t.r,a=t.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var c=t.r.invm(i),d=i.sub(o).mul(c).umod(i),h=a.mul(c).umod(i);return this.g.mulAdd(d,s,h)},Ys.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new qs(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var Zs=gs(function(e,t){var r=t;r.version="6.6.1",r.utils=ws,r.rand=function(){throw new Error("unsupported")},r.curve=Os,r.curves=Ds,r.ec=Xs,r.eddsa=null}).ec;const $s=new Gt("signing-key/5.8.0");let ea=null;function ta(){return ea||(ea=new Zs("secp256k1")),ea}class ra{constructor(e){Mr(this,"curve","secp256k1"),Mr(this,"privateKey",Zt(e)),32!==$t(this.privateKey)&&$s.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=ta().keyFromPrivate(Wt(this.privateKey));Mr(this,"publicKey","0x"+t.getPublic(!1,"hex")),Mr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Mr(this,"_isSigningKey",!0)}_addPoint(e){const t=ta().keyFromPublic(Wt(this.publicKey)),r=ta().keyFromPublic(Wt(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=ta().keyFromPrivate(Wt(this.privateKey)),r=Wt(e);32!==r.length&&$s.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return ir({recoveryParam:n.recoveryParam,r:nr("0x"+n.r.toString(16),32),s:nr("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=ta().keyFromPrivate(Wt(this.privateKey)),r=ta().keyFromPublic(Wt(na(e)));return nr("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function na(e,t){const r=Wt(e);if(32===r.length){const e=new ra(r);return t?"0x"+ta().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Zt(r):"0x"+ta().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+ta().keyFromPublic(r).getPublic(!0,"hex"):Zt(r):$s.throwArgumentError("invalid public or private key","key","[REDACTED]")}const ia=new Gt("transactions/5.8.0");var oa;function sa(e){return"0x"===e?null:ri(e)}function aa(e){return"0x"===e?nn:hr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(oa||(oa={}));const ua=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],la={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function ca(e){return ri(er(ln(er(na(e),1)),12))}function da(e,t){return ca(function(e,t){const r=ir(t),n={r:Wt(r.r),s:Wt(r.s)};return"0x"+ta().recoverPubKey(Wt(e),n,r.recoveryParam).encode("hex",!1)}(Wt(e),t))}function ha(e,t){const r=Jt(hr.from(e).toHexString());return r.length>32&&ia.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function pa(e,t){return{address:ri(e),storageKeys:(t||[]).map((t,r)=>(32!==$t(t)&&ia.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function fa(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&ia.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),pa(e[0],e[1])):pa(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return pa(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function ma(e){return fa(e).map(e=>[e.address,e.storageKeys])}function ya(e,t){if(null!=e.gasPrice){const t=hr.from(e.gasPrice),r=hr.from(e.maxFeePerGas||0);t.eq(r)||ia.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[ha(e.chainId||0,"chainId"),ha(e.nonce||0,"nonce"),ha(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),ha(e.maxFeePerGas||0,"maxFeePerGas"),ha(e.gasLimit||0,"gasLimit"),null!=e.to?ri(e.to):"0x",ha(e.value||0,"value"),e.data||"0x",ma(e.accessList||[])];if(t){const e=ir(t);r.push(ha(e.recoveryParam,"recoveryParam")),r.push(Jt(e.r)),r.push(Jt(e.s))}return tr(["0x02",Qn(r)])}function ga(e,t){const r=[ha(e.chainId||0,"chainId"),ha(e.nonce||0,"nonce"),ha(e.gasPrice||0,"gasPrice"),ha(e.gasLimit||0,"gasLimit"),null!=e.to?ri(e.to):"0x",ha(e.value||0,"value"),e.data||"0x",ma(e.accessList||[])];if(t){const e=ir(t);r.push(ha(e.recoveryParam,"recoveryParam")),r.push(Jt(e.r)),r.push(Jt(e.s))}return tr(["0x01",Qn(r)])}function ba(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&ia.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){Dr(e,la);const r=[];ua.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Wt(Zt(n,i)),t.length&&n.length!==t.length&&n.length>0&&ia.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Jt(n),n.length>t.maxLength&&ia.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Zt(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&ia.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Vt(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Zt(n)),r.push("0x"),r.push("0x")),!t)return Qn(r);const i=ir(t);let o=27+i.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&ia.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&ia.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Zt(o)),r.push(Jt(Wt(i.r))),r.push(Jt(Wt(i.s))),Qn(r)}(e,t);switch(e.type){case 1:return ga(e,t);case 2:return ya(e,t)}return ia.throwError(`unsupported transaction type: ${e.type}`,Gt.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function va(e,t,r){try{const r=aa(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){ia.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=nr(t[1],32),e.s=nr(t[2],32);try{const t=ln(r(e));e.from=da(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const Aa=new Gt(ys);class wa{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:o,type:u,accessList:wa.allowNull(this.accessList.bind(this),null),blockHash:wa.allowNull(o,null),blockNumber:wa.allowNull(a,null),transactionIndex:wa.allowNull(a,null),confirmations:wa.allowNull(a,null),from:t,gasPrice:wa.allowNull(r),maxPriorityFeePerGas:wa.allowNull(r),maxFeePerGas:wa.allowNull(r),gasLimit:r,to:wa.allowNull(t,null),value:r,nonce:a,data:i,r:wa.allowNull(this.uint256),s:wa.allowNull(this.uint256),v:wa.allowNull(a),creates:wa.allowNull(t,null),raw:wa.allowNull(i)},e.transactionRequest={from:wa.allowNull(t),nonce:wa.allowNull(a),gasLimit:wa.allowNull(r),gasPrice:wa.allowNull(r),maxPriorityFeePerGas:wa.allowNull(r),maxFeePerGas:wa.allowNull(r),to:wa.allowNull(t),value:wa.allowNull(r),data:wa.allowNull(e=>this.data(e,!0)),type:wa.allowNull(a),accessList:wa.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:wa.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:wa.allowNull(this.address,null),from:wa.allowNull(this.address,null),contractAddress:wa.allowNull(t,null),transactionIndex:a,root:wa.allowNull(s),gasUsed:r,logsBloom:wa.allowNull(i),blockHash:o,transactionHash:o,logs:wa.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:wa.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:wa.allowNull(r),status:wa.allowNull(a),type:u},e.block={hash:wa.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:wa.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:wa.allowNull(t),extraData:i,transactions:wa.allowNull(wa.arrayOf(o)),baseFeePerGas:wa.allowNull(r)},e.blockWithTransactions=Br(e.block),e.blockWithTransactions.transactions=wa.allowNull(wa.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:wa.allowNull(n,void 0),toBlock:wa.allowNull(n,void 0),blockHash:wa.allowNull(o,void 0),address:wa.allowNull(t,void 0),topics:wa.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:wa.allowNull(a),blockHash:wa.allowNull(o),transactionIndex:a,removed:wa.allowNull(this.boolean.bind(this)),address:t,data:wa.allowFalsish(i,"0x"),topics:wa.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return fa(e||[])}number(e){return"0x"===e?0:hr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:hr.from(e).toNumber()}bigNumber(e){return hr.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Yt(e))?e.toLowerCase():Aa.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return ri(e)}callAddress(e){if(!Yt(e,32))return null;const t=ri(er(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return ni(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Yt(e))return rr(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==$t(r)?Aa.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=hr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Yt(e))throw new Error("invalid uint256");return nr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=wa.check(t,e);return n._difficulty=null==r?null:hr.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return wa.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&hr.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=wa.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;Yt(r)&&(r=hr.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),Yt(r)&&(r=hr.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Wt(e);if(t[0]>127)return function(e){const t=Xn(e);9!==t.length&&6!==t.length&&ia.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:aa(t[0]).toNumber(),gasPrice:aa(t[1]),gasLimit:aa(t[2]),to:sa(t[3]),value:aa(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=hr.from(t[6]).toNumber()}catch(e){return r}if(r.r=nr(t[7],32),r.s=nr(t[8],32),hr.from(r.r).isZero()&&hr.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=t.slice(0,6);0!==r.chainId&&(i.push(Zt(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=ln(Qn(i));try{r.from=da(o,{r:Zt(r.r),s:Zt(r.s),recoveryParam:n})}catch(e){}r.hash=ln(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Xn(e.slice(1));8!==t.length&&11!==t.length&&ia.throwArgumentError("invalid component count for transaction type: 1","payload",Zt(e));const r={type:1,chainId:aa(t[0]).toNumber(),nonce:aa(t[1]).toNumber(),gasPrice:aa(t[2]),gasLimit:aa(t[3]),to:sa(t[4]),value:aa(t[5]),data:t[6],accessList:fa(t[7])};return 8===t.length||(r.hash=ln(e),va(r,t.slice(8),ga)),r}(t);case 2:return function(e){const t=Xn(e.slice(1));9!==t.length&&12!==t.length&&ia.throwArgumentError("invalid component count for transaction type: 2","payload",Zt(e));const r=aa(t[2]),n=aa(t[3]),i={type:2,chainId:aa(t[0]).toNumber(),nonce:aa(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:aa(t[4]),to:sa(t[5]),value:aa(t[6]),data:t[7],accessList:fa(t[8])};return 9===t.length||(i.hash=ln(e),va(i,t.slice(9),ya)),i}(t)}return ia.throwError(`unsupported transaction type: ${t[0]}`,Gt.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return wa.check(this.formats.receiptLog,e)}receipt(e){const t=wa.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=hr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Aa.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Aa.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Aa.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return wa.check(this.formats.filter,e)}filterLog(e){return wa.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const i=e[n](t[n]);void 0!==i&&(r[n]=i)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach(function(t){r.push(e(t))}),r}}}var Ta=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ea=new Gt(ys);function Sa(e){return null==e?"null":(32!==$t(e)&&Ea.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function Ia(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[Sa(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return Sa(e)}).join("&")}function xa(e){if("string"==typeof e){if(32===$t(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+Ia(e);if(qr.isForkEvent(e))throw Ea.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+Ia(e.topics||[])}throw new Error("invalid event - "+e)}function Ca(){return(new Date).getTime()}function ka(e){return new Promise(t=>{setTimeout(t,e)})}const Pa=["block","network","pending","poll"];class _a{constructor(e,t,r){Mr(this,"tag",e),Mr(this,"listener",t),Mr(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var n;const i={};return r.length>0&&(i.topics=r),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||Pa.indexOf(this.tag)>=0}}const Na={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function Ma(e){return nr(hr.from(e).toHexString(),32)}function Ra(e){return tn.encode(Qt([e,er(ts(ts(e)),0,4)]))}const Oa=new RegExp("^(ipfs)://(.*)$","i"),Da=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Oa,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Ba(e,t){try{return gn(Fa(e,t))}catch(e){}return null}function Fa(e,t){if("0x"===e)return null;const r=hr.from(er(e,t,t+32)).toNumber(),n=hr.from(er(e,r,r+32)).toNumber();return er(e,r+32,r+32+n)}function La(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Ea.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Ua(e){const t=Wt(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function Ga(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Ha(e){const t=[];let r=0;for(let n=0;n<e.length;n++)t.push(null),r+=32;for(let n=0;n<e.length;n++){const i=Wt(e[n]);t[n]=Ua(r),t.push(Ua(i.length)),t.push(Ga(i)),r+=32+32*Math.ceil(i.length/32)}return tr(t)}class ja{constructor(e,t,r,n){Mr(this,"provider",e),Mr(this,"name",r),Mr(this,"address",e.formatter.address(t)),Mr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>hr.from(e).eq(1)).catch(e=>{if(e.code===Gt.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return Ta(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:tr([e,qn(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=tr(["0x9061b923",Ha([(i=this.name,Zt(Qt(jn(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),r.data])]));try{let e=yield this.provider.call(r);return Wt(e).length%32==4&&Ea.throwError("resolver threw error",Gt.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Fa(e,0)),e}catch(e){if(e.code===Gt.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return Ta(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?Fa(r,0):null})}_getAddress(e,t){const r=Na[String(e)];if(null==r&&Ea.throwError(`unsupported coin type: ${e}`,Gt.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Wt(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Ra(Qt([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Ra(Qt([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,r,n){for(var i=0,o=0,s=[],a=0;a<e.length;++a)for(i=i<<8|e[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(e);if(Array.isArray(t))return t;throw new Error(t)}(n.slice(2));return e.unshift(t),function(e,t,r){if(e.length+7+t.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(e){for(var t=1,r=0;r<e.length;++r){var n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=ms(t)^n>>5}for(t=ms(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=ms(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=e+"1",o=0;o<t.length;++o){var s=t[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=ms(n)^s,i+=ds.charAt(s)}for(o=0;o<6;++o)n=ms(n);for(n^=1,o=0;o<6;++o)i+=ds.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return Ta(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Gt.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",Ma(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&Ea.throwError("invalid or unsupported coin data",Gt.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return Ta(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;r<Da.length;r++){const n=t.match(Da[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:La(t)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=nr(hr.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:tr(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=hr.from(yield this.provider.call({to:a,data:tr(["0x00fdd58e",nr(o,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(s[0]),data:tr([r,u])};let c=Ba(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=La(c)),e.push({type:"metadata-url",content:c});const d=yield ls(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(Oa))return null;e.push({type:"url-ipfs",content:h}),h=La(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return Ta(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+tn.encode("0x"+t[1])}const r=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const e=parseInt(r[3],16);if(r[4].length===2*e)return"ipns://"+tn.encode("0x"+r[1])}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+$r("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return Ea.throwError("invalid or unsupported content hash data",Gt.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return Ta(this,void 0,void 0,function*(){let t=yn(e);t=Qt([Ma(64),Ma(t.length),t]),t.length%32!=0&&(t=Qt([t,nr("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Zt(t));return null==r||"0x"===r?null:gn(r)})}}let qa=null,Va=1;class za extends Vr{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Mr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=Rr(new.target,"getNetwork")(e);t?(Mr(this,"_network",t),this.emit("network",t,null)):Ea.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Ta(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||Ea.throwError("no network detected",Gt.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Mr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return cs(()=>this._ready().then(e=>e,e=>{if(e.code!==Gt.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==qa&&(qa=new wa),qa}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Xr){const r=Xr[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Xr[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Xr[e.name];if(!t)return"number"!=typeof e.chainId&&zr.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&zr.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}(null==e?"homestead":e)}ccipReadFetch(e,t,r){return Ta(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),i=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){const t=r[e],s=t.replace("{sender}",n).replace("{data}",i),a=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield ls({url:s,errorPassThrough:!0},a,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return Ea.throwError(`response not found during CCIP fetch: ${l}`,Gt.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return Ea.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,Gt.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return Ta(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(Ca()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Ca(),r=Or({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=Ca();return(e=hr.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=r,r.catch(e=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return Ta(this,void 0,void 0,function*(){const e=Va++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)Ea.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",Ea.makeError("network block skew detected",Gt.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null).catch(e=>{this.emit("error",e)});t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=r-1);const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(o)}}}),this._lastBlockNumber=r,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Ta(this,void 0,void 0,function*(){return Ea.throwError("provider does not support network detection",Gt.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Ta(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield ka(0),this._network;const r=Ea.makeError("underlying network changed",Gt.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=Ca();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=Ca(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return Ta(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return Ta(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),s.push(()=>{this.removeListener(e,l)}),n){let r=n.startBlock,i=null;const l=s=>Ta(this,void 0,void 0,function*(){a||(yield ka(1e3),this.getTransactionCount(n.from).then(c=>Ta(this,void 0,void 0,function*(){if(!a){if(c<=n.nonce)r=s;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===e)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,t);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(Ea.makeError("transaction was replaced",Gt.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:e,receipt:r}))}}i++}}a||this.once("block",l)}}),e=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const e=setTimeout(()=>{u()||o(Ea.makeError("timeout exceeded",Gt.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return Ta(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return hr.from(e)}catch(t){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Or({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return hr.from(n)}catch(e){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Or({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return hr.from(n).toNumber()}catch(e){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Or({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Zt(n)}catch(e){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Or({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>rr(e))}),i=yield this.perform("getStorageAt",n);try{return Zt(i)}catch(e){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==$t(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&Ea.throwError("Transaction hash mismatch from Provider.sendTransaction.",Gt.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>Ta(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const o=yield this._waitForTransaction(e.hash,t,n,i);return null==o&&0===t?null:(this._emitted["t:"+e.hash]=o.blockNumber,0===o.status&&Ea.throwError("transaction failed",Gt.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Zt(e)),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}})}_getTransactionRequest(e){return Ta(this,void 0,void 0,function*(){const t=yield e,r={};return["from","to"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?hr.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Zt(e):null))}),this.formatter.transactionRequest(yield Or(r))})}_getFilter(e){return Ta(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(r=>{null!=e[r]&&(t[r]=e[r])}),["fromBlock","toBlock"].forEach(r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))}),this.formatter.filter(yield Or(t))})}_call(e,t,r){return Ta(this,void 0,void 0,function*(){r>=10&&Ea.throwError("CCIP read exceeded maximum redirections",Gt.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===i.substring(0,10)&&$t(i)%32==4)try{const o=er(i,4),s=er(o,0,32);hr.from(s).eq(n)||Ea.throwError("CCIP Read sender did not match",Gt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=hr.from(er(o,32,64)).toNumber(),l=hr.from(er(o,u,u+32)).toNumber(),c=er(o,u+32);for(let t=0;t<l;t++){const r=Ba(c,32*t);null==r&&Ea.throwError("CCIP Read contained corrupt URL string",Gt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=Fa(o,64);hr.from(er(o,100,128)).isZero()||Ea.throwError("CCIP Read callback selector included junk",Gt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=er(o,96,100),p=Fa(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&Ea.throwError("CCIP Read disabled or provided no URLs",Gt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:tr([h,Ha([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===Gt.errors.SERVER_ERROR)throw e}try{return Zt(i)}catch(r){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Or({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Or({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return hr.from(r)}catch(e){return Ea.throwError("bad result from backend",Gt.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return Ta(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&Ea.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Ea.throwError("ENS name not configured",Gt.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(Yt(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),Yt(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){Ea.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return cs(()=>Ta(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;r<e.transactions.length;r++){const n=e.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}}const r=this.formatter.blockWithTransactions(e);return r.transactions=r.transactions.map(e=>this._wrapTransaction(e)),r}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return cs(()=>Ta(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return cs(()=>Ta(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}),{oncePoll:this})})}getLogs(e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Or({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),wa.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return Ta(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return Ta(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Ea.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return Ta(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new ja(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return Ta(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||Ea.throwError("network does not support ENS",Gt.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+qn(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return Ta(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Yt(e))throw t}"string"!=typeof e&&Ea.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return Ta(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=Ba(yield this.call({to:r,data:"0x691f3431"+qn(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return Ta(this,void 0,void 0,function*(){let t=null;if(Yt(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new ja(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Gt.errors.CALL_EXCEPTION)throw e}try{const e=Ba(yield this.call({to:n,data:"0x691f3431"+qn(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Gt.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url})}perform(e,t){return Ea.throwError(e+" not implemented",Gt.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,r){const n=new _a(xa(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],i=xa(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),r=!0,!e.once||(n.push(e),!1))),n.forEach(e=>{this._stopEvent(e)}),r}listenerCount(e){if(!e)return this._events.length;let t=xa(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=xa(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,i=xa(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!n||(n=!0,r.push(e),!1)),r.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=xa(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Ka=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Wa=new Gt(ys),Qa=["call","estimateGas"];function Ja(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=Yt(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=Ja(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Ja(JSON.parse(e),t)}catch(e){}return null}function Ya(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Ja(t,!0);if(e)return e.data;Wa.throwError("missing revert data in call exception; Transaction reverted without a reason string",Gt.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Ja(t.body,!1);null==r&&(r=Ja(t,!1)),r&&Wa.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Gt.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===Gt.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Wa.throwError("insufficient funds for intrinsic transaction cost",Gt.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Wa.throwError("nonce has already been used",Gt.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Wa.throwError("replacement fee too low",Gt.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Wa.throwError("legacy pre-eip-155 transactions not supported",Gt.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),Qa.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Wa.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Gt.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Xa(e){return new Promise(function(t){setTimeout(t,e)})}function Za(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function $a(e){return e?e.toLowerCase():e}const eu={};class tu extends a.Signer{constructor(e,t,r){if(super(),e!==eu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Mr(this,"provider",t),null==r&&(r=0),"string"==typeof r?(Mr(this,"_address",this.provider.formatter.address(r)),Mr(this,"_index",null)):"number"==typeof r?(Mr(this,"_index",r),Mr(this,"_address",null)):Wa.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Wa.throwError("cannot alter JSON-RPC Signer connection",Gt.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new ru(eu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Wa.throwError("unknown account #"+this._index,Gt.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=Br(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=Br(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Ka(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Wa.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),Or({tx:Or(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Wa.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Wa.throwError("user rejected transaction",Gt.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Ya("sendTransaction",e,n)))})}signTransaction(e){return Wa.throwError("signing transactions is unsupported",Gt.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Ka(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield cs(()=>Ka(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}})}signMessage(e){return Ka(this,void 0,void 0,function*(){const t="string"==typeof e?yn(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Zt(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Wa.throwError("user rejected signing",Gt.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return Ka(this,void 0,void 0,function*(){const t="string"==typeof e?yn(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Zt(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Wa.throwError("user rejected signing",Gt.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return Ka(this,void 0,void 0,function*(){const n=yield bi.resolveNames(e,t,r,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(bi.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Wa.throwError("user rejected signing",Gt.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return Ka(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class ru extends tu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const nu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class iu extends za{constructor(e,t){let r=t;null==r&&(r=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(r),e||(e=Rr(this.constructor,"defaultUrl")()),Mr(this,"connection",Object.freeze("string"==typeof e?{url:e}:Br(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Ka(this,void 0,void 0,function*(){yield Xa(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=Rr(this.constructor,"getNetwork");try{return t(hr.from(e).toNumber())}catch(t){return Wa.throwError("could not detect network",Gt.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Wa.throwError("could not detect network",Gt.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new tu(eu,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Gr(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=ls(this.connection,JSON.stringify(r),Za).then(e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e});return n&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[$a(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[$a(t.address),t.blockTag]];case"getCode":return["eth_getCode",[$a(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[$a(t.address),nr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[Rr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Rr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=$a(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Ka(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&hr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=Br(t)).transaction=Br(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Wa.throwError(e+" not implemented",Gt.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return Ya(e,r,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(r){return function n(){e.send("eth_getFilterChanges",[r]).then(function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),n.then(function(){return Xa(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){n()},0),null;e.send("eth_uninstallFilter",[r])}).catch(e=>{})}(),r}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=Br(nu);if(t)for(const e in t)t[e]&&(r[e]=!0);Dr(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=rr(hr.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Zt(e[t]))}),e.accessList&&(n.accessList=fa(e.accessList)),n}}const ou=new Gt("random/5.8.0"),su=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let au=su.crypto||su.msCrypto;function uu(e){(e<=0||e>1024||e%1||e!=e)&&ou.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return au.getRandomValues(t),Wt(t)}au&&au.getRandomValues||(ou.warn("WARNING: Missing strong random number source"),au={getRandomValues:function(e){return ou.throwError("no secure random source avaialble",Gt.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const lu=new Gt(ys);let cu=1;function du(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:cu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:Gr(i),provider:this}),t(i,(t,o)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:i,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const e=new Error(o.error.message);return e.code=o.error.code,e.data=o.error.data,n(e)}e(o.result)})})}}class hu extends iu{constructor(e,t){null==e&&lu.throwArgumentError("missing provider","provider",e);let r=null,n=null,i=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),i=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Gr(n),provider:this}),e.request(n).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e})}}(e)):e.sendAsync?n=du(0,e.sendAsync.bind(e)):e.send?n=du(0,e.send.bind(e)):lu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),Mr(this,"jsonRpcFetchFunc",n),Mr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function pu(e,t,r,n,i){let o;e=Wt(e),t=Wt(t);let s=1;const a=new Uint8Array(n),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=s;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=Wt(rs(i,e,u));o||(o=h.length,c=new Uint8Array(o),s=Math.ceil(n/o),l=n-(s-1)*o),c.set(h);for(let t=1;t<r;t++){h=Wt(rs(i,e,h));for(let e=0;e<o;e++)c[e]^=h[e]}const p=(d-1)*o,f=d===s?l:o;a.set(Wt(c).slice(0,f),p)}return Zt(a)}new Gt(ys);const fu=new Gt("wordlists/5.8.0");class mu{constructor(e){fu.checkAbstract(new.target,mu),Mr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let r=0;r<2048;r++){const n=e.getWord(r);if(r!==e.getWordIndex(n))return"0x";t.push(n)}return bn(t.join("\n")+"\n")}static register(e,t){}}const yu="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let gu=null;function bu(e){if(null==gu&&(gu=yu.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==mu.check(e)))throw gu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const vu=new class extends mu{constructor(){super("en")}getWord(e){return bu(this),gu[e]}getWordIndex(e){return bu(this),gu.indexOf(e)}};mu.register(vu);const Au={en:vu},wu=new Gt("hdnode/5.8.0"),Tu=hr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Eu=yn("Bitcoin seed"),Su=2147483648;function Iu(e){return(1<<e)-1<<8-e}function xu(e){return nr(Zt(e),32)}function Cu(e){return tn.encode(Qt([e,er(ts(ts(e)),0,4)]))}function ku(e){if(null==e)return Au.en;if("string"==typeof e){const t=Au[e];return null==t&&wu.throwArgumentError("unknown locale","wordlist",e),t}return e}const Pu={},_u="m/44'/60'/0'/0/0";class Nu{constructor(e,t,r,n,i,o,s,a){if(e!==Pu)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new ra(t);Mr(this,"privateKey",e.privateKey),Mr(this,"publicKey",e.compressedPublicKey)}else Mr(this,"privateKey",null),Mr(this,"publicKey",Zt(r));var u;Mr(this,"parentFingerprint",n),Mr(this,"fingerprint",er((u=ts(this.publicKey),"0x"+$o.ripemd160().update(Wt(u)).digest("hex")),0,4)),Mr(this,"address",ca(this.publicKey)),Mr(this,"chainCode",i),Mr(this,"index",o),Mr(this,"depth",s),null==a?(Mr(this,"mnemonic",null),Mr(this,"path",null)):"string"==typeof a?(Mr(this,"mnemonic",null),Mr(this,"path",a)):(Mr(this,"mnemonic",a),Mr(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return Cu(Qt([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Zt(this.depth),this.parentFingerprint,nr(Zt(this.index),4),this.chainCode,null!=this.privateKey?Qt(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new Nu(Pu,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&Su){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Wt(this.privateKey),1),t&&(t+="'")}else r.set(Wt(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Wt(rs(Xo.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=xu(hr.from(i).add(this.privateKey).mod(Tu)):a=new ra(Zt(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new Nu(Pu,s,a,this.fingerprint,xu(o),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e<t.length;e++){const n=t[e];if(n.match(/^[0-9]+'$/)){const e=parseInt(n.substring(0,n.length-1));if(e>=Su)throw new Error("invalid path index - "+n);r=r._derive(Su+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=Su)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Wt(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Wt(rs(Xo.sha512,Eu,r));return new Nu(Pu,xu(n.slice(0,32)),null,"0x00000000",xu(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=Ru(Mu(e,r=ku(r)),r),Nu._fromSeed(function(e,t){t||(t="");const r=yn("mnemonic"+t,dn.NFKD);return pu(yn(e,dn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return Nu._fromSeed(e,null)}static fromExtendedKey(e){const t=tn.decode(e);82===t.length&&Cu(t.slice(0,78))===e||wu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Zt(t.slice(5,9)),i=parseInt(Zt(t.slice(9,13)).substring(2),16),o=Zt(t.slice(13,45)),s=t.slice(45,78);switch(Zt(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new Nu(Pu,null,Zt(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new Nu(Pu,Zt(s.slice(1)),null,n,o,i,r,null)}return wu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function Mu(e,t){t=ku(t),wu.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Wt(new Uint8Array(Math.ceil(11*r.length/8)));let i=0;for(let e=0;e<r.length;e++){let o=t.getWordIndex(r[e].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)o&1<<10-e&&(n[i>>3]|=1<<7-i%8),i++}const o=32*r.length/3,s=Iu(r.length/3);if((Wt(ts(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Zt(n.slice(0,o/8))}function Ru(e,t){if(t=ku(t),(e=Wt(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const i=e.length/4,o=Wt(ts(e))[0]&Iu(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var Ou=kt(function(e,t){!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t<e.length;t++)if(!r(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function o(e){return new Uint8Array(e)}function s(e,t,r,n,i){null==n&&null==i||(e=e.slice?e.slice(n,i):Array.prototype.slice.call(e,n,i)),t.set(e,r)}var a,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r<e.length;){var n=e.charCodeAt(r++);37===n?(t.push(parseInt(e.substr(r,2),16)),r+=2):t.push(n)}return i(t)},fromBytes:function(e){for(var t=[],r=0;r<e.length;){var n=e[r];n<128?(t.push(String.fromCharCode(n)),r++):n>191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},fromBytes:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];t.push(a[(240&n)>>4]+a[15&n])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],A=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],S=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function x(e){for(var t=[],r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var r,n=4*(e+1),i=this.key.length/4,o=x(this.key);for(t=0;t<i;t++)this._Ke[r=t>>2][t%4]=o[t],this._Kd[e-r][t%4]=o[t];for(var s,a=0,u=i;u<n;){if(o[0]^=h[(s=o[i-1])>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^d[a]<<24,a+=1,8!=i)for(t=1;t<i;t++)o[t]^=o[t-1];else{for(t=1;t<i/2;t++)o[t]^=o[t-1];for(o[i/2]^=h[255&(s=o[i/2-1])]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24,t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(t=0;t<i&&u<n;)this._Ke[l=u>>2][p=u%4]=o[t],this._Kd[e-l][p]=o[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(s=this._Kd[l][p])>>24&255]^E[s>>16&255]^S[s>>8&255]^I[255&s]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=x(e),i=0;i<4;i++)n[i]^=this._Ke[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=f[n[i]>>24&255]^m[n[(i+1)%4]>>16&255]^y[n[(i+2)%4]>>8&255]^g[255&n[(i+3)%4]]^this._Ke[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(h[n[i]>>24&255]^(a=this._Ke[t][i])>>24),u[4*i+1]=255&(h[n[(i+1)%4]>>16&255]^a>>16),u[4*i+2]=255&(h[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(h[255&n[(i+3)%4]]^a);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=x(e),i=0;i<4;i++)n[i]^=this._Kd[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=b[n[i]>>24&255]^v[n[(i+3)%4]>>16&255]^A[n[(i+2)%4]>>8&255]^w[255&n[(i+1)%4]]^this._Kd[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(p[n[i]>>24&255]^(a=this._Kd[t][i])>>24),u[4*i+1]=255&(p[n[(i+3)%4]>>16&255]^a>>16),u[4*i+2]=255&(p[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(p[255&n[(i+1)%4]]^a);return u};var k=function(e){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.encrypt(r),t,n);return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.decrypt(r),t,n);return t};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};P.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16);for(var a=0;a<16;a++)r[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(r),s(this._lastCipherblock,t,n)}return t},P.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16),r=this._aes.decrypt(r);for(var a=0;a<16;a++)t[n+a]=r[a]^this._lastCipherblock[a];s(e,this._lastCipherblock,0,n,n+16)}return t};var _=function(e,t,r){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=o(16);r||(r=1),this.segmentSize=r,this._shiftRegister=i(t,!0),this._aes=new C(e)};_.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(r,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r},_.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(e,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var M=function(e){if(!(this instanceof M))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=o(16),this.setValue(e)):this.setBytes(e)};M.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},M.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},M.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var R=function(e,t){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof M||(t=new M(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};R.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[r]^=this._remainingCounter[this._remainingCounterIndex++];return t},R.prototype.decrypt=R.prototype.encrypt,e.exports={AES:C,Counter:M,ModeOfOperation:{ecb:k,cbc:P,cfb:_,ofb:N,ctr:R},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,r=o(e.length+t);s(e,r);for(var n=e.length;n<r.length;n++)r[n]=t;return r},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n<t;n++)if(e[r+n]!==t)throw new Error("PKCS#7 invalid padding byte");var a=o(r);return s(e,a,0,0,r),a}}},_arrayTest:{coerceArray:i,createArray:o,copyArray:s}}}()});const Du="json-wallets/5.8.0";function Bu(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Wt(e)}function Fu(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Lu(e){return"string"==typeof e?yn(e,dn.NFKC):Wt(e)}function Uu(e,t){let r=e;const n=t.toLowerCase().split("/");for(let e=0;e<n.length;e++){let t=null;for(const i in r)if(i.toLowerCase()===n[e]){t=r[i];break}if(null===t)return null;r=t}return r}function Gu(e){const t=Wt(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Zt(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Hu=new Gt(Du);class ju extends Hr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function qu(e,t){const r=JSON.parse(e);t=Lu(t);const n=ri(Uu(r,"ethaddr")),i=Bu(Uu(r,"encseed"));i&&i.length%16==0||Hu.throwArgumentError("invalid encseed","json",e);const o=Wt(pu(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new Ou.ModeOfOperation.cbc(o,s),l=Ou.padding.pkcs7.strip(Wt(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=ln(yn(c));return new ju({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function Vu(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function zu(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var Ku=kt(function(e,t){!function(t){const r=2147483647;function n(e){const t=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]);let r=1779033703,n=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=r,v=n,A=i,w=o,T=s,E=a,S=u,I=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&S)|0)+(I+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&A^v&A)|0,I=S,S=E,E=T,T=w+y|0,w=A,A=v,v=b,b=y+g|0;r=r+b|0,n=n+v|0,i=i+A|0,o=o+w|0,s=s+T|0,a=a+E|0,u=u+S|0,l=l+I|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);const i=64+t.length+4,o=new Array(i),s=new Array(64);let a,u=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<e.length;a++)o[a]^=e[a];for(a=0;a<t.length;a++)o[64+a]=t[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<e.length;a++)s[a]^=e[a];function l(){for(let e=i-1;e>=i-4;e--){if(o[e]++,o[e]<=255)return;o[e]=0}}for(;r>=32;)l(),u=u.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),u=u.concat(n(s.concat(n(o))).slice(0,r))),u}function o(e,t,r,n,i){let o;for(l(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),a(i,n),l(i,0,e,t+16*o,16);for(o=0;o<r;o++)l(e,t+2*o*16,e,16*o,16);for(o=0;o<r;o++)l(e,t+16*(2*o+1),e,16*(o+r),16)}function s(e,t){return e<<t|e>>>32-t}function a(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=s(t[0]+t[12],7),t[8]^=s(t[4]+t[0],9),t[12]^=s(t[8]+t[4],13),t[0]^=s(t[12]+t[8],18),t[9]^=s(t[5]+t[1],7),t[13]^=s(t[9]+t[5],9),t[1]^=s(t[13]+t[9],13),t[5]^=s(t[1]+t[13],18),t[14]^=s(t[10]+t[6],7),t[2]^=s(t[14]+t[10],9),t[6]^=s(t[2]+t[14],13),t[10]^=s(t[6]+t[2],18),t[3]^=s(t[15]+t[11],7),t[7]^=s(t[3]+t[15],9),t[11]^=s(t[7]+t[3],13),t[15]^=s(t[11]+t[7],18),t[1]^=s(t[0]+t[3],7),t[2]^=s(t[1]+t[0],9),t[3]^=s(t[2]+t[1],13),t[0]^=s(t[3]+t[2],18),t[6]^=s(t[5]+t[4],7),t[7]^=s(t[6]+t[5],9),t[4]^=s(t[7]+t[6],13),t[5]^=s(t[4]+t[7],18),t[11]^=s(t[10]+t[9],7),t[8]^=s(t[11]+t[10],9),t[9]^=s(t[8]+t[11],13),t[10]^=s(t[9]+t[8],18),t[12]^=s(t[15]+t[14],7),t[13]^=s(t[12]+t[15],9),t[14]^=s(t[13]+t[12],13),t[15]^=s(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let i=0;i<n;i++)r[i]^=e[t+i]}function l(e,t,r,n,i){for(;i--;)r[n++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||r%1||r<0||r>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,n,s,a,h,p){if(n=d(n,"N"),s=d(s,"r"),a=d(a,"p"),h=d(h,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/s)throw new Error("N too large");if(s>r/128/a)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*a*s);const m=new Uint32Array(32*a*s);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*s),g=new Uint32Array(32*s*n),b=32*s,v=new Uint32Array(16),A=new Uint32Array(16),w=a*n*2;let T,E,S=0,I=null,x=!1,C=0,k=0;const P=p?parseInt(1e3/s):4294967295,_="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(x)return p(new Error("cancelled"),S/w);let t;switch(C){case 0:E=32*k*s,l(m,E,y,0,b),C=1,T=0;case 1:t=n-T,t>P&&(t=P);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(x=p(null,S/w),x)break;I=e}}if(T<n)break;T=0,C=2;case 2:t=n-T,t>P&&(t=P);for(let e=0;e<t;e++)u(g,(y[16*(2*s-1)]&n-1)*b,y,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(x=p(null,S/w),x)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),k++,k<a){C=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const r=i(e,f,h);return p&&p(null,1,r),r}p&&_(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,r,n,i,o,s){return new Promise(function(a,u){let l=0;s&&s(0),h(e,t,r,n,i,o,function(e,t,r){if(e)u(e);else if(r)s&&1!==l&&s(1),a(new Uint8Array(r));else if(s&&t!==l)return l=t,s(t)})})},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(h(e,t,r,n,i,o))}};e.exports=p}()}),Wu=Ku;const Qu=new Gt(Du);function Ju(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Yu extends Hr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Xu(e,t){const r=Bu(Uu(e,"crypto/ciphertext"));if(Zt(ln(Qt([t.slice(16,32),r]))).substring(2)!==Uu(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===Uu(e,"crypto/cipher")){const n=Bu(Uu(e,"crypto/cipherparams/iv")),i=new Ou.Counter(n);return Wt(new Ou.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||Qu.throwError("unsupported cipher",Gt.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=ca(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),ri(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Zt(n)};if("0.1"===Uu(e,"x-ethers/version")){const t=Bu(Uu(e,"x-ethers/mnemonicCiphertext")),r=Bu(Uu(e,"x-ethers/mnemonicCounter")),n=new Ou.Counter(r),o=new Ou.ModeOfOperation.ctr(i,n),a=Uu(e,"x-ethers/path")||_u,u=Uu(e,"x-ethers/locale")||"en",l=Wt(o.decrypt(t));try{const e=Ru(l,u),t=Nu.fromMnemonic(e,null,u).derivePath(a);if(t.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=t.mnemonic}catch(e){if(e.code!==Gt.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Yu(s)}function Zu(e,t,r,n,i){return Wt(pu(e,t,r,n,i))}function $u(e,t,r,n,i){return Promise.resolve(Zu(e,t,r,n,i))}function el(e,t,r,n,i){const o=Lu(t),s=Uu(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return Qu.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=Bu(Uu(e,"crypto/kdfparams/salt")),a=parseInt(Uu(e,"crypto/kdfparams/n")),u=parseInt(Uu(e,"crypto/kdfparams/r")),l=parseInt(Uu(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(Uu(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=Bu(Uu(e,"crypto/kdfparams/salt"));let i=null;const s=Uu(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(Uu(e,"crypto/kdfparams/c")),u=parseInt(Uu(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return Qu.throwArgumentError("unsupported key-derivation function","kdf",s)}var tl=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const rl=new Gt("wallet/5.8.0");class nl extends a.Signer{constructor(e,t){if(super(),null!=(r=e)&&Yt(r.privateKey,32)&&null!=r.address){const t=new ra(e.privateKey);if(Mr(this,"_signingKey",()=>t),Mr(this,"address",ca(this.publicKey)),this.address!==ri(e.address)&&rl.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Mr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||_u,locale:t.locale||"en"}));const r=this.mnemonic;ca(Nu.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&rl.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Mr(this,"_mnemonic",()=>null)}else{if(ra.isSigningKey(e))"secp256k1"!==e.curve&&rl.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Mr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new ra(e);Mr(this,"_signingKey",()=>t)}Mr(this,"_mnemonic",()=>null),Mr(this,"address",ca(this.publicKey))}var r;t&&!Vr.isProvider(t)&&rl.throwArgumentError("invalid provider","provider",t),Mr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new nl(this,e)}signTransaction(e){return Or(e).then(t=>{null!=t.from&&(ri(t.from)!==this.address&&rl.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(ln(ba(t)));return ba(t,r)})}signMessage(e){return tl(this,void 0,void 0,function*(){return or(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=yn(e)),ln(Qt([yn("Ethereum Signed Message:\n"),yn(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return tl(this,void 0,void 0,function*(){const n=yield bi.resolveNames(e,t,r,e=>(null==this.provider&&rl.throwError("cannot resolve ENS names without a provider",Gt.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return or(this._signingKey().signDigest(bi.hash(n.domain,t,n.value)))})}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(ri(e.address)!==ca(e.privateKey))throw new Error("address/privateKey mismatch");if(Ju(e)){const t=e.mnemonic;if(Nu.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||_u).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const i=Wt(e.privateKey),o=Lu(t);let s=null,a=null,u=null;if(Ju(e)){const t=e.mnemonic;s=Wt(Mu(t.phrase,t.locale||"en")),a=t.path||_u,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Wt(r.salt):uu(32);let d=null;if(r.iv){if(d=Wt(r.iv),16!==d.length)throw new Error("invalid iv")}else d=uu(16);let h=null;if(r.uuid){if(h=Wt(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=uu(16);let p=1<<17,f=8,m=1;return r.scrypt&&(r.scrypt.N&&(p=r.scrypt.N),r.scrypt.r&&(f=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),Wu.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Wt(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new Ou.Counter(d),g=Wt(new Ou.ModeOfOperation.ctr(r,y).encrypt(i)),b=ln(Qt([n,g])),v={address:e.address.substring(2).toLowerCase(),id:Gu(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Zt(d).substring(2)},ciphertext:Zt(g).substring(2),kdf:"scrypt",kdfparams:{salt:Zt(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=uu(16),t=new Ou.Counter(e),r=Wt(new Ou.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+Fu(n.getUTCMonth()+1,2)+"-"+Fu(n.getUTCDate(),2)+"T"+Fu(n.getUTCHours(),2)+"-"+Fu(n.getUTCMinutes(),2)+"-"+Fu(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Zt(e).substring(2),mnemonicCiphertext:Zt(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=uu(16);e||(e={}),e.extraEntropy&&(t=Wt(er(ln(Qt([t,e.extraEntropy])),0,16)));const r=Ru(t,e.locale);return nl.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(Vu(e)){r&&r(0);const n=qu(e,t);return r&&r(1),Promise.resolve(n)}return zu(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return Xu(n,yield el(n,t,$u,Wu.scrypt,r))},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(o.next(e))}catch(e){t(e)}}function s(e){try{a(o.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,s)}a((o=o.apply(n,[])).next())});var n,i,o}(e,t,r):Promise.reject(new Error("invalid JSON wallet"))}(e,t,r).then(e=>new nl(e))}static fromEncryptedJsonSync(e,t){return new nl(function(e,t){if(Vu(e))return qu(e,t);if(zu(e))return function(e,t){const r=JSON.parse(e);return Xu(r,el(r,t,Zu,Wu.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=_u),new nl(Nu.fromMnemonic(e,null,r).derivePath(t))}}function il(e){return"string"==typeof e?new nl(e):"request"in e||"send"in e?new hu(e).getSigner():e}const ol=function(e,t,r){try{function n(n){return Promise.resolve(sl(e,{chainId:e.chainId,appCode:e.appCode,account:n},t,r)).then(function(e){return{result:{...e.result,signer:i},orderBookApi:e.orderBookApi}})}const i=il(e.signer),o=e.owner;return Promise.resolve(o?n(o):Promise.resolve(i.getAddress()).then(n))}catch(s){return Promise.reject(s)}},sl=function(e,t,r,n){try{const{appCode:i,chainId:o,account:a}=t,u=mt(e),l=u?{...e,...bt(o,e)}:e,{sellToken:c,sellTokenDecimals:d,buyToken:h,buyTokenDecimals:p,amount:f,kind:m,partnerFee:y,validFor:b=Je,slippageBps:v=Ye,env:A="prod"}=l;ve(`Swap ${f} ${c} for ${h} on chain ${o}`);const w=n||new Ce({chainId:o,env:A}),T=l.receiver||a,E="sell"===m;return ve("Building app data..."),Promise.resolve(St({slippageBps:v,orderClass:"market",appCode:i,partnerFee:y},r?.appData)).then(function(e){const{appDataKeccak256:t,fullAppData:n}=e;ve(`App data: appDataKeccak256=${t} fullAppData=${n}`);const i={from:a,sellToken:c,buyToken:h,receiver:T,validFor:b,appData:n,appDataHash:t,priceQuality:exports.PriceQuality.OPTIMAL,signingScheme:exports.SigningScheme.EIP712,...u?al:{},...E?{kind:exports.OrderQuoteSideKindSell.SELL,sellAmountBeforeFee:f}:{kind:exports.OrderQuoteSideKindBuy.BUY,buyAmountAfterFee:f},...r?.quoteRequest};return ve("Getting quote..."),Promise.resolve(w.getQuote(i)).then(function(t){const r=ze({orderParams:t.quote,slippagePercentBps:v,partnerFeeBps:y?.bps,sellDecimals:d,buyDecimals:p}),n=rt({from:a,networkCostsAmount:t.quote.feeAmount},ft(l,t),e.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(tt.getDomain(e)).then(function(e){return{domain:e,primaryType:g,types:{[g]:s.ORDER_TYPE_FIELDS,EIP712Domain:xt},message:t}})}catch(e){return Promise.reject(e)}}(o,n)).then(function(i){return{result:{tradeParameters:l,amountsAndCosts:r,orderToSign:n,quoteResponse:t,appDataInfo:e,orderTypedData:i},orderBookApi:w}})})})}catch(e){return Promise.reject(e)}},al={signingScheme:exports.SigningScheme.EIP1271,onchainOrder:!0,verificationGasLimit:0},ul=function({orderBookApi:e,result:{signer:t,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{function s(r){const i=u?.metadata?.quote?.slippageBips,s=u?.metadata?.partnerFee;return void 0!==i&&(a.slippageBps=i),s&&(a.partnerFee=s),wt(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=ft(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(Tt(r.doc,u)).then(s):s(r))}catch(l){return Promise.reject(l)}},ll=function(e,t,r){try{return Promise.resolve(ol(e,t,r)).then(function(e){return ul(e,t)})}catch(e){return Promise.reject(e)}},cl=function(e,t,r){try{const n=t?.appData?.metadata?.quote?.slippageBips,i=t?.appData?.metadata?.partnerFee;void 0!==n&&(e.slippageBps=n),i&&(e.partnerFee=i),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:s,sellToken:a,buyToken:u,sellAmount:l,buyAmount:c,partnerFee:d}=e;ve(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=il(e.signer),p=r||new Ce({chainId:s,env:e.env});return ve("Building app data..."),Promise.resolve(St({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return wt(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},dl=function(e,t,r,n){try{const i=pt.connect(r,e),o=ue[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),$e))).then(function(e){return{data:s,gasLimit:"0x"+yt(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class hl{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Ae(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(ol(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:r=>ul({...t,result:{...t.result,tradeParameters:gt({quoteParameters:t.result.tradeParameters,orderParameters:e})}},r)}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(ol(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(ll(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(cl(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(ol(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return At(r.orderBookApi,r.result.signer,r.result.appDataInfo,ft(gt({quoteParameters:n,orderParameters:e}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=il(t.signer);return Promise.resolve(dl(r,t.chainId,e.account,e.orderId))}catch(e){return Promise.reject(e)}}mergeParams(e){const{chainId:t,signer:r,appCode:n,env:i}=e,o={chainId:t||this.traderParams.chainId,signer:r||this.traderParams.signer,appCode:n||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===pl(e).length}(e))throw new Error("Missing trader parameters: "+pl(e).join(", "))}(o),{...e,...o}}}function pl(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const fl=new Gt("units/5.8.0"),ml=["wei","kwei","mwei","gwei","szabo","finney","ether"],yl="abi/5.8.0",gl=new Gt(yl),bl={};let vl={calldata:!0,memory:!0,storage:!0},Al={calldata:!0,memory:!0};function wl(e,t){if("bytes"===e||"string"===e){if(vl[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Al[t])return!0;return(vl[t]||"payable"===t)&&gl.throwArgumentError("invalid modifier","name",t),!1}function Tl(e,t){for(let r in t)Mr(e,r,t[r])}const El=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Sl=new RegExp(/^(.*)\[([0-9]*)\]$/);class Il{constructor(e,t){e!==bl&&gl.throwError("use fromString",Gt.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Tl(this,t);let r=this.type.match(Sl);Tl(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:Il.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=El.sighash),El[e]||gl.throwArgumentError("invalid format type","format",e),e===El.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==El.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===El.full?", ":",")+")"):t+=this.type,e!==El.sighash&&(!0===this.indexed&&(t+=" indexed"),e===El.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Il.fromString(e,t):Il.fromObject(e)}static fromObject(e){return Il.isParamType(e)?e:new Il(bl,{name:e.name||null,type:Bl(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Il.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){gl.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let o={type:"",name:"",state:{allowType:!0}},s=o;for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"(":s.state.allowType&&""===s.type?s.type="tuple":s.state.allowParams||n(r),s.state.allowType=!1,s.type=Bl(s.type),s.components=[i(s)],s=s.components[0];break;case")":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),wl(s.type,s.name)&&(s.name=""),s.type=Bl(s.type);let e=s;s=s.parent,s||n(r),delete e.parent,s.state.allowParams=!1,s.state.allowName=!0,s.state.allowArray=!0;break;case",":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),wl(s.type,s.name)&&(s.name=""),s.type=Bl(s.type);let a=i(s.parent);s.parent.components.push(a),delete s.parent,s=a;break;case" ":s.state.allowType&&""!==s.type&&(s.type=Bl(s.type),delete s.state.allowType,s.state.allowName=!0,s.state.allowParams=!0),s.state.allowName&&""!==s.name&&("indexed"===s.name?(t||n(r),s.indexed&&n(r),s.indexed=!0,s.name=""):wl(s.type,s.name)?s.name="":s.state.allowName=!1);break;case"[":s.state.allowArray||n(r),s.type+=o,s.state.allowArray=!1,s.state.allowName=!1,s.state.readArray=!0;break;case"]":s.state.readArray||n(r),s.type+=o,s.state.readArray=!1,s.state.allowArray=!0,s.state.allowName=!0;break;default:s.state.allowType?(s.type+=o,s.state.allowParams=!0,s.state.allowArray=!0):s.state.allowName?(s.name+=o,delete s.state.allowArray):s.state.readArray?s.type+=o:n(r)}}return s.parent&&gl.throwArgumentError("unexpected eof","param",e),delete o.state,"indexed"===s.name?(t||n(r.length-7),s.indexed&&n(r.length-7),s.indexed=!0,s.name=""):wl(s.type,s.name)&&(s.name=""),o.type=Bl(o.type),o}(e,!!t),Il.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function xl(e,t){return function(e){e=e.trim();let t=[],r="",n=0;for(let i=0;i<e.length;i++){let o=e[i];","===o&&0===n?(t.push(r),r=""):(r+=o,"("===o?n++:")"===o&&(n--,-1===n&&gl.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>Il.fromString(e,t))}class Cl{constructor(e,t){e!==bl&&gl.throwError("use a static from method",Gt.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Tl(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return Cl.isFragment(e)?e:"string"==typeof e?Cl.fromString(e):Cl.fromObject(e)}static fromObject(e){if(Cl.isFragment(e))return e;switch(e.type){case"function":return Rl.fromObject(e);case"event":return kl.fromObject(e);case"constructor":return Ml.fromObject(e);case"error":return Dl.fromObject(e);case"fallback":case"receive":return null}return gl.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?kl.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Rl.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Ml.fromString(e.trim()):"error"===e.split(" ")[0]?Dl.fromString(e.substring(5).trim()):gl.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class kl extends Cl{format(e){if(e||(e=El.sighash),El[e]||gl.throwArgumentError("invalid format type","format",e),e===El.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==El.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===El.full?", ":",")+") ",e!==El.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?kl.fromString(e):kl.fromObject(e)}static fromObject(e){if(kl.isEventFragment(e))return e;"event"!==e.type&&gl.throwArgumentError("invalid event object","value",e);const t={name:Ll(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Il.fromObject):[],type:"event"};return new kl(bl,t)}static fromString(e){let t=e.match(Ul);t||gl.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:gl.warn("unknown modifier: "+e)}}),kl.fromObject({name:t[1].trim(),anonymous:r,inputs:xl(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Pl(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&gl.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||gl.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=hr.from(r[1]),r[0]):e}function _l(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function Nl(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&gl.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&gl.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||gl.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&gl.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&gl.throwArgumentError("unable to determine stateMutability","value",e),t}class Ml extends Cl{format(e){if(e||(e=El.sighash),El[e]||gl.throwArgumentError("invalid format type","format",e),e===El.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===El.sighash&&gl.throwError("cannot format a constructor for sighash",Gt.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===El.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Ml.fromString(e):Ml.fromObject(e)}static fromObject(e){if(Ml.isConstructorFragment(e))return e;"constructor"!==e.type&&gl.throwArgumentError("invalid constructor object","value",e);let t=Nl(e);t.constant&&gl.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Il.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?hr.from(e.gas):null};return new Ml(bl,r)}static fromString(e){let t={type:"constructor"},r=(e=Pl(e,t)).match(Ul);return r&&"constructor"===r[1].trim()||gl.throwArgumentError("invalid constructor string","value",e),t.inputs=xl(r[2].trim(),!1),_l(r[3].trim(),t),Ml.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class Rl extends Ml{format(e){if(e||(e=El.sighash),El[e]||gl.throwArgumentError("invalid format type","format",e),e===El.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==El.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===El.full?", ":",")+") ",e!==El.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?Rl.fromString(e):Rl.fromObject(e)}static fromObject(e){if(Rl.isFunctionFragment(e))return e;"function"!==e.type&&gl.throwArgumentError("invalid function object","value",e);let t=Nl(e);const r={type:e.type,name:Ll(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Il.fromObject):[],outputs:e.outputs?e.outputs.map(Il.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?hr.from(e.gas):null};return new Rl(bl,r)}static fromString(e){let t={type:"function"},r=(e=Pl(e,t)).split(" returns ");r.length>2&&gl.throwArgumentError("invalid function string","value",e);let n=r[0].match(Ul);if(n||gl.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&Ll(t.name),t.inputs=xl(n[2],!1),_l(n[3].trim(),t),r.length>1){let n=r[1].match(Ul);""==n[1].trim()&&""==n[3].trim()||gl.throwArgumentError("unexpected tokens","value",e),t.outputs=xl(n[2],!1)}else t.outputs=[];return Rl.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Ol(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||gl.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class Dl extends Cl{format(e){if(e||(e=El.sighash),El[e]||gl.throwArgumentError("invalid format type","format",e),e===El.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==El.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===El.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?Dl.fromString(e):Dl.fromObject(e)}static fromObject(e){if(Dl.isErrorFragment(e))return e;"error"!==e.type&&gl.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Ll(e.name),inputs:e.inputs?e.inputs.map(Il.fromObject):[]};return Ol(new Dl(bl,t))}static fromString(e){let t={type:"error"},r=e.match(Ul);return r||gl.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&Ll(t.name),t.inputs=xl(r[2],!1),Ol(Dl.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Bl(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Fl=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Ll(e){return e&&e.match(Fl)||gl.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Ul=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),Gl=new Gt(yl);class Hl{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){Gl.throwArgumentError(e,this.localName,t)}}class jl{constructor(e){Mr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return tr(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Qt(e._data))}writeBytes(e){let t=Wt(e);const r=t.length%this.wordSize;return r&&(t=Qt([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Wt(hr.from(e));return t.length>this.wordSize&&Gl.throwError("value out-of-bounds",Gt.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Qt([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class ql{constructor(e,t,r,n){Mr(this,"_data",Wt(e)),Mr(this,"wordSize",t||32),Mr(this,"_coerceFunc",r),Mr(this,"allowLoose",n),this._offset=0}get data(){return Zt(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):ql.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:Gl.throwError("data out-of-bounds",Gt.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new ql(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return hr.from(this.readBytes(this.wordSize))}}class Vl extends Hl{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=ri(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return ri(nr(e.readValue().toHexString(),20))}}class zl extends Hl{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Kl=new Gt(yl);function Wl(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{const n=t.localName;return n||Kl.throwError("cannot encode object for signature with missing names",Gt.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Kl.throwError("cannot encode object for signature with duplicate names",Gt.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else Kl.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Kl.throwArgumentError("types/value length mismatch","tuple",r);let i=new jl(e.wordSize),o=new jl(e.wordSize),s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=o.length;e.encode(o,r);let n=i.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(i,r)}),s.forEach(e=>{e(i.length)});let a=e.appendWriter(i);return a+=e.appendWriter(o),a}function Ql(e,t){let r=[],n=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readValue(),o=n.subReader(r.toNumber());try{i=t.decode(o)}catch(e){if(e.code===Gt.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Gt.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)});const i=t.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});t.forEach((e,t)=>{let n=e.localName;if(!n||1!==i[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const o=r[t];o instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw o}}):r[n]=o});for(let e=0;e<r.length;e++){const t=r[e];t instanceof Error&&Object.defineProperty(r,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(r)}class Jl extends Hl{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),Kl.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));let n=[];for(let e=0;e<t.length;e++)n.push(this.coder);return Wl(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Kl.throwError("insufficient data length",Gt.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new zl(this.coder));return e.coerce(this.name,Ql(e,r))}}class Yl extends Hl{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Xl extends Hl{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Wt(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Zl extends Xl{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Zt(super.decode(e)))}}class $l extends Hl{constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=Wt(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Zt(e.readBytes(this.size)))}}class ec extends Hl{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class tc extends Hl{constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let r=hr.from(t),n=sn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(on).mul(rn)))&&this._throwError("value out-of-bounds",t)}else(r.lt(nn)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class rc extends Xl{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,yn(t))}decode(e){return gn(super.decode(e))}}class nc extends Hl{constructor(e,t){let r=!1;const n=[];e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[n]))}),Object.freeze(e)}encode(e,t){return Wl(e,this.coders,t)}decode(e){return e.coerce(this.name,Ql(e,this.coders))}}const ic=new Gt(yl),oc=new RegExp(/^bytes([0-9]*)$/),sc=new RegExp(/^(u?int)([0-9]*)$/),ac=new class{constructor(e){Mr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Vl(e.name);case"bool":return new Yl(e.name);case"string":return new rc(e.name);case"bytes":return new Zl(e.name);case"array":return new Jl(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new nc((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new ec(e.name)}let t=e.type.match(sc);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&ic.throwArgumentError("invalid "+t[1]+" bit length","param",e),new tc(r/8,"int"===t[1],e.name)}if(t=e.type.match(oc),t){let r=parseInt(t[1]);return(0===r||r>32)&&ic.throwArgumentError("invalid bytes length","param",e),new $l(r,e.name)}return ic.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new ql(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new jl(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(Il.from(e)));return new nc(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&ic.throwError("types/values length mismatch",Gt.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(Il.from(e))),n=new nc(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(Il.from(e)));return new nc(n,"_").decode(this._getReader(Wt(t),r))}},uc=new Gt(yl);class lc extends Hr{}class cc extends Hr{}class dc extends Hr{}class hc extends Hr{static isIndexed(e){return!(!e||!e._isIndexed)}}const pc={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function fc(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class mc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Mr(this,"fragments",t.map(e=>Cl.from(e)).filter(e=>null!=e)),Mr(this,"_abiCoder",Rr(new.target,"getAbiCoder")()),Mr(this,"functions",{}),Mr(this,"errors",{}),Mr(this,"events",{}),Mr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void uc.warn("duplicate definition - constructor"):void Mr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?uc.warn("duplicate definition - "+r):t[r]=e}),this.deploy||Mr(this,"deploy",Ml.from({payable:!1,type:"constructor"})),Mr(this,"_isInterface",!0)}format(e){e||(e=El.full),e===El.sighash&&uc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===El.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return ac}static getAddress(e){return ri(e)}static getSighash(e){return er(bn(e.format()),0,4)}static getEventTopic(e){return bn(e.format())}getFunction(e){if(Yt(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];uc.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===r.length?uc.throwArgumentError("no matching function","name",t):r.length>1&&uc.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[Rl.fromString(e).format()];return t||uc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Yt(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];uc.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===r.length?uc.throwArgumentError("no matching event","name",t):r.length>1&&uc.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[kl.fromString(e).format()];return t||uc.throwArgumentError("no matching event","signature",e),t}getError(e){if(Yt(e)){const t=Rr(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];uc.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===r.length?uc.throwArgumentError("no matching error","name",t):r.length>1&&uc.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[Rl.fromString(e).format()];return t||uc.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Rr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Rr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=Wt(t);return Zt(r.slice(0,4))!==this.getSighash(e)&&uc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Zt(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Zt(Qt([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Wt(t);return Zt(r.slice(0,4))!==this.getSighash(e)&&uc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Zt(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Zt(Qt([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Wt(t),n=null,i="",o=null,s=null,a=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=Zt(r.slice(0,4)),t=pc[e];if(t)o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.signature,t.reason&&(n=o[0]),"Error"===s?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===s&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.format()}catch(e){}break}}return uc.throwError("call revert exception"+i,Gt.errors.CALL_EXCEPTION,{method:e.format(),data:Zt(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Zt(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&uc.throwError("too many arguments for "+e.format(),Gt.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?bn(t):"bytes"===e.type?ln(Zt(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=hr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),nr(Zt(t),32));for(t.forEach((t,i)=>{let o=e.inputs[i];o.indexed?null==t?r.push(null):"array"===o.baseType||"tuple"===o.baseType?uc.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?r.push(t.map(e=>n(o,e))):r.push(n(o,t)):null!=t&&uc.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],i=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&uc.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,o)=>{const s=t[o];if(e.indexed)if("string"===e.type)r.push(bn(s));else if("bytes"===e.type)r.push(ln(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[s]))}else n.push(e),i.push(s)}),{data:this._abiCoder.encode(n,i),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);Yt(r[0],32)&&r[0].toLowerCase()===t||uc.throwError("fragment/topic mismatch",Gt.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],i=[],o=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(Il.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(n.push(e),o.push(!1)):(i.push(e),o.push(!1))});let s=null!=r?this._abiCoder.decode(n,Qt(r)):null,a=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==s)u[t]=new hc({_isIndexed:!0,hash:null});else if(o[t])u[t]=new hc({_isIndexed:!0,hash:s[c++]});else try{u[t]=s[c++]}catch(e){u[t]=e}else try{u[t]=a[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw fc(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw fc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new cc({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:hr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new lc({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Zt(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new dc({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var yc=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const gc=new Gt("contracts/5.8.0");function bc(e,t){return yc(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&gc.throwArgumentError("invalid address or ENS name","name",r);try{return ri(r)}catch(e){}e||gc.throwError("a provider or signer is needed to resolve ENS names",Gt.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&gc.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function vc(e,t,r){return yc(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>vc(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield bc(e,t):"tuple"===r.type?yield vc(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>vc(e,t,r.arrayChildren))):Promise.reject(gc.makeError("invalid value for array",Gt.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Ac(e,t,r){return yc(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=Br(r.pop())),gc.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?Or({override:bc(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>yc(this,void 0,void 0,function*(){return ri(e.signer)!==e.override&&gc.throwError("Contract with a Signer cannot override from",Gt.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=bc(e.provider,n.from));const i=yield Or({args:vc(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:Or(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=hr.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=hr.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=hr.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=hr.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=hr.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=fa(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Wt(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=hr.from(t.gas).add(e)}if(a.value){const e=hr.from(a.value);e.isZero()||t.payable||gc.throwError("non-payable method cannot override value",Gt.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=Br(a.customData)),a.ccipReadEnabled&&(s.ccipReadEnabled=!!a.ccipReadEnabled),delete n.nonce,delete n.gasLimit,delete n.gasPrice,delete n.from,delete n.value,delete n.type,delete n.accessList,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.customData,delete n.ccipReadEnabled;const u=Object.keys(n).filter(e=>null!=n[e]);return u.length&&gc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,Gt.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function wc(e,t,r){const n=e.signer||e.provider;return function(...i){return yc(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Br(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const s=yield Ac(e,t,i),a=yield n.call(s,o);try{let n=e.interface.decodeFunctionResult(t,a);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===Gt.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function Tc(e,t,r){return t.constant?wc(e,t,r):function(e,t){return function(...r){return yc(this,void 0,void 0,function*(){e.signer||gc.throwError("sending a transaction requires a signer",Gt.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield Ac(e,t,r),i=yield e.signer.sendTransaction(n);return function(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then(t=>(t.events=t.logs.map(r=>{let n=Gr(r),i=null;try{i=e.interface.parseLog(r)}catch(e){}return i&&(n.args=i.args,n.decode=(t,r)=>e.interface.decodeEventLog(i.eventFragment,t,r),n.event=i.name,n.eventSignature=i.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n}),t))}(e,i),i})}}(e,t)}function Ec(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class Sc{constructor(e,t){Mr(this,"tag",e),Mr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(r=>!(!t&&r.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const r=e.slice();return setTimeout(()=>{t.listener.apply(this,r)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class Ic extends Sc{constructor(){super("error",null)}}class xc extends Sc{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&gc.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(Ec(i),i),Mr(this,"address",e),Mr(this,"interface",t),Mr(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let i in n){const o=e.slice();o.push(i);try{r(o,n[i])}catch(e){t.push({path:o,error:e})}}};return r([],e),t}(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class Cc extends Sc{constructor(e,t){super("*",{address:e}),Mr(this,"address",e),Mr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class kc{constructor(e,t,r){Mr(this,"interface",Rr(new.target,"getInterface")(t)),null==r?(Mr(this,"provider",null),Mr(this,"signer",null)):a.Signer.isSigner(r)?(Mr(this,"provider",r.provider||null),Mr(this,"signer",r)):Vr.isProvider(r)?(Mr(this,"provider",r),Mr(this,"signer",null)):gc.throwArgumentError("invalid signer or provider","signerOrProvider",r),Mr(this,"callStatic",{}),Mr(this,"estimateGas",{}),Mr(this,"functions",{}),Mr(this,"populateTransaction",{}),Mr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];Mr(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)})),e[r.name]||(e[r.name]=[]),e[r.name].push(t)}),Object.keys(e).forEach(t=>{const r=e[t];1===r.length?Mr(this.filters,t,this.filters[r[0]]):gc.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(Mr(this,"_runningEvents",{}),Mr(this,"_wrappedEmits",{}),null==e&&gc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Mr(this,"address",e),this.provider)Mr(this,"resolvedAddress",bc(this.provider,e));else try{Mr(this,"resolvedAddress",Promise.resolve(ri(e)))}catch(e){gc.throwError("provider is required to use ENS name as contract address",Gt.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const n={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])gc.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&Mr(this,e,Tc(this,t,!0)),null==this.functions[e]&&Mr(this.functions,e,Tc(this,t,!1)),null==this.callStatic[e]&&Mr(this.callStatic,e,wc(this,t,!0)),null==this.populateTransaction[e]&&Mr(this.populateTransaction,e,function(e,t){return function(...r){return Ac(e,t,r)}}(this,t)),null==this.estimateGas[e]&&Mr(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return yc(this,void 0,void 0,function*(){r||gc.throwError("estimate require a provider or signer",Gt.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Ac(e,t,n);return yield r.estimateGas(i)})}}(this,t))}}),Object.keys(n).forEach(e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&Mr(this,e,this[r])}catch(e){}null==this.functions[e]&&Mr(this.functions,e,this.functions[r]),null==this.callStatic[e]&&Mr(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&Mr(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&Mr(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return ni(e)}static getInterface(e){return mc.isInterface(e)?e:new mc(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&gc.throwError("contract not deployed",Gt.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||gc.throwError("sending a transactions require a signer",Gt.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Br(e||{});return["from","to"].forEach(function(e){null!=t[e]&&gc.throwError("cannot override "+e,Gt.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new a.VoidSigner(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Mr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return hc.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Ic);if("event"===e)return this._normalizeRunningEvent(new Sc("event",null));if("*"===e)return this._normalizeRunningEvent(new Cc(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new xc(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new xc(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Sc(Ec(t),t))}return this._normalizeRunningEvent(new Cc(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=Gr(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||gc.throwError("events require a provider or a signer with a provider",Gt.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),i=Br(n.filter);return"string"==typeof t&&Yt(t,32)?(null!=r&&gc.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=r?r:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(n,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class Pc extends kc{}const _c=["function decimals() external view returns (uint8)"],Nc=`${M}/src/bridging/providers`,Mc={to:"0x0000000000000000000000000000000000000001",data:"0x0",value:BigInt(0)},Rc=[{chainId:exports.SupportedChainId.MAINNET,address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"USD Coin",symbol:"USDC",decimals:6},{chainId:exports.SupportedChainId.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",logoUrl:"https://swap.cow.fi/assets/network-gnosis-chain-logo-Do_DEWQv.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18},{chainId:exports.SupportedChainId.SEPOLIA,address:"0x0625aFB445C3B6B7B929342a04A22599fd5dBB59",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"CoW Protocol Token",symbol:"COW",decimals:18},{chainId:exports.AdditionalTargetChainId.OPTIMISM,address:"0x4200000000000000000000000000000000000006",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18}],Oc={[exports.SupportedChainId.MAINNET]:["0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aB"],[exports.AdditionalTargetChainId.OPTIMISM]:["0x68f180fcCe6836688e9084f035309E29Bf0A2095"],[exports.SupportedChainId.SEPOLIA]:["0xB4F1737Af37711e9A5890D9510c9bB60e170CB0D"]},Dc=[{chainId:exports.SupportedChainId.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:exports.AdditionalTargetChainId.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:exports.SupportedChainId.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:exports.SupportedChainId.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:exports.AdditionalTargetChainId.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});class Bc{constructor(e={}){this.options=void 0,this.options=e}getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:r,destinationToken:n}){try{const i=this,o={};return e&&(o.originChainId=e),t&&(o.originToken=t),r&&(o.destinationChainId=r),n&&(o.destinationToken=n),Promise.resolve(i.fetchApi("/available-routes",o,Uc))}catch(e){return Promise.reject(e)}}getSuggestedFees(e){try{const t=this,r={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(r.recipient=e.recipient),Promise.resolve(t.fetchApi("/suggested-fees",r,Fc))}catch(e){return Promise.reject(e)}}fetchApi(e,t,r){try{const n=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;return ve(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET",headers:{"Content-Type":"application/json"}})).then(function(t){let n;function i(i){return n?i:Promise.resolve(t.json()).then(function(t){if(r){if(r(t))return t;throw new Error(`Invalid response for Across API call ${e}. The response doesn't pass the validation. Did the API change? Result: ${JSON.stringify(t)}`)}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.text()).then(function(e){throw new Error(`HTTP error! Status: ${t.status}, Body: ${e}`)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function Fc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&Lc(e.totalRelayFee)&&"relayerCapitalFee"in e&&Lc(e.relayerCapitalFee)&&"relayerGasFee"in e&&Lc(e.relayerGasFee)&&"lpFee"in e&&Lc(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function Lc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Uc(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Gc=10n**18n;function Hc(e){return Dc[e]}function jc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=Ke(n,i),a=s.big,u=Ke(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=Vc(u,l),d=a-Vc(a,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:a,buyAmount:u},afterFee:{sellAmount:a,buyAmount:c},afterSlippage:{sellAmount:a,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,qc(f),Number(10000n*f/Gc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function qc(e){if(e>Gc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Vc(e,t){return qc(t),e*(Gc-t)/Gc}let zc;function Kc(e,t,r){if(!e.s){if(r instanceof Wc){if(!r.s)return void(r.o=Kc.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(Kc.bind(null,e,t),Kc.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const Wc=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,r){const n=new e,i=this.s;if(i){const e=1&i?t:r;if(e){try{Kc(n,1,e(this.v))}catch(e){Kc(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?Kc(n,1,t?t(i):i):r?Kc(n,1,r(i)):Kc(n,2,i)}catch(e){Kc(n,2,e)}},n},e}(),Qc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Jc{constructor(e,t){this.chainId=void 0,this.customOptions=void 0,this.chainId=e,this.customOptions=t}proxyOf(e){const t=i.defaultAbiCoder.encode(["address"],[e]),r=i.solidityKeccak256(["bytes","bytes"],[this.proxyCreationCode(),i.defaultAbiCoder.encode(["address","address"],[this.getImplementationAddress(),e])]);return i.getCreate2Address(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(zc||(zc=ot.createInterface()),zc).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,o){try{const a=this;return Promise.resolve(n.getAddress()).then(function(u){const l=a.proxyOf(u),{domain:c,types:d,message:h}=a.infoToSign(e,t,r,l);return Promise.resolve(function(e,t,r,n,o){try{let a,u;function l(e){return a?e:i.joinSignature(i.splitSignature(c))}let c=null;const d=function(e,t){var r,n=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var s=o();if(s&&s.then)break e;if(s===e){n=i;break}}else n=i}if(-1!==n){do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then){r=!0;break e}var l=t[n][2];n++}while(l&&!l());return u}}const c=new Wc,d=Kc.bind(null,c,2);return(r?u.then(h):s.then(function r(s){for(;;){if(s===e){n=i;break}if(++i===t.length){if(-1!==n)break;return void Kc(c,1,u)}if(o=t[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,d)}else n=i}do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then)return void u.then(h).then(void 0,d);var l=t[n][2];n++}while(l&&!l());Kc(c,1,u)})).then(void 0,d),c;function h(e){for(;;){var r=t[n][2];if(!r||r())break;n++;for(var i=t[n][1];!i;)n++,i=t[n][1];if((e=i())&&e.then)return void e.then(h).then(void 0,d)}Kc(c,1,e)}}(e,[[function(){return s.SigningScheme.EIP712},function(){if(!s.isTypedDataSigner(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,o)).then(function(e){c=e,u=1})}],[function(){return s.SigningScheme.ETHSIGN},function(){return Promise.resolve(t.signMessage(i.arrayify(s.hashTypedData(r,n,o)))).then(function(e){c=e,u=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(d&&d.then?d.then(l):l(d))}catch(h){return Promise.reject(h)}}(o,n,c,d,h))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,r,n){const i={calls:e,nonce:t,deadline:r};return{domain:this.getDomain(n),types:Qc,message:i}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033"}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:se}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:ae}}const Yc=sn.toBigInt();class Xc{constructor(e={}){this.options=void 0,this.hooksCache=new Map,this.options=e}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=Xc.getNonce(),deadline:i=Yc,defaultGasLimit:o,signingScheme:a=s.SigningScheme.EIP712}){try{const s=this,u=s.getCowShedHooks(r),l=t||s.options?.signer;if(!l)throw new Error("Signer is required");const c=il(l);return Promise.resolve(c.getAddress()).then(function(t){const r=u.proxyOf(t);return Promise.resolve(u.signCalls(e,n,i,c,a)).then(function(s){const a=u.encodeExecuteHooksForFactory(e,n,i,t,s),l={to:u.getFactoryAddress(),data:a,value:BigInt(0)};return Promise.resolve(c.estimateGas(l).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(l,Ee,2)}. Review the factory call`;if(o)return ve(`${t}, using the default gas limit.`),o;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(function(e){return{cowShedAccount:r,signedMulticall:l,gasLimit:BigInt(e.toString())}})})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new Jc(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return i.formatBytes32String(Date.now().toString())}}const Zc={[exports.SupportedChainId.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[exports.SupportedChainId.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[exports.SupportedChainId.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[exports.SupportedChainId.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[exports.SupportedChainId.GNOSIS_CHAIN]:void 0,[exports.AdditionalTargetChainId.POLYGON]:void 0,[exports.AdditionalTargetChainId.OPTIMISM]:void 0},$c={[exports.SupportedChainId.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[exports.SupportedChainId.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[exports.SupportedChainId.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[exports.SupportedChainId.GNOSIS_CHAIN]:void 0,[exports.SupportedChainId.SEPOLIA]:void 0,[exports.AdditionalTargetChainId.POLYGON]:void 0,[exports.AdditionalTargetChainId.OPTIMISM]:void 0};var ed;exports.WeirollCommandFlags=void 0,(ed=exports.WeirollCommandFlags||(exports.WeirollCommandFlags={}))[ed.DELEGATECALL=0]="DELEGATECALL",ed[ed.CALL=1]="CALL",ed[ed.STATICCALL=2]="STATICCALL",ed[ed.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",ed[ed.CALLTYPE_MASK=3]="CALLTYPE_MASK",ed[ed.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",ed[ed.TUPLE_RETURN=128]="TUPLE_RETURN";const td="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",rd=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function nd(e){const t=e.plan(),{commands:r,state:n}=t;return new mc(rd).encodeFunctionData("execute",[r,n])}function id(e){const t=new u.Planner;return e(t),{to:td,value:BigInt(0),data:nd(t)}}function od(e,t){return u.Contract.createContract(e,t)}const sd=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],ad=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],ud=["function balanceOf(address account) external view returns (uint256)"],ld=["function approve(address spender, uint256 amount) external returns (bool)"],cd=[D,Q,G,j,K],dd=l.gql`
|
|
2
2
|
query Totals {
|
|
3
3
|
totals {
|
|
4
4
|
tokens
|
|
@@ -11,19 +11,19 @@ require("cross-fetch/polyfill");var e,t=require("limiter"),r=require("exponentia
|
|
|
11
11
|
feesEth
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
`,
|
|
14
|
+
`,hd=l.gql`
|
|
15
15
|
query LastDaysVolume($days: Int!) {
|
|
16
16
|
dailyTotals(orderBy: timestamp, orderDirection: desc, first: $days) {
|
|
17
17
|
timestamp
|
|
18
18
|
volumeUsd
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
`,
|
|
21
|
+
`,pd=l.gql`
|
|
22
22
|
query LastHoursVolume($hours: Int!) {
|
|
23
23
|
hourlyTotals(orderBy: timestamp, orderDirection: desc, first: $hours) {
|
|
24
24
|
timestamp
|
|
25
25
|
volumeUsd
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
`,ld="https://api.thegraph.com/subgraphs/name/cowprotocol",cd={[exports.SupportedChainId.MAINNET]:ld+"/cow",[exports.SupportedChainId.GNOSIS_CHAIN]:ld+"/cow-gc",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null},dd={[exports.SupportedChainId.MAINNET]:ld+"/cow-staging",[exports.SupportedChainId.GNOSIS_CHAIN]:ld+"/cow-gc-staging",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null};var hd,pd;exports.ProofLocation=void 0,(hd=exports.ProofLocation||(exports.ProofLocation={}))[hd.PRIVATE=0]="PRIVATE",hd[hd.EMITTED=1]="EMITTED",hd[hd.SWARM=2]="SWARM",hd[hd.WAKU=3]="WAKU",hd[hd.RESERVED=4]="RESERVED",hd[hd.IPFS=5]="IPFS",exports.PollResultCode=void 0,(pd=exports.PollResultCode||(exports.PollResultCode={})).SUCCESS="SUCCESS",pd.UNEXPECTED_ERROR="UNEXPECTED_ERROR",pd.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",pd.TRY_ON_BLOCK="TRY_ON_BLOCK",pd.TRY_AT_EPOCH="TRY_AT_EPOCH",pd.DONT_TRY_AGAIN="DONT_TRY_AGAIN";const fd=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},md=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],yd=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],gd=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],bd=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],vd=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],Ad=["tuple(address handler, bytes32 salt, bytes staticInput)"];function wd(e){return n.utils.defaultAbiCoder.encode(Ad,[e])}function Td(e){const{handler:t,salt:r,staticInput:i}=n.utils.defaultAbiCoder.decode(Ad,e)[0];return{handler:t,salt:r,staticInput:i}}function Ed(e,t){try{n.utils.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}function Sd(e){return new Date(1e3*e).toISOString()}function Id(e){if(md.includes(e))return s.OrderBalance.ERC20;if(yd.includes(e))return s.OrderBalance.EXTERNAL;if(gd.includes(e))return s.OrderBalance.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function xd(e){if(bd.includes(e))return s.OrderKind.SELL;if(vd.includes(e))return s.OrderKind.BUY;throw new Error(`Unknown kind: ${e}`)}function Cd(e){const{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:xd(u.toString()),sellTokenBalance:Id(s.toString()),buyTokenBalance:Id(o.toString())}}function kd(e){return e.isValid}let Pd,_d;function Nd(){return Pd||(Pd=nt.createInterface()),Pd}function Md(e,t){return _d||(_d=nt.connect(ae[e],t)),_d}class Rd{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:r=n.utils.keccak256(n.utils.randomBytes(32)),data:i,hasOffChainInput:o=!1}=e;if(!n.ethers.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!n.ethers.utils.isHexString(r)||32!==n.ethers.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=t,this.salt=r,this.data=i,this.staticInput=this.transformDataToStruct(i),this.hasOffChainInput=o}get context(){}assertIsValid(){const e=this.isValid();if(!kd(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Nd(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?n.utils.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[r,e.address,i,!0])}return t.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),Nd().encodeFunctionData("remove",[this.id])}get id(){return n.utils.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:n.constants.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return n.utils.keccak256(wd(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return n.utils.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Md(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return kd(i)?Promise.resolve(t.pollValidate(e)).then(function(i){return i||Promise.resolve(t.isAuthorized(e)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,t.leaf,t.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(e,t,r){try{return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return d(require("@cowprotocol/contracts"))})).then(function({computeOrderUid:n}){return Promise.resolve(Xe.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,Cd(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(e){return o?e:{result:exports.PollResultCode.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){if(e)return o=1,e;const t={result:exports.PollResultCode.TRY_NEXT_BLOCK,reason:"Order already in orderbook"};return o=1,t})}();return u&&u.then?u.then(a):a(u)})})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(e){return a(e)}return u&&u.then?u.then(void 0,a):u}(0,function(e){return{result:exports.PollResultCode.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Md(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Md(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,r,i){try{const{handler:o,salt:s,staticInput:a}=Td(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=n.utils.defaultAbiCoder.decode(r,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Od=["address","bytes32","bytes"],Dd=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Bd{constructor(e,t,r,n=exports.ProofLocation.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=n,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!r||!t&&r)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const r=t[e];if(!Bd.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:r,root:i,location:o}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const r in t)if(t.hasOwnProperty(r)){const{orderType:n,...i}=t[r];if(!Bd.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Bd.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?n.BigNumber.from(t):t}),s=new Bd(t,r,i);return s.location=o,s}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const r=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[r.id]=r,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=c.StandardMerkleTree.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Od)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,r){try{const i=this;void 0===e&&(e=i.location);const o=function(){try{switch(e){case exports.ProofLocation.PRIVATE:return Promise.resolve("0x");case exports.ProofLocation.EMITTED:return Promise.resolve(i.encodeToABI(t));case exports.ProofLocation.SWARM:case exports.ProofLocation.WAKU:case exports.ProofLocation.IPFS:if(!r)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,n){try{var o=Promise.resolve(r(i.encodeToJSON(t)))}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(o().then(t=>{try{return n.utils.hexlify(n.utils.arrayify(t)),i.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,r,t.proof))}const s=Md(r,n);return Promise.resolve(i?Promise.resolve(i(e,t.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,r])=>e&&e(r)||void 0===e?{idx:t,value:r}:void 0).reduce((e,t)=>{if(t){const r={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:r})}return e},[])}encodeToABI(e){return n.utils.defaultAbiCoder.encode(Dd,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Bd.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Bd.orderTypeRegistry={}}}Bd.orderTypeRegistry={};const Fd="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Ld="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Ud=n.BigNumber.from(2).pow(32).sub(1),Gd=n.BigNumber.from(31536e3),Hd=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var jd,qd;exports.DurationType=void 0,(jd=exports.DurationType||(exports.DurationType={})).AUTO="AUTO",jd.LIMIT_DURATION="LIMIT_DURATION",exports.StartTimeValue=void 0,(qd=exports.StartTimeValue||(exports.StartTimeValue={})).AT_MINING_TIME="AT_MINING_TIME",qd.AT_EPOCH="AT_EPOCH";const Vd={startType:exports.StartTimeValue.AT_MINING_TIME},zd={durationType:exports.DurationType.AUTO};class Kd extends Rd{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Fd)throw new Error(`InvalidHandler: Expected: ${Fd}, provided: ${t}`);super({handler:Fd,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Kd({handler:Fd,data:e,salt:t})}static fromParams(e){return Kd.deserialize(wd(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Ld,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:r,buyAmount:i,startTime:o=Vd,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=zd}=this.data;if(e==r)return"InvalidSameToken";if(e==n.constants.AddressZero||r==n.constants.AddressZero)return"InvalidToken";if(!t.gt(n.constants.Zero))return"InvalidSellAmount";if(!i.gt(n.constants.Zero))return"InvalidMinBuyAmount";if(o.startType===exports.StartTimeValue.AT_EPOCH){const e=o.epoch;if(!e.gte(n.constants.Zero)||!e.lt(Ud))return"InvalidStartTime"}return s.gt(n.constants.One)&&s.lte(Ud)?a.gt(n.constants.Zero)&&a.lte(Gd)?u.durationType!==exports.DurationType.LIMIT_DURATION||u.duration.lte(a)?Ed(Hd,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:r}=t.data;return r?.startType===exports.StartTimeValue.AT_EPOCH?Promise.resolve(r.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=n.utils.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(Ud))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const r=t.toNumber();if(0===r)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return r})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===exports.DurationType.LIMIT_DURATION?e+t.sub(1).mul(r).add(n.duration).toNumber():e+t.mul(r).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(fd(e.provider)).then(function(r){const{blockInfo:n=r}=e,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>i)return{result:exports.PollResultCode.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Sd(e)})`};const r=t.endTimestamp(e);return i>=r?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Sd(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){return e?.message?.includes("Cabinet is not set")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${e?.message}. User likely removed the order.`}:e?.message?.includes("Cabinet epoch out of range")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${e?.message}`}:{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`Unexpected error: ${e.message}`,error:e}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(fd(r.provider)).then(function(t){const{blockInfo:n=t}=r,{blockTimestamp:i}=n,o=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(r)).then(function(e){if(i<e)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Sd(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Sd(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=e+(r+1)*o;return{result:exports.PollResultCode.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Sd(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return wd(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Hd,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Fd,Hd,(e,t)=>new Kd({handler:Fd,salt:t,data:Qd(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=Vd,timeBetweenParts:s,durationOfPart:a=zd,receiver:u,appData:l}=this.data,c=o.startType===exports.StartTimeValue.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===exports.DurationType.AUTO?"AUTO":a.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:c,timeBetweenParts:s.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return Wd(e)}transformStructToData(e){return Qd(e)}}function Wd(e){const{sellAmount:t,buyAmount:r,numberOfParts:i,startTime:o=Vd,timeBetweenParts:s,durationOfPart:a=zd,...u}=e,{partSellAmount:l,minPartLimit:c}=i&&!i.isZero()?{partSellAmount:t.div(i),minPartLimit:r.div(i)}:{partSellAmount:n.constants.Zero,minPartLimit:n.constants.Zero},d=a.durationType===exports.DurationType.AUTO?n.constants.Zero:a.duration;return{partSellAmount:l,minPartLimit:c,t0:o.startType===exports.StartTimeValue.AT_MINING_TIME?n.constants.Zero:o.epoch,n:i,t:s,span:d,...u}}function Qd(e){const{n:t,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:c}=e,d=s.isZero()?{durationType:exports.DurationType.AUTO}:{durationType:exports.DurationType.LIMIT_DURATION,duration:s},h=s.isZero()?{startType:exports.StartTimeValue.AT_MINING_TIME}:{startType:exports.StartTimeValue.AT_EPOCH,epoch:o};return{sellAmount:r.mul(t),buyAmount:n.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:a,buyToken:u,receiver:l,appData:c}}const Jd={[Fd]:e=>Kd.fromParams(e)};Object.defineProperty(exports,"WeirollContract",{enumerable:!0,get:function(){return u.Contract}}),Object.defineProperty(exports,"WeirollPlanner",{enumerable:!0,get:function(){return u.Planner}}),exports.ADDITIONAL_TARGET_CHAINS_MAP=J,exports.ALL_CHAINS=Y,exports.ALL_CHAINS_IDS=X,exports.ALL_SUPPORTED_CHAINS=W,exports.ALL_SUPPORTED_CHAINS_MAP=K,exports.ALL_SUPPORTED_CHAIN_IDS=Q,exports.AcrossBridgeProvider=class{constructor(e={}){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.info={name:"Across",logoUrl:`${xc}/across/across-logo.png`},this.options=e,this.api=new Nc(e.apiOptions),this.cowShedSdk=new Kc(e.cowShedOptions)}getNetworks(){return Promise.resolve(od)}getBuyTokens(e){try{const t=this;if(!t.options.getTokenInfos)throw new Error("'getTokenInfos' parameter is required for AcrossBridgeProvider constructor");const r=_c[e];if(!r)return Promise.resolve([]);const n=Object.values(r.tokens).filter(e=>Boolean(e));return Promise.resolve(t.options.getTokenInfos(e,n))}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{if(e.kind!==s.OrderKind.SELL)throw new Error("Only SELL is supported for now");const{sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o}=e,a=function(e,t){const r=Bc(e),n=Bc(t);if(r&&n)return{sourceChainConfig:r,targetChainConfig:n}}(n,i);if(!a)return Promise.resolve([]);const{sourceChainConfig:u,targetChainConfig:l}=a,c=(t=o,r=l,Object.keys(r.tokens).find(e=>r.tokens[e]===t));if(!c)return Promise.resolve([]);const d=function(e,t){return t.tokens[e]}(c,u);return Promise.resolve(d?[d]:[])}catch(e){return Promise.reject(e)}var t,r}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:a}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=a?a:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===s.OrderKind.SELL,amountsAndCosts:Fc(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),suggestedFees:r}}(e,0,t)})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){const{request:t,quote:r,cowShedSdk:n}=e,{sellTokenChainId:i,sellTokenAddress:o,buyTokenChainId:s,buyTokenAddress:a,account:u,receiver:l}=t,c=function(e){const t=Wc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return ed(new Sc(t,rd),exports.WeirollCommandFlags.CALL)}(i),d=function(e){const t=Qc[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return ed(new Sc(t,td),exports.WeirollCommandFlags.CALL)}(i),h=function(e){return ed(new Sc(e,nd),exports.WeirollCommandFlags.STATICCALL)}(o),p=function(e){return ed(new Sc(e,id),exports.WeirollCommandFlags.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return $c(e=>{const t=e.add(h.balanceOf(f)),r=BigInt(m.totalRelayFee.pct),n=e.add(d.multiplyAndSubtract(t,r));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,o,a,t,n,s,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){return 11e4}getSignedHook(e,t,r){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:"cow-sdk://bridging/providers/across"},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingId(e,t){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}},exports.BARN_ETH_FLOW_ADDRESS=le,exports.BARN_ETH_FLOW_ADDRESSES=de,exports.BridgingSdk=class{constructor(e){this.options=void 0,this.config=void 0,this.options=e;const{providers:t,tradingSdk:r,...n}=e;if(!t||1!==t.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&ye(e.enableLogging),this.config={providers:t,...n,tradingSdk:null!=r?r:new al}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(W)}getTargetNetworks(){try{return Promise.resolve(this.provider.getNetworks())}catch(e){return Promise.reject(e)}}getBuyTokens(e){try{return Promise.resolve(this.provider.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getQuote(e,t){try{const o=this,{sellTokenChainId:s,buyTokenChainId:a}=e,u=o.config.tradingSdk;if(s!==a){var r;const s=$u(e.signer),a=null!==(r=o.config.getErc20Decimals)&&void 0!==r?r:(n=s,(e,t)=>new Sc(t,Ic,n).decimals());return Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,getErc20Decimals:o,tradingSdk:s}=e,{kind:a,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:c,buyTokenAddress:d,amount:h,signer:p,...f}=r,m=$u(p);return me(`Cross-chain ${a} ${h} ${l} (source chain ${u}) for ${d} (target chain ${c})`),Promise.resolve(function(e){try{const{provider:t,getErc20Decimals:r,swapAndBridgeRequest:n}=e,{sellTokenChainId:i}=n;return Promise.resolve(t.getIntermediateTokens(n)).then(function(e){if(0===e.length)throw new Error("No path found (not intermediate token for bridging)");const t=e[0];return me(`Using ${t} as intermediate tokens`),Promise.resolve(r(i,t)).then(function(e){return{...n,sellTokenAddress:t,sellTokenDecimals:e}})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t,getErc20Decimals:o})).then(function(e){const o={post:[{callData:"0x00",gasLimit:t.getGasLimitEstimationForHook(e).toString(),target:"0x0000000000000000000000000000000000000000"}]};me(`Using mocked hook for swap gas estimation: ${JSON.stringify(o)}`);const{sellTokenAddress:c,sellTokenDecimals:d}=e,p={...f,kind:a,chainId:u,sellToken:l,buyToken:c,buyTokenDecimals:d,amount:h.toString(),signer:m};return me(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(p,ve)}`),Promise.resolve(s.getQuoteResults(p,{...n,appData:{metadata:{hooks:o}}})).then(function({result:o,orderBookApi:s}){const a=o.amountsAndCosts.afterSlippage.buyAmount;return me(`Expected to receive ${a} of the intermediate token (${function(e,t){if("string"!=typeof e&&ll.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=cl.indexOf(t);-1!==e&&(t=3*e)}return Ar(e,null!=t?t:18)}(a.toString(),d).toString()})`),Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:o,signer:s}=e,a={...r,amount:o};return Promise.resolve(n.getQuote(a)).then(function(e){return Promise.resolve(n.getUnsignedBridgeCall(a,e)).then(function(r){return Promise.resolve(n.getSignedHook(a.sellTokenChainId,r,s)).then(function(o){const s=new i.MetadataApi;return Promise.resolve(s.generateAppDataDoc({...t.appDataInfo.doc,metadata:{hooks:{post:[o.postHook]}}})).then(function(t){return{bridgeResult:{...e,providerInfo:n.info,tradeParameters:a,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:o}},bridgeHook:o,appData:t}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,swapResult:o,bridgeRequestWithoutAmount:e,provider:t,intermediateTokenAmount:a,signer:m})).then(function({bridgeResult:e,bridgeHook:t,appData:r}){return me(`Bridge hook for swap: ${JSON.stringify(t)}`),o.tradeParameters.receiver=t.recipient,Promise.resolve(bt(r)).then(function({fullAppData:t,appDataKeccak256:i}){return me(`App data for swap: appDataKeccak256=${i}, fullAppData="${t}"`),o.appDataInfo={fullAppData:t,appDataKeccak256:i,doc:r},{swap:o,bridge:e,postSwapOrderFromQuote:function(){try{const e={result:{...o,signer:m},orderBookApi:s};return Promise.resolve(nl(e,{...n,appData:r}))}catch(e){return Promise.reject(e)}}}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:u,provider:o.provider,getErc20Decimals:a}))}return Promise.resolve(function(e){const{quoteBridgeRequest:t,advancedSettings:r,tradingSdk:n}=e,{sellTokenAddress:i,buyTokenAddress:o,amount:s,...a}=t,u={...a,chainId:t.sellTokenChainId,sellToken:i,buyToken:o,amount:s.toString()};return me(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(u,ve)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:u}))}catch(e){return Promise.reject(e)}var n}},exports.COMPOSABLE_COW=te,exports.COMPOSABLE_COW_CONTRACT_ADDRESS=ae,exports.CONDITIONAL_ORDER_PARAMS_ABI=Ad,exports.COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS=ie,exports.COW_PROTOCOL_VAULT_RELAYER_ADDRESS=oe,exports.COW_SHED_FACTORY=re,exports.COW_SHED_IMPLEMENTATION=ne,exports.CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS=Ld,exports.ConditionalOrder=Rd,exports.ConditionalOrderFactory=class{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(e).reduce((e,[t,r])=>(e[t.toLowerCase()]=r,e),{})}fromParams(e){const{handler:t}=e,r=this.knownOrderTypes[t.toLocaleLowerCase()];if(r)return r(e)}},exports.CowError=g,exports.CowShedSdk=Kc,exports.DEFAULT_BACKOFF_OPTIONS=w,exports.DEFAULT_CONDITIONAL_ORDER_REGISTRY=Jd,exports.DEFAULT_COW_API_CONTEXT=be,exports.DEFAULT_IPFS_READ_URI="https://gnosis.mypinata.cloud/ipfs",exports.DEFAULT_IPFS_WRITE_URI="https://api.pinata.cloud",exports.DEFAULT_LIMITER_OPTIONS=T,exports.DEFAULT_TOKEN_FORMATTER=(e,t)=>`${t}@${e}`,exports.ENVS_LIST=ge,exports.ETH_ADDRESS=$,exports.ETH_FLOW_ADDRESS=ue,exports.ETH_FLOW_ADDRESSES=ce,exports.EXTENSIBLE_FALLBACK_HANDLER=ee,exports.EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS=se,exports.MAX_FREQUENCY=Gd,exports.MAX_UINT32=Ud,exports.MAX_VALID_TO_EPOCH=he,exports.MockBridgeProvider=class{constructor(){this.info={name:"Mock",logoUrl:`${xc}/mock/mock-logo.png`}}getNetworks(){return Promise.resolve([M,q,H])}getBuyTokens(e){try{return Promise.resolve(kc.filter(t=>t.chainId===e))}catch(e){return Promise.reject(e)}}getIntermediateTokens({sellTokenChainId:e}){try{var t;return Promise.resolve(null!==(t=Pc[e])&&void 0!==t?t:[])}catch(e){return Promise.reject(e)}}getQuote(e){try{return Promise.resolve({isSell:!0,amountsAndCosts:{costs:{bridgingFee:{feeBps:10,amountInSellCurrency:123456n,amountInBuyCurrency:123456n}},beforeFee:{sellAmount:123456n,buyAmount:123456n},afterFee:{sellAmount:123456n,buyAmount:123456n},afterSlippage:{sellAmount:123456n,buyAmount:123456n},slippageBps:0},quoteTimestamp:Date.now(),expectedFillTimeSeconds:128})}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){return 11e4}getUnsignedBridgeCall(e,t){return Promise.resolve(Cc)}getSignedHook(e,t,r){try{return Promise.resolve({recipient:"0x0000000000000000000000000000000000000001",postHook:{target:"0x0000000000000000000000000000000000000002",callData:"0x1",gasLimit:"0x2",dappId:"MockBridgeProvider"}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{return Promise.resolve({kind:exports.OrderKind.SELL,provider:this.info,account:"0x0000000000000000000000000000000000000001",sellTokenChainId:1,sellTokenAddress:"0x0000000000000000000000000000000000000001",sellTokenAmount:"123456",sellTokenDecimals:18,buyTokenChainId:1,buyTokenAddress:"0x0000000000000000000000000000000000000002",buyTokenDecimals:18,minBuyAmount:"123456",receiver:"0x0000000000000000000000000000000000000001",signer:"",appCode:"MOCK"})}catch(e){return Promise.reject(e)}}getBridgingId(e,t){return Promise.resolve("123456789asdfg")}getExplorerUrl(e){return"https://www.google.com/search?q="+e}getStatus(e){try{return Promise.resolve({status:exports.BridgeStatus.IN_PROGRESS,fillTimeInSeconds:67})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){return Promise.resolve(Cc)}getRefundBridgingTx(e){return Promise.resolve(Cc)}},exports.Multiplexer=Bd,exports.NATIVE_CURRENCY_ADDRESS=S,exports.ORDER_BOOK_PROD_CONFIG=Ae,exports.ORDER_BOOK_STAGING_CONFIG=we,exports.ORDER_PRIMARY_TYPE=f,exports.OrderBookApi=Ee,exports.OrderBookApiError=v,exports.OrderSigningUtils=Xe,exports.SUBGRAPH_PROD_CONFIG=cd,exports.SUBGRAPH_STAGING_CONFIG=dd,exports.SubgraphApi=class{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...be,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(sd,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(ad,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(ud,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,r={}){try{const n=this,{chainId:i,env:o}=n.getContextWithOverride(r),s=n.getEnvConfigs(o)[i];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(r,n){try{var i=Promise.resolve(l.request(s,e,t))}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(r){throw console.error(`[subgraph:${n.API_NAME}]`,r),new g(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${r}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?cd:dd}},exports.TOKEN_LIST_IMAGES_PATH=I,exports.TWAP_ADDRESS=Fd,exports.TradingSdk=al,exports.Twap=Kd,exports.WRAPPED_NATIVE_CURRENCIES=C,exports.assertIsBridgeQuoteAndPost=function(e){if(!h(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")},exports.assertIsQuoteAndPost=function(e){if(!p(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")},exports.buildAppData=vt,exports.calculateUniqueOrderId=$e,exports.createSetDomainVerifierTx=function(e,t){return at.createInterface().encodeFunctionData("setDomainVerifier",[e,t])},exports.createWeirollContract=ed,exports.createWeirollDelegateCall=$c,exports.createWeirollLibrary=function(e){return u.Contract.createLibrary(e)},exports.decodeParams=Td,exports.enableLogging=ye,exports.encodeParams=wd,exports.formatEpoch=Sd,exports.fromStructToOrder=Cd,exports.generateAppDataFromDoc=bt,exports.getBigNumber=je,exports.getBlockInfo=fd,exports.getChainInfo=function(e){return qe(e)?K[e]:Ve(e)?J[e]:void 0},exports.getDomainVerifier=function(e,t,r,n){try{const i=at.connect(se[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},exports.getEthFlowTransaction=mt,exports.getIsValidResult=kd,exports.getOrderToSign=Ze,exports.getPreSignTransaction=sl,exports.getQuote=tl,exports.getQuoteAmountsAndCosts=He,exports.getQuoteWithSigner=el,exports.isAdditionalTargetChain=Ve,exports.isBridgeQuoteAndPost=h,exports.isComposableCow=function(e,t){return e===ae[t]},exports.isExtensibleFallbackHandler=function(e,t){return e===se[t]},exports.isQuoteAndPost=p,exports.isSupportedChain=qe,exports.isTargetChainId=function(e){return qe(e)||Ve(e)},exports.isValidAbi=Ed,exports.mapQuoteAmountsAndCosts=function(e,t){const{costs:{networkFee:r,partnerFee:n}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return{...e,costs:{...e.costs,networkFee:{...r,amountInSellCurrency:t(r.amountInSellCurrency),amountInBuyCurrency:t(r.amountInBuyCurrency)},partnerFee:{...n,amount:t(n.amount)}},beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)}},exports.nativeCurrencyTemplate=k,exports.postCoWProtocolTrade=gt,exports.postLimitOrder=ol,exports.postSellNativeCurrencyOrder=yt,exports.postSwapOrder=il,exports.postSwapOrderFromQuote=nl,exports.request=b,exports.swapParamsToLimitOrderParams=ct,exports.transformDataToStruct=Wd,exports.transformStructToData=Qd;
|
|
28
|
+
`,fd="https://api.thegraph.com/subgraphs/name/cowprotocol",md={[exports.SupportedChainId.MAINNET]:fd+"/cow",[exports.SupportedChainId.GNOSIS_CHAIN]:fd+"/cow-gc",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null},yd={[exports.SupportedChainId.MAINNET]:fd+"/cow-staging",[exports.SupportedChainId.GNOSIS_CHAIN]:fd+"/cow-gc-staging",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null};var gd,bd;exports.ProofLocation=void 0,(gd=exports.ProofLocation||(exports.ProofLocation={}))[gd.PRIVATE=0]="PRIVATE",gd[gd.EMITTED=1]="EMITTED",gd[gd.SWARM=2]="SWARM",gd[gd.WAKU=3]="WAKU",gd[gd.RESERVED=4]="RESERVED",gd[gd.IPFS=5]="IPFS",exports.PollResultCode=void 0,(bd=exports.PollResultCode||(exports.PollResultCode={})).SUCCESS="SUCCESS",bd.UNEXPECTED_ERROR="UNEXPECTED_ERROR",bd.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",bd.TRY_ON_BLOCK="TRY_ON_BLOCK",bd.TRY_AT_EPOCH="TRY_AT_EPOCH",bd.DONT_TRY_AGAIN="DONT_TRY_AGAIN";const vd=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},Ad=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],wd=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],Td=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],Ed=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],Sd=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],Id=["tuple(address handler, bytes32 salt, bytes staticInput)"];function xd(e){return r.utils.defaultAbiCoder.encode(Id,[e])}function Cd(e){const{handler:t,salt:n,staticInput:i}=r.utils.defaultAbiCoder.decode(Id,e)[0];return{handler:t,salt:n,staticInput:i}}function kd(e,t){try{r.utils.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}function Pd(e){return new Date(1e3*e).toISOString()}function _d(e){if(Ad.includes(e))return s.OrderBalance.ERC20;if(wd.includes(e))return s.OrderBalance.EXTERNAL;if(Td.includes(e))return s.OrderBalance.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Nd(e){if(Ed.includes(e))return s.OrderKind.SELL;if(Sd.includes(e))return s.OrderKind.BUY;throw new Error(`Unknown kind: ${e}`)}function Md(e){const{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:Nd(u.toString()),sellTokenBalance:_d(s.toString()),buyTokenBalance:_d(o.toString())}}function Rd(e){return e.isValid}let Od,Dd;function Bd(){return Od||(Od=at.createInterface()),Od}function Fd(e,t){return Dd||(Dd=at.connect(de[e],t)),Dd}class Ld{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=r.utils.keccak256(r.utils.randomBytes(32)),data:i,hasOffChainInput:o=!1}=e;if(!r.ethers.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!r.ethers.utils.isHexString(n)||32!==r.ethers.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=i,this.staticInput=this.transformDataToStruct(i),this.hasOffChainInput=o}get context(){}assertIsValid(){const e=this.isValid();if(!Rd(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Bd(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.utils.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,i,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),Bd().encodeFunctionData("remove",[this.id])}get id(){return r.utils.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:r.constants.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.utils.keccak256(xd(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.utils.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Fd(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return Rd(i)?Promise.resolve(t.pollValidate(e)).then(function(i){return i||Promise.resolve(t.isAuthorized(e)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,t.leaf,t.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(e,t,r){try{return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return h(require("@cowprotocol/contracts"))})).then(function({computeOrderUid:n}){return Promise.resolve(tt.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,Md(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(e){return o?e:{result:exports.PollResultCode.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){if(e)return o=1,e;const t={result:exports.PollResultCode.TRY_NEXT_BLOCK,reason:"Order already in orderbook"};return o=1,t})}();return u&&u.then?u.then(a):a(u)})})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(e){return a(e)}return u&&u.then?u.then(void 0,a):u}(0,function(e){return{result:exports.PollResultCode.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Fd(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Fd(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=Cd(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.utils.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Ud=["address","bytes32","bytes"],Gd=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Hd{constructor(e,t,r,n=exports.ProofLocation.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=n,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!r||!t&&r)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const r=t[e];if(!Hd.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:n,root:i,location:o}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const r in t)if(t.hasOwnProperty(r)){const{orderType:n,...i}=t[r];if(!Hd.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Hd.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?r.BigNumber.from(t):t}),s=new Hd(t,n,i);return s.location=o,s}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const r=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[r.id]=r,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=c.StandardMerkleTree.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Ud)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const i=this;void 0===e&&(e=i.location);const o=function(){try{switch(e){case exports.ProofLocation.PRIVATE:return Promise.resolve("0x");case exports.ProofLocation.EMITTED:return Promise.resolve(i.encodeToABI(t));case exports.ProofLocation.SWARM:case exports.ProofLocation.WAKU:case exports.ProofLocation.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,r){try{var o=Promise.resolve(n(i.encodeToJSON(t)))}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(o().then(t=>{try{return r.utils.hexlify(r.utils.arrayify(t)),i.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,r,t.proof))}const s=Fd(r,n);return Promise.resolve(i?Promise.resolve(i(e,t.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,r])=>e&&e(r)||void 0===e?{idx:t,value:r}:void 0).reduce((e,t)=>{if(t){const r={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:r})}return e},[])}encodeToABI(e){return r.utils.defaultAbiCoder.encode(Gd,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Hd.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Hd.orderTypeRegistry={}}}Hd.orderTypeRegistry={};const jd="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",qd="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Vd=r.BigNumber.from(2).pow(32).sub(1),zd=r.BigNumber.from(31536e3),Kd=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Wd,Qd;exports.DurationType=void 0,(Wd=exports.DurationType||(exports.DurationType={})).AUTO="AUTO",Wd.LIMIT_DURATION="LIMIT_DURATION",exports.StartTimeValue=void 0,(Qd=exports.StartTimeValue||(exports.StartTimeValue={})).AT_MINING_TIME="AT_MINING_TIME",Qd.AT_EPOCH="AT_EPOCH";const Jd={startType:exports.StartTimeValue.AT_MINING_TIME},Yd={durationType:exports.DurationType.AUTO};class Xd extends Ld{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==jd)throw new Error(`InvalidHandler: Expected: ${jd}, provided: ${t}`);super({handler:jd,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Xd({handler:jd,data:e,salt:t})}static fromParams(e){return Xd.deserialize(xd(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:qd,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:i,startTime:o=Jd,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=Yd}=this.data;if(e==n)return"InvalidSameToken";if(e==r.constants.AddressZero||n==r.constants.AddressZero)return"InvalidToken";if(!t.gt(r.constants.Zero))return"InvalidSellAmount";if(!i.gt(r.constants.Zero))return"InvalidMinBuyAmount";if(o.startType===exports.StartTimeValue.AT_EPOCH){const e=o.epoch;if(!e.gte(r.constants.Zero)||!e.lt(Vd))return"InvalidStartTime"}return s.gt(r.constants.One)&&s.lte(Vd)?a.gt(r.constants.Zero)&&a.lte(zd)?u.durationType!==exports.DurationType.LIMIT_DURATION||u.duration.lte(a)?kd(Kd,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===exports.StartTimeValue.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.utils.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(Vd))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===exports.DurationType.LIMIT_DURATION?e+t.sub(1).mul(r).add(n.duration).toNumber():e+t.mul(r).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(vd(e.provider)).then(function(r){const{blockInfo:n=r}=e,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>i)return{result:exports.PollResultCode.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Pd(e)})`};const r=t.endTimestamp(e);return i>=r?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Pd(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){return e?.message?.includes("Cabinet is not set")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${e?.message}. User likely removed the order.`}:e?.message?.includes("Cabinet epoch out of range")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${e?.message}`}:{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`Unexpected error: ${e.message}`,error:e}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(vd(r.provider)).then(function(t){const{blockInfo:n=t}=r,{blockTimestamp:i}=n,o=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(r)).then(function(e){if(i<e)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Pd(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Pd(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=e+(r+1)*o;return{result:exports.PollResultCode.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Pd(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return xd(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Kd,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,jd,Kd,(e,t)=>new Xd({handler:jd,salt:t,data:$d(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=Jd,timeBetweenParts:s,durationOfPart:a=Yd,receiver:u,appData:l}=this.data,c=o.startType===exports.StartTimeValue.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===exports.DurationType.AUTO?"AUTO":a.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:c,timeBetweenParts:s.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return Zd(e)}transformStructToData(e){return $d(e)}}function Zd(e){const{sellAmount:t,buyAmount:n,numberOfParts:i,startTime:o=Jd,timeBetweenParts:s,durationOfPart:a=Yd,...u}=e,{partSellAmount:l,minPartLimit:c}=i&&!i.isZero()?{partSellAmount:t.div(i),minPartLimit:n.div(i)}:{partSellAmount:r.constants.Zero,minPartLimit:r.constants.Zero},d=a.durationType===exports.DurationType.AUTO?r.constants.Zero:a.duration;return{partSellAmount:l,minPartLimit:c,t0:o.startType===exports.StartTimeValue.AT_MINING_TIME?r.constants.Zero:o.epoch,n:i,t:s,span:d,...u}}function $d(e){const{n:t,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:c}=e,d=s.isZero()?{durationType:exports.DurationType.AUTO}:{durationType:exports.DurationType.LIMIT_DURATION,duration:s},h=s.isZero()?{startType:exports.StartTimeValue.AT_MINING_TIME}:{startType:exports.StartTimeValue.AT_EPOCH,epoch:o};return{sellAmount:r.mul(t),buyAmount:n.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:a,buyToken:u,receiver:l,appData:c}}const eh={[jd]:e=>Xd.fromParams(e)};Object.defineProperty(exports,"WeirollContract",{enumerable:!0,get:function(){return u.Contract}}),Object.defineProperty(exports,"WeirollPlanner",{enumerable:!0,get:function(){return u.Planner}}),exports.ADDITIONAL_TARGET_CHAINS_MAP=Z,exports.ALL_CHAINS=$,exports.ALL_CHAINS_IDS=ee,exports.ALL_SUPPORTED_CHAINS=Y,exports.ALL_SUPPORTED_CHAINS_MAP=J,exports.ALL_SUPPORTED_CHAIN_IDS=X,exports.AcrossBridgeProvider=class{constructor(e={}){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.info={name:"Across",logoUrl:`${Nc}/across/across-logo.png`},this.options=e,this.api=new Bc(e.apiOptions),this.cowShedSdk=new Xc(e.cowShedOptions)}getNetworks(){return Promise.resolve(cd)}getBuyTokens(e){try{const t=this;if(!t.options.getTokenInfos)throw new Error("'getTokenInfos' parameter is required for AcrossBridgeProvider constructor");const r=Dc[e];if(!r)return Promise.resolve([]);const n=Object.values(r.tokens).filter(e=>Boolean(e));return Promise.resolve(t.options.getTokenInfos(e,n))}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{if(e.kind!==s.OrderKind.SELL)throw new Error("Only SELL is supported for now");const{sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o}=e,a=function(e,t){const r=Hc(e),n=Hc(t);if(r&&n)return{sourceChainConfig:r,targetChainConfig:n}}(n,i);if(!a)return Promise.resolve([]);const{sourceChainConfig:u,targetChainConfig:l}=a,c=(t=o,r=l,Object.keys(r.tokens).find(e=>r.tokens[e]===t));if(!c)return Promise.resolve([]);const d=function(e,t){return t.tokens[e]}(c,u);return Promise.resolve(d?[d]:[])}catch(e){return Promise.reject(e)}var t,r}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:a}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=a?a:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===s.OrderKind.SELL,amountsAndCosts:jc(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),suggestedFees:r}}(e,0,t)})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){const{request:t,quote:r,cowShedSdk:n}=e,{sellTokenChainId:i,sellTokenAddress:o,buyTokenChainId:s,buyTokenAddress:a,account:u,receiver:l}=t,c=function(e){const t=Zc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return od(new Pc(t,ad),exports.WeirollCommandFlags.CALL)}(i),d=function(e){const t=$c[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return od(new Pc(t,sd),exports.WeirollCommandFlags.CALL)}(i),h=function(e){return od(new Pc(e,ud),exports.WeirollCommandFlags.STATICCALL)}(o),p=function(e){return od(new Pc(e,ld),exports.WeirollCommandFlags.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return id(e=>{const t=e.add(h.balanceOf(f)),r=BigInt(m.totalRelayFee.pct),n=e.add(d.multiplyAndSubtract(t,r));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,o,a,t,n,s,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){return 11e4}getSignedHook(e,t,r){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:"cow-sdk://bridging/providers/across"},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingId(e,t){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}},exports.BARN_ETH_FLOW_ADDRESS=pe,exports.BARN_ETH_FLOW_ADDRESSES=me,exports.BridgingSdk=class{constructor(e){this.options=void 0,this.config=void 0,this.options=e;const{providers:t,tradingSdk:r,...n}=e;if(!t||1!==t.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Ae(e.enableLogging),this.config={providers:t,...n,tradingSdk:null!=r?r:new hl}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(Y)}getTargetNetworks(){try{return Promise.resolve(this.provider.getNetworks())}catch(e){return Promise.reject(e)}}getBuyTokens(e){try{return Promise.resolve(this.provider.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getQuote(e,t){try{const o=this,{sellTokenChainId:s,buyTokenChainId:a}=e,u=o.config.tradingSdk;if(s!==a){var r;const s=il(e.signer),a=null!==(r=o.config.getErc20Decimals)&&void 0!==r?r:(i=s,(e,t)=>new Pc(t,_c,i).decimals());return Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:i,getErc20Decimals:o,tradingSdk:s}=e,{kind:a,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:c,buyTokenAddress:d,amount:h,signer:p,...f}=r,m=il(p);return ve(`Cross-chain ${a} ${h} ${l} (source chain ${u}) for ${d} (target chain ${c})`),Promise.resolve(function(e){try{const{provider:t,getErc20Decimals:r,swapAndBridgeRequest:n}=e,{sellTokenChainId:i}=n;return Promise.resolve(t.getIntermediateTokens(n)).then(function(e){if(0===e.length)throw new Error("No path found (not intermediate token for bridging)");const t=e[0];return ve(`Using ${t} as intermediate tokens`),Promise.resolve(r(i,t)).then(function(e){return{...n,sellTokenAddress:t,sellTokenDecimals:e}})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t,getErc20Decimals:o})).then(function(e){const o={post:[{callData:"0x00",gasLimit:t.getGasLimitEstimationForHook(e).toString(),target:"0x0000000000000000000000000000000000000000"}]};ve(`Using mocked hook for swap gas estimation: ${JSON.stringify(o)}`);const{sellTokenAddress:c,sellTokenDecimals:d}=e,p={...f,kind:a,chainId:u,sellToken:l,buyToken:c,buyTokenDecimals:d,amount:h.toString(),signer:m};return ve(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(p,Ee)}`),Promise.resolve(s.getQuoteResults(p,{...i,appData:{metadata:{hooks:o}}})).then(function({result:o,orderBookApi:s}){const a=o.amountsAndCosts.afterSlippage.buyAmount;return ve(`Expected to receive ${a} of the intermediate token (${function(e,t){if("string"!=typeof e&&fl.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=ml.indexOf(t);-1!==e&&(t=3*e)}return Ir(e,null!=t?t:18)}(a.toString(),d).toString()})`),Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:i,intermediateTokenAmount:o,signer:s}=e,a={...r,amount:o};return Promise.resolve(i.getQuote(a)).then(function(e){return Promise.resolve(i.getUnsignedBridgeCall(a,e)).then(function(r){return Promise.resolve(i.getSignedHook(a.sellTokenChainId,r,s)).then(function(o){const s=new n.MetadataApi;return Promise.resolve(s.generateAppDataDoc({...t.appDataInfo.doc,metadata:{hooks:{post:[o.postHook]}}})).then(function(t){return{bridgeResult:{...e,providerInfo:i.info,tradeParameters:a,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:o}},bridgeHook:o,appData:t}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,swapResult:o,bridgeRequestWithoutAmount:e,provider:t,intermediateTokenAmount:a,signer:m})).then(function({bridgeResult:e,bridgeHook:t,appData:r}){return ve(`Bridge hook for swap: ${JSON.stringify(t)}`),o.tradeParameters.receiver=t.recipient,Promise.resolve(Et(r)).then(function({fullAppData:t,appDataKeccak256:n}){return ve(`App data for swap: appDataKeccak256=${n}, fullAppData="${t}"`),o.appDataInfo={fullAppData:t,appDataKeccak256:n,doc:r},{swap:o,bridge:e,postSwapOrderFromQuote:function(){try{const e={result:{...o,signer:m},orderBookApi:s};return Promise.resolve(ul(e,{...i,appData:r}))}catch(e){return Promise.reject(e)}}}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:u,provider:o.provider,getErc20Decimals:a}))}return Promise.resolve(function(e){const{quoteBridgeRequest:t,advancedSettings:r,tradingSdk:n}=e,{sellTokenAddress:i,buyTokenAddress:o,amount:s,...a}=t,u={...a,chainId:t.sellTokenChainId,sellToken:i,buyToken:o,amount:s.toString()};return ve(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(u,Ee)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:u}))}catch(e){return Promise.reject(e)}var i}},exports.COMPOSABLE_COW=oe,exports.COMPOSABLE_COW_CONTRACT_ADDRESS=de,exports.CONDITIONAL_ORDER_PARAMS_ABI=Id,exports.COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS=ue,exports.COW_PROTOCOL_VAULT_RELAYER_ADDRESS=le,exports.COW_SHED_FACTORY=se,exports.COW_SHED_IMPLEMENTATION=ae,exports.CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS=qd,exports.ConditionalOrder=Ld,exports.ConditionalOrderFactory=class{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(e).reduce((e,[t,r])=>(e[t.toLowerCase()]=r,e),{})}fromParams(e){const{handler:t}=e,r=this.knownOrderTypes[t.toLocaleLowerCase()];if(r)return r(e)}},exports.CowError=A,exports.CowShedSdk=Xc,exports.DEFAULT_BACKOFF_OPTIONS=S,exports.DEFAULT_CONDITIONAL_ORDER_REGISTRY=eh,exports.DEFAULT_COW_API_CONTEXT=Te,exports.DEFAULT_IPFS_READ_URI="https://gnosis.mypinata.cloud/ipfs",exports.DEFAULT_IPFS_WRITE_URI="https://api.pinata.cloud",exports.DEFAULT_LIMITER_OPTIONS=I,exports.DEFAULT_TOKEN_FORMATTER=(e,t)=>`${t}@${e}`,exports.ENVS_LIST=we,exports.ETH_ADDRESS=ne,exports.ETH_FLOW_ADDRESS=he,exports.ETH_FLOW_ADDRESSES=fe,exports.EXTENSIBLE_FALLBACK_HANDLER=ie,exports.EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS=ce,exports.MAX_FREQUENCY=zd,exports.MAX_UINT32=Vd,exports.MAX_VALID_TO_EPOCH=ye,exports.MockBridgeProvider=class{constructor(){this.info={name:"Mock",logoUrl:`${Nc}/mock/mock-logo.png`}}getNetworks(){return Promise.resolve([D,K,V])}getBuyTokens(e){try{return Promise.resolve(Rc.filter(t=>t.chainId===e))}catch(e){return Promise.reject(e)}}getIntermediateTokens({sellTokenChainId:e}){try{var t;return Promise.resolve(null!==(t=Oc[e])&&void 0!==t?t:[])}catch(e){return Promise.reject(e)}}getQuote(e){try{return Promise.resolve({isSell:!0,amountsAndCosts:{costs:{bridgingFee:{feeBps:10,amountInSellCurrency:123456n,amountInBuyCurrency:123456n}},beforeFee:{sellAmount:123456n,buyAmount:123456n},afterFee:{sellAmount:123456n,buyAmount:123456n},afterSlippage:{sellAmount:123456n,buyAmount:123456n},slippageBps:0},quoteTimestamp:Date.now(),expectedFillTimeSeconds:128})}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){return 11e4}getUnsignedBridgeCall(e,t){return Promise.resolve(Mc)}getSignedHook(e,t,r){try{return Promise.resolve({recipient:"0x0000000000000000000000000000000000000001",postHook:{target:"0x0000000000000000000000000000000000000002",callData:"0x1",gasLimit:"0x2",dappId:"MockBridgeProvider"}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{return Promise.resolve({kind:exports.OrderKind.SELL,provider:this.info,account:"0x0000000000000000000000000000000000000001",sellTokenChainId:1,sellTokenAddress:"0x0000000000000000000000000000000000000001",sellTokenAmount:"123456",sellTokenDecimals:18,buyTokenChainId:1,buyTokenAddress:"0x0000000000000000000000000000000000000002",buyTokenDecimals:18,minBuyAmount:"123456",receiver:"0x0000000000000000000000000000000000000001",signer:"",appCode:"MOCK"})}catch(e){return Promise.reject(e)}}getBridgingId(e,t){return Promise.resolve("123456789asdfg")}getExplorerUrl(e){return"https://www.google.com/search?q="+e}getStatus(e){try{return Promise.resolve({status:exports.BridgeStatus.IN_PROGRESS,fillTimeInSeconds:67})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){return Promise.resolve(Mc)}getRefundBridgingTx(e){return Promise.resolve(Mc)}},exports.Multiplexer=Hd,exports.NATIVE_CURRENCY_ADDRESS=C,exports.ORDER_BOOK_PROD_CONFIG=Se,exports.ORDER_BOOK_STAGING_CONFIG=Ie,exports.ORDER_PRIMARY_TYPE=g,exports.OrderBookApi=Ce,exports.OrderBookApiError=T,exports.OrderSigningUtils=tt,exports.SUBGRAPH_PROD_CONFIG=md,exports.SUBGRAPH_STAGING_CONFIG=yd,exports.SubgraphApi=class{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...Te,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(dd,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(hd,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(pd,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,r={}){try{const n=this,{chainId:i,env:o}=n.getContextWithOverride(r),s=n.getEnvConfigs(o)[i];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(r,n){try{var i=Promise.resolve(l.request(s,e,t))}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(r){throw console.error(`[subgraph:${n.API_NAME}]`,r),new A(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${r}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?md:yd}},exports.TOKEN_LIST_IMAGES_PATH=k,exports.TWAP_ADDRESS=jd,exports.TradingSdk=hl,exports.Twap=Xd,exports.WRAPPED_NATIVE_CURRENCIES=_,exports.assertIsBridgeQuoteAndPost=function(e){if(!m(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")},exports.assertIsQuoteAndPost=function(e){if(!y(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")},exports.buildAppData=St,exports.calculateUniqueOrderId=nt,exports.createSetDomainVerifierTx=function(e,t){return dt.createInterface().encodeFunctionData("setDomainVerifier",[e,t])},exports.createWeirollContract=od,exports.createWeirollDelegateCall=id,exports.createWeirollLibrary=function(e){return u.Contract.createLibrary(e)},exports.decodeParams=Cd,exports.enableLogging=Ae,exports.encodeParams=xd,exports.formatEpoch=Pd,exports.fromStructToOrder=Md,exports.generateAppDataFromDoc=Et,exports.getBigNumber=Ke,exports.getBlockInfo=vd,exports.getChainInfo=function(e){return We(e)?J[e]:Qe(e)?Z[e]:void 0},exports.getDomainVerifier=function(e,t,r,n){try{const i=dt.connect(ce[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},exports.getEthFlowTransaction=vt,exports.getIsValidResult=Rd,exports.getOrderToSign=rt,exports.getPreSignTransaction=dl,exports.getQuote=sl,exports.getQuoteAmountsAndCosts=ze,exports.getQuoteWithSigner=ol,exports.isAdditionalTargetChain=Qe,exports.isBridgeQuoteAndPost=m,exports.isComposableCow=function(e,t){return e===de[t]},exports.isExtensibleFallbackHandler=function(e,t){return e===ce[t]},exports.isQuoteAndPost=y,exports.isSupportedChain=We,exports.isTargetChainId=function(e){return We(e)||Qe(e)},exports.isValidAbi=kd,exports.mapAddressToSupportedNetworks=re,exports.mapQuoteAmountsAndCosts=function(e,t){const{costs:{networkFee:r,partnerFee:n}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return{...e,costs:{...e.costs,networkFee:{...r,amountInSellCurrency:t(r.amountInSellCurrency),amountInBuyCurrency:t(r.amountInBuyCurrency)},partnerFee:{...n,amount:t(n.amount)}},beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)}},exports.mapSupportedNetworks=te,exports.mergeAppDataDoc=Tt,exports.nativeCurrencyTemplate=N,exports.postCoWProtocolTrade=wt,exports.postLimitOrder=cl,exports.postSellNativeCurrencyOrder=At,exports.postSwapOrder=ll,exports.postSwapOrderFromQuote=ul,exports.request=w,exports.swapParamsToLimitOrderParams=ft,exports.transformDataToStruct=Zd,exports.transformStructToData=$d;
|
|
29
29
|
//# sourceMappingURL=index.js.map
|