@cowprotocol/cow-sdk 5.10.2 → 5.11.0-RC.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/README.md +2 -0
- package/dist/bridging/BridgingSdk/BridgingSdk.d.ts +90 -0
- package/dist/bridging/BridgingSdk/getCrossChainOrder.d.ts +14 -0
- package/dist/bridging/BridgingSdk/getErc20Decimals.d.ts +4 -0
- package/dist/bridging/BridgingSdk/getQuoteWithBridging.d.ts +32 -0
- package/dist/bridging/BridgingSdk/getQuoteWithoutBridge.d.ts +7 -0
- package/dist/bridging/const.d.ts +2 -0
- package/dist/bridging/errors.d.ts +4 -0
- package/dist/bridging/index.d.ts +6 -0
- package/dist/bridging/providers/across/AcrossApi.d.ts +27 -0
- package/dist/bridging/providers/across/AcrossBridgeProvider.d.ts +43 -0
- package/dist/bridging/providers/across/abi.d.ts +154 -0
- package/dist/bridging/providers/across/const/contracts.d.ts +3 -0
- package/dist/bridging/providers/across/const/misc.d.ts +1 -0
- package/dist/bridging/providers/across/const/tokens.d.ts +11 -0
- package/dist/bridging/providers/across/createAcrossDepositCall.d.ts +9 -0
- package/dist/bridging/providers/across/types.d.ts +169 -0
- package/dist/bridging/providers/across/util.d.ts +39 -0
- package/dist/bridging/providers/mock/MockBridgeProvider.d.ts +21 -0
- package/dist/bridging/types.d.ts +287 -0
- package/dist/bridging/utils.d.ts +9 -0
- package/dist/chains/const/index.d.ts +25 -0
- package/dist/chains/const/path.d.ts +1 -0
- package/dist/chains/details/arbitrum.d.ts +7 -0
- package/dist/chains/details/avalanche.d.ts +2 -0
- package/dist/chains/details/base.d.ts +7 -0
- package/dist/chains/details/gnosis.d.ts +7 -0
- package/dist/chains/details/mainnet.d.ts +7 -0
- package/dist/chains/details/optimism.d.ts +2 -0
- package/dist/chains/details/polygon.d.ts +2 -0
- package/dist/chains/details/sepolia.d.ts +7 -0
- package/dist/chains/index.d.ts +3 -0
- package/dist/chains/types.d.ts +123 -0
- package/dist/chains/utils.d.ts +18 -0
- package/dist/common/consts/config.d.ts +9 -0
- package/dist/common/{consts.d.ts → consts/contracts.d.ts} +1 -12
- package/dist/common/consts/path.d.ts +1 -0
- package/dist/common/consts/tokens.d.ts +9 -0
- package/dist/common/index.d.ts +12 -5
- package/dist/common/{configs.d.ts → types/config.d.ts} +1 -9
- package/dist/common/{cow-error.d.ts → types/cow-error.d.ts} +0 -1
- package/dist/common/types/ethereum.d.ts +5 -0
- package/dist/common/types/tokens.d.ts +12 -0
- package/dist/common/types/wallets.d.ts +5 -0
- package/dist/common/utils/config.d.ts +4 -0
- package/dist/common/utils/log.d.ts +2 -0
- package/dist/common/utils/serialize.d.ts +1 -0
- package/dist/common/utils/wallet.d.ts +3 -0
- package/dist/composable/Multiplexer.d.ts +1 -1
- package/dist/composable/contracts.d.ts +1 -1
- package/dist/composable/types.d.ts +1 -1
- package/dist/composable/utils.d.ts +1 -1
- package/dist/cow-shed/CowShedSdk.d.ts +69 -0
- package/dist/cow-shed/{proxyInitCode.d.ts → contracts/CoWShedHooks.d.ts} +44 -0
- package/dist/cow-shed/contracts/utils.d.ts +4 -0
- package/dist/cow-shed/index.d.ts +2 -3
- package/dist/cow-shed/types.d.ts +0 -16
- package/dist/hooks/utils.d.ts +3 -0
- package/dist/index-ef9ef589.js +29 -0
- package/dist/index-ef9ef589.js.map +1 -0
- package/dist/index.d.ts +4 -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/order-book/api.d.ts +1 -1
- package/dist/order-book/quoteAmountsAndCostsUtils.d.ts +13 -2
- package/dist/order-book/types.d.ts +54 -18
- package/dist/order-signing/orderSigningUtils.d.ts +1 -1
- package/dist/order-signing/types.d.ts +1 -1
- package/dist/order-signing/utils.d.ts +1 -1
- package/dist/package.json +13 -11
- package/dist/schemas/trading/LimitOrderAdvancedSettings.ts +26 -0
- package/dist/schemas/trading/LimitTradeParameters.ts +3 -0
- package/dist/schemas/trading/QuoteResultsSerialized.ts +21 -12
- package/dist/schemas/trading/QuoterParameters.ts +11 -1
- package/dist/schemas/trading/SwapAdvancedSettings.ts +206 -0
- package/dist/schemas/trading/TradeParameters.ts +3 -0
- package/dist/src/bridging/README.md +54 -0
- package/dist/src/cow-shed/README.md +60 -0
- package/dist/src/trading/README.md +55 -7
- package/dist/src/weiroll/README.md +58 -0
- package/dist/subgraph/api.d.ts +2 -2
- package/dist/test/utils.d.ts +1 -0
- package/dist/trading/appDataUtils.d.ts +2 -1
- package/dist/trading/calculateUniqueOrderId.d.ts +3 -4
- package/dist/trading/consts.d.ts +2 -4
- package/dist/trading/getEthFlowTransaction.d.ts +6 -5
- package/dist/trading/getOrderTypedData.d.ts +1 -1
- package/dist/trading/getPreSignTransaction.d.ts +2 -2
- package/dist/trading/getQuote.d.ts +1 -1
- package/dist/trading/postCoWProtocolTrade.d.ts +4 -4
- package/dist/trading/postLimitOrder.d.ts +2 -2
- package/dist/trading/postSellNativeCurrencyOrder.d.ts +2 -6
- package/dist/trading/postSwapOrder.d.ts +3 -3
- package/dist/trading/tradingSdk.d.ts +14 -11
- package/dist/trading/types.d.ts +73 -11
- package/dist/trading/utils.d.ts +8 -4
- package/dist/utils-757fe114.js +2 -0
- package/dist/utils-757fe114.js.map +1 -0
- package/dist/utils-9a7618d8.js +2 -0
- package/dist/utils-9a7618d8.js.map +1 -0
- package/dist/utils-f4151c05.js +2 -0
- package/dist/utils-f4151c05.js.map +1 -0
- package/dist/utils.d.ts +1 -1
- package/dist/weiroll/index.d.ts +23 -0
- package/package.json +13 -11
- package/dist/common/chains.d.ts +0 -11
- package/dist/cow-shed/CoWShedHooks.d.ts +0 -35
- package/dist/cow-shed/contracts.d.ts +0 -4
- package/dist/index-2ed223c8.js +0 -29
- package/dist/index-2ed223c8.js.map +0 -1
- package/dist/utils-4bdd94dd.js +0 -2
- package/dist/utils-4bdd94dd.js.map +0 -1
- package/dist/utils-63156cab.js +0 -2
- package/dist/utils-63156cab.js.map +0 -1
- package/dist/utils-faedc0ab.js +0 -2
- package/dist/utils-faedc0ab.js.map +0 -1
- /package/dist/common/{ipfs.d.ts → consts/ipfs.d.ts} +0 -0
package/dist/index.module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"cross-fetch/polyfill";import{RateLimiter as t}from"limiter";import{backOff as e}from"exponential-backoff";import{gql as r,request as n}from"graphql-request";import{utils as i,Contract as o,ethers as s,constants as a,BigNumber as u}from"ethers";import{OrderBalance as l,OrderKind as h,SigningScheme as c,isTypedDataSigner as f,hashTypedData as d,ORDER_TYPE_FIELDS as p}from"@cowprotocol/contracts";import{StandardMerkleTree as m}from"@openzeppelin/merkle-tree";import{defaultAbiCoder as y,solidityKeccak256 as g,getCreate2Address as v,joinSignature as b,splitSignature as A,arrayify as w,keccak256 as E,toUtf8Bytes as T}from"ethers/lib/utils";import{Signer as I}from"@ethersproject/abstract-signer";import{stringifyDeterministic as N,MetadataApi as M}from"@cowprotocol/app-data";var k;!function(t){t[t.MAINNET=1]="MAINNET",t[t.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",t[t.ARBITRUM_ONE=42161]="ARBITRUM_ONE",t[t.BASE=8453]="BASE",t[t.SEPOLIA=11155111]="SEPOLIA"}(k||(k={}));const _=["prod","staging"],S={env:"prod",chainId:k.MAINNET};class P extends Error{constructor(t,e){super(t),this.error_code=void 0,this.error_code=e}}const C="cow-sdk:",x="https://gnosis.mypinata.cloud/ipfs",O="https://api.pinata.cloud",R="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",B="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",D="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",L="0x00E989b87700514118Fa55326CD1cCE82faebEF6",U="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",F=Object.values(k).filter(t=>"number"==typeof t);function q(t){return F.reduce((e,r)=>({...e,[r]:"function"==typeof t?t(r):t}),{})}function G(t){return q(t)}const H=G("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),z=G("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),j=G(B),Q=G(D),K={[k.MAINNET]:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",[k.GNOSIS_CHAIN]:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",[k.ARBITRUM_ONE]:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",[k.SEPOLIA]:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",[k.BASE]:"0x4200000000000000000000000000000000000006"},V="0xba3cb449bd2b4adddbc894d8697f5170800eadec",J="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",Y=G(V),W=G(J),X=4294967295,Z=function(t,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${t}${r}${n?"?"+n:""}`,h={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(e(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,h)).then(function(t){return Promise.resolve(nt(t)).then(function(e){return t.status>=200&&t.status<300?e:Promise.reject(new $(t,e))})})})}catch(t){return Promise.reject(t)}},a))}catch(t){return Promise.reject(t)}};class $ extends Error{constructor(t,e){super("string"==typeof e?e:t.statusText),this.response=void 0,this.body=void 0,this.response=t,this.body=e}}const tt=[408,425,429,500,502,503,504],et={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:t=>!(t instanceof $)||tt.includes(t.response.status)},rt={tokensPerInterval:5,interval:"second"},nt=function(t){try{let e;const r=function(){if(204!==t.status)return function(r,n){try{var i=function(){const r=t.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(t.json()).then(function(t){return e=1,t}):Promise.resolve(t.text()).then(function(t){return e=1,t})}()}()}catch(t){return n(t)}return i&&i.then?i.then(void 0,n):i}(0,function(t){console.error(t)})}();return Promise.resolve(r&&r.then?r.then(function(t){return e?t:void 0}):e?r:void 0)}catch(t){return Promise.reject(t)}};function it(t){return function(t){const{ethflowData:e}=t;if(!e)return t;const{userValidTo:r}=e,n=t.onchainUser||t.owner,i=R;return{...t,validTo:r,owner:n,sellToken:i}}(function(t){const{executedFeeAmount:e,executedFee:r}=t,n=BigInt(e||"0"),i=BigInt(r||"0"),o=String(n+i);return{...t,totalFee:o}}(t))}const ot={[k.MAINNET]:"https://api.cow.fi/mainnet",[k.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[k.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[k.BASE]:"https://api.cow.fi/base",[k.SEPOLIA]:"https://api.cow.fi/sepolia"},st={[k.MAINNET]:"https://barn.api.cow.fi/mainnet",[k.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[k.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[k.BASE]:"https://barn.api.cow.fi/base",[k.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function at(t){return Object.keys(t).reduce((e,r)=>{const n=t[r];return void 0!==n&&(e[r]=n),e},{})}class ut{constructor(e={}){this.context=void 0,this.rateLimiter=void 0,this.context={...S,...e},this.rateLimiter=new t(e.limiterOpts||rt)}getVersion(t={}){return this.fetch({path:"/api/v1/version",method:"GET"},t)}getTrades(t,e={}){if(t.owner&&t.orderUid)return Promise.reject(new P("Cannot specify both owner and orderId"));if(!t.owner&&!t.orderUid)return Promise.reject(new P("Must specify either owner or orderId"));const r=new URLSearchParams(at(t));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},e)}getOrders({owner:t,offset:e=0,limit:r=1e3},n={}){const i=new URLSearchParams(at({offset:e.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${t}/orders`,method:"GET",query:i},n).then(t=>t.map(it))}getTxOrders(t,e={}){return this.fetch({path:`/api/v1/transactions/${t}/orders`,method:"GET"},e).then(t=>t.map(it))}getOrder(t,e={}){return this.fetch({path:`/api/v1/orders/${t}`,method:"GET"},e).then(t=>it(t))}getOrderCompetitionStatus(t,e={}){return this.fetch({path:`/api/v1/orders/${t}/status`,method:"GET"},e)}getOrderMultiEnv(t,e={}){const{env:r}=this.getContextWithOverride(e),n=_.filter(t=>t!==r);let i=0;const o=r=>{const s=n[i];return r instanceof $&&404===r.response.status&&s?(i++,this.getOrder(t,{...e,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(t,{...e,env:r}).catch(o)}getQuote(t,e={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:t},e)}sendSignedOrderCancellations(t,e={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:t},e)}sendOrder(t,e={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:t},e)}getNativePrice(t,e={}){return this.fetch({path:`/api/v1/token/${t}/native_price`,method:"GET"},e)}getTotalSurplus(t,e={}){return this.fetch({path:`/api/v1/users/${t}/total_surplus`,method:"GET"},e)}getAppData(t,e={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"GET"},e)}uploadAppData(t,e,r={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"PUT",body:{fullAppData:e}},r)}getSolverCompetition(t,e={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof t?"/by_tx_hash":""}/${t}`,method:"GET"},e)}getOrderLink(t,e){const{chainId:r,env:n}=this.getContextWithOverride(e);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${t}`}getContextWithOverride(t={}){return{...this.context,...t}}getApiBaseUrls(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?ot:st}fetch(e,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||et,u=r.limiterOpts?new t(r.limiterOpts):this.rateLimiter;return Z(s,e,u,a)}}var lt,ht,ct,ft,dt,pt,mt,yt,gt,vt,bt,At,wt,Et,Tt;!function(t){t.ERC20="erc20",t.INTERNAL="internal"}(lt||(lt={})),function(t){var e;(e=t.type||(t.type={})).OPEN="open",e.SCHEDULED="scheduled",e.ACTIVE="active",e.SOLVED="solved",e.EXECUTING="executing",e.TRADED="traded",e.CANCELLED="cancelled"}(ht||(ht={})),function(t){t.EIP712="eip712",t.ETHSIGN="ethsign"}(ct||(ct={})),function(t){var e;(e=t.placementError||(t.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",e.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",e.PRE_VALIDATION_ERROR="PreValidationError"}(ft||(ft={})),function(t){var e;(e=t.errorType||(t.errorType={})).INVALID_SIGNATURE="InvalidSignature",e.WRONG_OWNER="WrongOwner",e.ORDER_NOT_FOUND="OrderNotFound",e.ALREADY_CANCELLED="AlreadyCancelled",e.ORDER_FULLY_EXECUTED="OrderFullyExecuted",e.ORDER_EXPIRED="OrderExpired",e.ON_CHAIN_ORDER="OnChainOrder"}(dt||(dt={})),function(t){t.MARKET="market",t.LIMIT="limit",t.LIQUIDITY="liquidity"}(pt||(pt={})),function(t){t.BUY="buy",t.SELL="sell"}(mt||(mt={})),function(t){var e;(e=t.errorType||(t.errorType={})).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"}(yt||(yt={})),function(t){t.BUY="buy"}(gt||(gt={})),function(t){t.SELL="sell"}(vt||(vt={})),function(t){t.PRESIGNATURE_PENDING="presignaturePending",t.OPEN="open",t.FULFILLED="fulfilled",t.CANCELLED="cancelled",t.EXPIRED="expired"}(bt||(bt={})),function(t){var e;(e=t.errorType||(t.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.ZERO_AMOUNT="ZeroAmount",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(At||(At={})),function(t){t.FAST="fast",t.OPTIMAL="optimal",t.VERIFIED="verified"}(wt||(wt={})),function(t){t.ERC20="erc20",t.INTERNAL="internal",t.EXTERNAL="external"}(Et||(Et={})),function(t){t.EIP712="eip712",t.ETHSIGN="ethsign",t.PRESIGN="presign",t.EIP1271="eip1271"}(Tt||(Tt={}));const It=BigInt(1e4);function Nt(t){var e;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=t,s=null!==(e=t.partnerFeeBps)&&void 0!==e?e:0,a=r.kind===mt.SELL,u=Mt(r.feeAmount,n),l=Mt(r.sellAmount,n),h=Mt(r.buyAmount,i),c=h.num/l.num,f=Mt(l.big+u.big,n),d=Mt(c*f.num,i),p=s>0?(a?d.big:l.big)*BigInt(s)/It:BigInt(0),m=a?{sellAmount:f.big,buyAmount:h.big-p}:{sellAmount:f.big+p,buyAmount:h.big},y=t=>t*BigInt(o)/It,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:Mt(c*u.num,i).big},partnerFee:{amount:p,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:d.big},afterNetworkCosts:{sellAmount:f.big,buyAmount:h.big},afterPartnerFees:m,afterSlippage:g}}function Mt(t,e){if("number"==typeof t){const r=t*10**e,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:t}}const r=BigInt(t);return{big:r,num:Number(r)/10**e}}const kt=r`
|
|
1
|
+
import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as r,Contract as n,ethers as i,constants as o,BigNumber as s}from"ethers";import{MetadataApi as a,stringifyDeterministic as u}from"@cowprotocol/app-data";import{keccak256 as l,toUtf8Bytes as c,defaultAbiCoder as d,solidityKeccak256 as h,getCreate2Address as p,joinSignature as f,splitSignature as m,arrayify as y,formatBytes32String as g}from"ethers/lib/utils";import b from"deepmerge";import{ORDER_TYPE_FIELDS as v,OrderKind as A,SigningScheme as w,isTypedDataSigner as T,hashTypedData as E,OrderBalance as S}from"@cowprotocol/contracts";import{Signer as I,VoidSigner as k}from"@ethersproject/abstract-signer";import{Planner as P,Contract as C}from"@weiroll/weiroll.js";export{Contract as WeirollContract,Planner as WeirollPlanner}from"@weiroll/weiroll.js";import{gql as x,request as _}from"graphql-request";import{StandardMerkleTree as N}from"@openzeppelin/merkle-tree";var M;!function(e){e.NOT_INITIATED="not_initiated",e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.FAILED="failed",e.EXPIRED="expired"}(M||(M={}));class R extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderQuoteError"}}function O(e){return"bridge"in e}function B(e){return!O(e)}function D(e){if(!O(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function F(e){if(!B(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function L(e){if(!e)return[];const t=JSON.parse(e);return U(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function U(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}const G="Order";var H,j;!function(e){e[e.MAINNET=1]="MAINNET",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.BASE=8453]="BASE",e[e.POLYGON=137]="POLYGON",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(H||(H={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(j||(j={}));class q extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const z=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(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(Q(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 K=[408,425,429,500,502,503,504],W={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof V)||K.includes(e.response.status)},J={tokensPerInterval:5,interval:"second"},Q=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)}},Y="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",X="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",Z={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${X}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},$={[H.MAINNET]:{...Z,chainId:H.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},[H.GNOSIS_CHAIN]:{chainId:H.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${X}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[H.ARBITRUM_ONE]:{...Z,chainId:H.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},[H.BASE]:{...Z,chainId:H.BASE,address:"0x4200000000000000000000000000000000000006"},[H.SEPOLIA]:{...Z,chainId:H.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"},[H.POLYGON]:{chainId:H.POLYGON,address:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",decimals:18,name:"Wrapped POL",symbol:"WPOL",logoUrl:`${X}/137/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270/logo.png`},[H.AVALANCHE]:{chainId:H.AVALANCHE,address:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",decimals:18,name:"Wrapped AVAX",symbol:"WAVAX",logoUrl:`${X}/43114/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7/logo.png`}},ee={address:Y,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${X}/1/${Y}/logo.png`},te="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",re=`${te}/src/chains`,ne=`${re}/images/mainnet-logo.svg`,ie={id:H.MAINNET,label:"Ethereum",nativeCurrency:{...ee,chainId:H.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:ne,dark:ne},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"}},oe=`${re}/images/gnosis-logo.svg`,se={id:H.GNOSIS_CHAIN,label:"Gnosis Chain",nativeCurrency:{...ee,chainId:H.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${X}/100/${Y}/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:oe,dark:oe},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"}]},ae=`${re}/images/arbitrum-logo-light.svg`,ue=`${re}/images/arbitrum-logo-dark.svg`,le={id:H.ARBITRUM_ONE,label:"Arbitrum One",nativeCurrency:{...ee,chainId:H.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:ae,dark:ue},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"}]},ce=`${re}/images/base-logo.svg`,de={id:H.BASE,label:"Base",nativeCurrency:{...ee,chainId:H.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:ce,dark:ce},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"}]},he=`${re}/images/sepolia-logo.svg`,pe={id:H.SEPOLIA,label:"Sepolia",nativeCurrency:{...ee,chainId:H.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:he,dark:he},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"}},fe=`${re}/images/avax-logo.svg`,me={id:H.AVALANCHE,label:"Avalanche",logo:{light:fe,dark:fe},nativeCurrency:{...ee,chainId:H.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:fe},addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"SnowTrace",url:"https://snowtrace.io"}},ye=`${re}/images/optimism-logo.svg`,ge={id:10,label:"Optimism",logo:{light:ye,dark:ye},nativeCurrency:{...ee,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"}},be=`${re}/images/polygon-logo.svg`,ve={id:137,label:"Polygon",logo:{light:be,dark:be},nativeCurrency:{...ee,chainId:137,name:"POL",symbol:"POL",logoUrl:be},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"}},Ae={[H.MAINNET]:ie,[H.GNOSIS_CHAIN]:se,[H.ARBITRUM_ONE]:le,[H.BASE]:de,[H.AVALANCHE]:me,[H.POLYGON]:ve,[H.SEPOLIA]:pe},we=Object.values(Ae),Te=we.map(e=>e.id),Ee={[j.OPTIMISM]:ge},Se=we.concat(Object.values(Ee)),Ie=Se.map(e=>e.id);function ke(e){return Te.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function Pe(e){return ke(e)}const Ce="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",xe="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",_e="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Ne="0x00E989b87700514118Fa55326CD1cCE82faebEF6",Me="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",Re=Pe("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),Oe=Pe("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Be=Pe(xe),De=Pe(_e),Fe="0xba3cb449bd2b4adddbc894d8697f5170800eadec",Le="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",Ue=Pe(Fe),Ge=Pe(Le),He=4294967295;function je(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=Ce;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 qe=!1;function ze(e){qe&&console.log(`[COW TRADING SDK] ${e}`)}function Ve(e){qe=e}const Ke=["prod","staging"],We={env:"prod",chainId:H.MAINNET},Je="https://gnosis.mypinata.cloud/ipfs",Qe="https://api.pinata.cloud",Ye=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,Xe={[H.MAINNET]:"https://api.cow.fi/mainnet",[H.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[H.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[H.BASE]:"https://api.cow.fi/base",[H.SEPOLIA]:"https://api.cow.fi/sepolia",[H.POLYGON]:"https://api.cow.fi/polygon",[H.AVALANCHE]:"https://api.cow.fi/avalanche"},Ze={[H.MAINNET]:"https://barn.api.cow.fi/mainnet",[H.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[H.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[H.BASE]:"https://barn.api.cow.fi/base",[H.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[H.POLYGON]:"https://barn.api.cow.fi/polygon",[H.AVALANCHE]:"https://barn.api.cow.fi/avalanche"};function $e(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class et{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...We,...t},this.rateLimiter=new e(t.limiterOpts||J)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new q("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new q("Must specify either owner or orderId"));const r=new URLSearchParams($e(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($e({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(je))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(je))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>je(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=Ke.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?Xe:Ze}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||W,u=r.limiterOpts?new e(r.limiterOpts):this.rateLimiter;return ze(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,Ye)}`),z(s,t,u,a)}}var tt,rt,nt,it,ot,st,at,ut,lt,ct,dt,ht,pt,ft,mt;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(tt||(tt={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(rt||(rt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(nt||(nt={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(it||(it={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(ot||(ot={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(st||(st={})),function(e){e.BUY="buy",e.SELL="sell"}(at||(at={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(ut||(ut={})),function(e){e.BUY="buy"}(lt||(lt={})),function(e){e.SELL="sell"}(ct||(ct={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(dt||(dt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(ht||(ht={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(pt||(pt={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(ft||(ft={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(mt||(mt={}));const yt=BigInt(1e4);function gt(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===at.SELL,u=bt(r.feeAmount,n),l=bt(r.sellAmount,n),c=bt(r.buyAmount,i),d=c.num/l.num,h=bt(l.big+u.big,n),p=bt(d*h.num,i),f=s>0?(a?p.big:l.big)*BigInt(s)/yt:BigInt(0),m=a?{sellAmount:h.big,buyAmount:c.big-f}:{sellAmount:h.big+f,buyAmount:c.big},y=e=>e*BigInt(o)/yt,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:bt(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 bt(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 vt(e){return At(e)?Ae[e]:wt(e)?Ee[e]:void 0}function At(e){return e in Ae}function wt(e){return e in Ee}function Tt(e){return At(e)||wt(e)}const Et=1800,St=50,It={[H.MAINNET]:200,[H.ARBITRUM_ONE]:50,[H.BASE]:50,[H.GNOSIS_CHAIN]:50,[H.SEPOLIA]:50,[H.POLYGON]:50,[H.AVALANCHE]:50},kt={[nt.EIP712]:mt.EIP712,[nt.ETHSIGN]:mt.ETHSIGN},Pt=BigInt(15e4),Ct=()=>import("./utils-757fe114.js");class xt{static signOrder(e,t,r){try{return Promise.resolve(Ct()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(Ct()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(Ct()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Ct()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(Ct()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Ct()).then(function({getDomain:t}){return Promise.resolve(import("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 _t({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=St,partnerFee:p,validFor:f}=r,m=r.receiver||e,y=r.validTo||Math.floor(Date.now()/1e3)+(f||Et),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:c,feeAmount:t,appData:n,partiallyFillable:d},{afterSlippage:b}=gt({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:ft.ERC20,buyTokenBalance:tt.ERC20}}const Nt=function(e,t,r,n){try{return Promise.resolve(xt.generateOrderId(e,{...t,sellTokenBalance:t.sellTokenBalance,buyTokenBalance:t.buyTokenBalance,validTo:He,sellToken:$[e].address},{owner:"staging"===n?Le:Fe})).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)}},Mt=[{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 Rt{static createInterface(){return new r.Interface(Mt)}static connect(e,t){return new n(e,Mt,t)}}Rt.abi=Mt;const Ot=[{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 Bt{static createInterface(){return new r.Interface(Ot)}static connect(e,t){return new n(e,Ot,t)}}Bt.abi=Ot;const Dt=[{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 Ft{static createInterface(){return new r.Interface(Dt)}static connect(e,t){return new n(e,Dt,t)}}Ft.abi=Dt;const Lt=[{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 Ut{static createInterface(){return new r.Interface(Lt)}static connect(e,t){return new n(e,Lt,t)}}Ut.abi=Lt;const Gt=[{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 Ht{static createInterface(){return new r.Interface(Gt)}static connect(e,t){return new n(e,Gt,t)}}function jt(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function qt(e){return e.sellToken.toLowerCase()===Ce.toLowerCase()}function zt(e){return e+e*BigInt(20)/BigInt(100)}function Vt(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)}}function Kt({quoteParameters:e,orderParameters:t}){return{...e,sellToken:t.sellToken}}function Wt(e,t){return{...t,sellToken:$[e].address,slippageBps:"number"==typeof t.slippageBps?t.slippageBps:It[e]}}Ht.abi=Gt;const Jt=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,...Wt(n,r)},{quoteId:u}=a,l=function(e,t){return Ft.connect("staging"===t?Le:Fe,e)}(e,a.env),c=_t({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),Pt))).then(function(t){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,orderToSign:c,transaction:{data:n,gasLimit:"0x"+zt(t).toString(16),to:l.address,value:"0x"+BigInt(c.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},Qt=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(Jt(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n,orderToSign:i}){return ze("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return ze("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return ze(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,orderToSign:i,signature:"",signingScheme:mt.EIP1271}})})})}catch(e){return Promise.reject(e)}},Yt=function(e,t,r,n,i={}){try{function o(i){const o=_t({from:i,networkCostsAmount:s},n,r.appDataKeccak256);return ze("Signing order..."),Promise.resolve(function(){try{return a===mt.PRESIGN?Promise.resolve({signature:i,signingScheme:mt.PRESIGN}):Promise.resolve(xt.signOrder(o,h,t)).then(function(e){return{signature:e.signature,signingScheme:kt[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 ze("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return ze(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r,orderToSign:o}})})}const{networkCostsAmount:s="0",signingScheme:a=mt.EIP712}=i;if(qt(n)){const p=n.quoteId;if("number"==typeof p)return Promise.resolve(Qt(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)}},Xt=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?b(r,t):r;return Promise.resolve(Zt(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},Zt=function(e){try{return Promise.resolve(u(e)).then(function(e){return{fullAppData:e,appDataKeccak256:l(c(e))}})}catch(e){return Promise.reject(e)}},$t=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(er.generateAppDataDoc(b({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(Zt(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},er=new a,tr=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}];var rr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function nr(e){var t={exports:{}};return e(t,t.exports),t.exports}var ir={__proto__:null,default:{}},or=nr(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:ir.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],k=8191&I,P=I>>>13,C=0|s[6],x=8191&C,_=C>>>13,N=0|s[7],M=8191&N,R=N>>>13,O=0|s[8],B=8191&O,D=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],z=8191&q,V=q>>>13,K=0|a[2],W=8191&K,J=K>>>13,Q=0|a[3],Y=8191&Q,X=Q>>>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,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,V)|0)+Math.imul(h,z)|0))<<13)|0;l=((o=o+Math.imul(h,V)|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,z)|0,i=(i=i+Math.imul(f,V)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,V)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,J)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,J)|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,z)|0,i=(i=i+Math.imul(g,V)|0)+Math.imul(b,z)|0,o=o+Math.imul(b,V)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,J)|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,z)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,V)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,J)|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(k,H),i=(i=Math.imul(k,j))+Math.imul(P,H)|0,o=Math.imul(P,j),n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,J)|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(x,H),i=(i=Math.imul(x,j))+Math.imul(_,H)|0,o=Math.imul(_,j),n=n+Math.imul(k,z)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,V)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,J)|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(x,z)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(_,z)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,J)|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(B,H),i=(i=Math.imul(B,j))+Math.imul(D,H)|0,o=Math.imul(D,j),n=n+Math.imul(M,z)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(R,z)|0,o=o+Math.imul(R,V)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,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(B,z)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,V)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,J)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,X)|0,n=n+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,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,z),i=(i=Math.imul(L,V))+Math.imul(U,z)|0,o=Math.imul(U,V),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,J)|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(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(P,re)|0,o=o+Math.imul(P,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 ke=(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)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,J))+Math.imul(U,W)|0,o=Math.imul(U,J),n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,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(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,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 Pe=(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)+(Pe>>>26)|0,Pe&=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(B,$)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,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(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,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 Ce=(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)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,o=Math.imul(U,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,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(x,ue)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,le)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(P,de)|0,o=o+Math.imul(P,he)|0;var xe=(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)+(xe>>>26)|0,xe&=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(B,oe)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,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(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(_,de)|0,o=o+Math.imul(_,he)|0;var _e=(l+(n=n+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((o=o+Math.imul(P,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(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,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(x,fe)|0)|0)+((8191&(i=(i=i+Math.imul(x,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(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(D,de)|0,o=o+Math.imul(D,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(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((o=o+Math.imul(D,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]=ke,u[11]=Pe,u[12]=Ce,u[13]=xe,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,rr)});let sr=!1,ar=!1;const ur={debug:1,default:2,info:2,warning:3,error:4,off:5};let lr=ur.default,cr=null;const dr=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 hr,pr;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(hr||(hr={})),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"}(pr||(pr={}));const fr="0123456789abcdef";class mr{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==ur[r]&&this.throwArgumentError("invalid log level name","logLevel",e),lr>ur[r]||console.log.apply(console,t)}debug(...e){this._log(mr.levels.DEBUG,e)}info(...e){this._log(mr.levels.INFO,e)}warn(...e){this._log(mr.levels.WARNING,e)}makeError(e,t,r){if(ar)return this.makeError("censored error",t,{});t||(t=mr.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+=fr[t[e]>>4],r+=fr[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 pr.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 pr.CALL_EXCEPTION:case pr.INSUFFICIENT_FUNDS:case pr.MISSING_NEW:case pr.NONCE_EXPIRED:case pr.REPLACEMENT_UNDERPRICED:case pr.TRANSACTION_REPLACED:case pr.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,mr.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){dr&&this.throwError("platform missing String.prototype.normalize",mr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:dr})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,mr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,mr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,mr.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,mr.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",mr.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",mr.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",mr.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return cr||(cr=new mr("logger/5.8.0")),cr}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",mr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),sr){if(!e)return;this.globalLogger().throwError("error censorship permanent",mr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}ar=!!e,sr=!!t}static setLogLevel(e){const t=ur[e.toLowerCase()];null!=t?lr=t:mr.globalLogger().warn("invalid log level - "+e)}static from(e){return new mr(e)}}mr.errors=pr,mr.levels=hr;const yr=new mr("bytes/5.8.0");function gr(e){return!!e.toHexString}function br(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return br(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function vr(e){return Ir(e)&&!(e.length%2)||wr(e)}function Ar(e){return"number"==typeof e&&e==e&&e%1==0}function wr(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Ar(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Ar(r)||r<0||r>=256)return!1}return!0}function Tr(e,t){if(t||(t={}),"number"==typeof e){yr.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),br(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),gr(e)&&(e=e.toHexString()),Ir(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":yr.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 br(new Uint8Array(n))}return wr(e)?br(new Uint8Array(e)):yr.throwArgumentError("invalid arrayify value","value",e)}function Er(e){const t=e.map(e=>Tr(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),br(n)}function Sr(e){let t=Tr(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 Ir(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const kr="0123456789abcdef";function Pr(e,t){if(t||(t={}),"number"==typeof e){yr.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=kr[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),gr(e))return e.toHexString();if(Ir(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":yr.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(wr(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=kr[(240&n)>>4]+kr[15&n]}return t}return yr.throwArgumentError("invalid hexlify value","value",e)}function Cr(e){if("string"!=typeof e)e=Pr(e);else if(!Ir(e)||e.length%2)return null;return(e.length-2)/2}function xr(e,t,r){return"string"!=typeof e?e=Pr(e):(!Ir(e)||e.length%2)&&yr.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function _r(e){let t="0x";return e.forEach(e=>{t+=Pr(e).substring(2)}),t}function Nr(e){const t=function(e){"string"!=typeof e&&(e=Pr(e)),Ir(e)||yr.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)}(Pr(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Mr(e,t){for("string"!=typeof e?e=Pr(e):Ir(e)||yr.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&yr.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Rr(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(vr(e)){let r=Tr(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Pr(r.slice(0,32)),t.s=Pr(r.slice(32,64))):65===r.length?(t.r=Pr(r.slice(0,32)),t.s=Pr(r.slice(32,64)),t.v=r[64]):yr.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:yr.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Pr(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=Tr(e)).length>t&&yr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),br(r)}(Tr(t._vs),32);t._vs=Pr(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&yr.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Pr(r);null==t.s?t.s=i:t.s!==i&&yr.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?yr.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)&&yr.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Ir(t.r)?t.r=Mr(t.r,32):yr.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Ir(t.s)?t.s=Mr(t.s,32):yr.throwArgumentError("signature missing or invalid s","signature",e);const r=Tr(t.s);r[0]>=128&&yr.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Pr(r);t._vs&&(Ir(t._vs)||yr.throwArgumentError("signature invalid _vs","signature",e),t._vs=Mr(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&yr.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 Pr(Er([(e=Rr(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const Br="bignumber/5.8.0";var Dr=or.BN;const Fr=new mr(Br),Lr={},Ur=9007199254740991;let Gr=!1;class Hr{constructor(e,t){e!==Lr&&Fr.throwError("cannot call constructor directly; use BigNumber.from",mr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return qr(zr(this).fromTwos(e))}toTwos(e){return qr(zr(this).toTwos(e))}abs(){return"-"===this._hex[0]?Hr.from(this._hex.substring(1)):this}add(e){return qr(zr(this).add(zr(e)))}sub(e){return qr(zr(this).sub(zr(e)))}div(e){return Hr.from(e).isZero()&&Vr("division-by-zero","div"),qr(zr(this).div(zr(e)))}mul(e){return qr(zr(this).mul(zr(e)))}mod(e){const t=zr(e);return t.isNeg()&&Vr("division-by-zero","mod"),qr(zr(this).umod(t))}pow(e){const t=zr(e);return t.isNeg()&&Vr("negative-power","pow"),qr(zr(this).pow(t))}and(e){const t=zr(e);return(this.isNegative()||t.isNeg())&&Vr("unbound-bitwise-result","and"),qr(zr(this).and(t))}or(e){const t=zr(e);return(this.isNegative()||t.isNeg())&&Vr("unbound-bitwise-result","or"),qr(zr(this).or(t))}xor(e){const t=zr(e);return(this.isNegative()||t.isNeg())&&Vr("unbound-bitwise-result","xor"),qr(zr(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&Vr("negative-width","mask"),qr(zr(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&Vr("negative-width","shl"),qr(zr(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&Vr("negative-width","shr"),qr(zr(this).shrn(e))}eq(e){return zr(this).eq(zr(e))}lt(e){return zr(this).lt(zr(e))}lte(e){return zr(this).lte(zr(e))}gt(e){return zr(this).gt(zr(e))}gte(e){return zr(this).gte(zr(e))}isNegative(){return"-"===this._hex[0]}isZero(){return zr(this).isZero()}toNumber(){try{return zr(this).toNumber()}catch(e){Vr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Fr.throwError("this platform does not support BigInt",mr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Gr||(Gr=!0,Fr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Fr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",mr.errors.UNEXPECTED_ARGUMENT,{})),zr(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,jr(e)):e.match(/^-?[0-9]+$/)?new Hr(Lr,jr(new Dr(e))):Fr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&Vr("underflow","BigNumber.from",e),(e>=Ur||e<=-Ur)&&Vr("overflow","BigNumber.from",e),Hr.from(String(e));const t=e;if("bigint"==typeof t)return Hr.from(t.toString());if(wr(t))return Hr.from(Pr(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&&(Ir(e)||"-"===e[0]&&Ir(e.substring(1))))return Hr.from(e)}return Fr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function jr(e){if("string"!=typeof e)return jr(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Fr.throwArgumentError("invalid hex","value",e),"0x00"===(e=jr(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 qr(e){return Hr.from(jr(e))}function zr(e){const t=Hr.from(e).toHexString();return new Dr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function Vr(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),Fr.throwError(e,mr.errors.NUMERIC_FAULT,n)}const Kr=new mr(Br),Wr={},Jr=Hr.from(0),Qr=Hr.from(-1);function Yr(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),Kr.throwError(e,mr.errors.NUMERIC_FAULT,i)}let Xr="0";for(;Xr.length<256;)Xr+=Xr;function Zr(e){if("number"!=typeof e)try{e=Hr.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+Xr.substring(0,e):Kr.throwArgumentError("invalid decimal size","decimals",e)}function $r(e,t){null==t&&(t=0);const r=Zr(t),n=(e=Hr.from(e)).lt(Jr);n&&(e=e.mul(Qr));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 en(e,t){null==t&&(t=0);const r=Zr(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||Kr.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&Kr.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&Kr.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=Hr.from(o),u=Hr.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(Qr)),l}class tn{constructor(e,t,r,n){e!==Wr&&Kr.throwError("cannot use FixedFormat constructor; use FixedFormat.from",mr.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=Zr(n),Object.freeze(this)}static from(e){if(e instanceof tn)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||Kr.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&&Kr.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&&Kr.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&Kr.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new tn(Wr,t,r,n)}}class rn{constructor(e,t,r,n){e!==Wr&&Kr.throwError("cannot use FixedNumber constructor; use FixedNumber.from",mr.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&&Kr.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=en(this._value,this.format.decimals),r=en(e._value,e.format.decimals);return rn.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=en(this._value,this.format.decimals),r=en(e._value,e.format.decimals);return rn.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=en(this._value,this.format.decimals),r=en(e._value,e.format.decimals);return rn.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=en(this._value,this.format.decimals),r=en(e._value,e.format.decimals);return rn.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=rn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(nn.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=rn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(nn.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)&&Kr.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=rn.from("1"+Xr.substring(0,e),this.format),n=on.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&&Kr.throwArgumentError("invalid byte width","width",e),Mr(Hr.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return rn.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]+$/)||Ir(e)||"bigint"==typeof e||wr(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),rn.fromString($r(e,t),tn.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=tn.from(t),n=en(e,r.decimals);!r.signed&&n.lt(Jr)&&Yr("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=Mr(i,r.width/8));const o=$r(n,r.decimals);return new rn(Wr,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=tn.from(t);if(Tr(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=$r(n,r.decimals);return new rn(Wr,i,o,r)}static from(e,t){if("string"==typeof e)return rn.fromString(e,t);if(wr(e))return rn.fromBytes(e,t);try{return rn.fromValue(e,0,t)}catch(e){if(e.code!==mr.errors.INVALID_ARGUMENT)throw e}return Kr.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const nn=rn.from(1),on=rn.from("0.5");var sn=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 an=new mr("properties/5.8.0");function un(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function ln(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 cn(e){return sn(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 dn(e,t){e&&"object"==typeof e||an.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||an.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function hn(e){const t={};for(const r in e)t[r]=e[r];return t}const pn={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function fn(e){if(null==e||pn[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(!fn(n))return!1}return!0}return an.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function mn(e){if(fn(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>yn(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&un(t,r,yn(n))}return t}return an.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function yn(e){return mn(e)}class gn{constructor(e){for(const t in e)this[t]=yn(e[t])}}const bn=new mr("abstract-provider/5.8.0");class vn extends gn{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class An{constructor(){bn.checkAbstract(new.target,An),un(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield cn({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 wn=new mr("networks/5.8.0");function Tn(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 Tn(e)},t}function En(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return En(e,t)},r}const Sn={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Tn("homestead")},In={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Tn("ropsten")},kn={chainId:63,name:"classicMordor",_defaultProvider:En("https://www.ethercluster.com/mordor","classicMordor")},Pn={unspecified:{chainId:0,name:"unspecified"},homestead:Sn,mainnet:Sn,morden:{chainId:2,name:"morden"},ropsten:In,testnet:In,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Tn("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Tn("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Tn("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Tn("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Tn("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:En("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:kn,classicTestnet:kn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:En("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Tn("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Tn("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Tn("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 Cn(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Tr(t)}function xn(e){e=Tr(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class _n{constructor(e){un(this,"alphabet",e),un(this,"base",e.length),un(this,"_alphabetMap",{}),un(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Tr(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 Tr(new Uint8Array(t.reverse()))}}new _n("abcdefghijklmnopqrstuvwxyz234567");const Nn=new _n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Mn=/*#__PURE__*/Hr.from(-1),Rn=/*#__PURE__*/Hr.from(0),On=/*#__PURE__*/Hr.from(1),Bn=/*#__PURE__*/Hr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Dn=nr(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=rr: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],k=I.bits,P=0;P<k.length;++P){var C=I.name+"_"+k[P];if(E.push(C),T[C]=I.createMethod(k[P],I.padding),"sha3"!==I.name){var x=I.name+k[P];E.push(x),T[x]=T[C]}}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,k,P,C,x,_,N,M,R,O,B,D,F,L,U,G,H,j,q,z,V,K,W,J,Q,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,J=e[10]<<4|e[11]>>>28,x=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,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=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,k=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,V=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,C=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^~P&x,e[11]=k^~C&_,e[20]=B^~F&U,e[21]=D^~L&G,e[30]=V^~W&Q,e[31]=K^~J&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=P^~x&N,e[13]=C^~_&M,e[22]=F^~U&H,e[23]=L^~G&j,e[32]=W^~Q&X,e[33]=J^~Y&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=x^~N&R,e[15]=_^~M&O,e[24]=U^~H&q,e[25]=G^~j&z,e[34]=Q^~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&k,e[26]=H^~q&B,e[27]=j^~z&D,e[36]=X^~$&V,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&P,e[19]=O^~k&C,e[28]=q^~B&F,e[29]=z^~D&L,e[38]=$^~V&W,e[39]=ee^~K&J,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]]}()}),Fn=Dn;function Ln(e){return"0x"+Fn.keccak_256(Tr(e))}const Un=new mr("strings/5.8.0");var Gn,Hn;function jn(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"}(Gn||(Gn={})),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 qn=Object.freeze({error:function(e,t,r,n,i){return Un.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:jn,replace:function(e,t,r,n,i){return e===Hn.OVERLONG?(n.push(i),0):(n.push(65533),jn(e,t,r))}});function zn(e,t){null==t&&(t=qn.error),e=Tr(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 Vn(e,t=Gn.current){t!=Gn.current&&(Un.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 Tr(r)}function Kn(e,t){return zn(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function Wn(e){return Ln(Vn(e))}const Jn="hash/5.8.0";function Qn(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 Xn(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function Zn(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=Yn(t());return r}function $n(e,t){let r=Xn(e(),e),n=e(),i=Xn(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 ei(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)Zn(e,r).forEach((e,t)=>n[t].push(e));return n}function ti(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 Qn(ei(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 ri(e,t){return ei(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const ni=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}})}(Cn("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=="))),ii=new Set($n(ni)),oi=new Set($n(ni)),si=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(ti(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(ri(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}(Qn(t))}(ni),ai=function(e){let t=$n(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=$n(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}}()}(ni),ui=45,li=95;function ci(e){return function(e,t=Gn.current){return zn(Vn(e,t))}(e)}function di(e){return e.filter(e=>65039!=e)}function hi(e){for(let t of e.split(".")){let e=ci(t);try{for(let t=e.lastIndexOf(li)-1;t>=0;t--)if(e[t]!==li)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===ui&&e[3]===ui)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function pi(e,t){var r;let n,i,o=ai,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 fi=new mr(Jn),mi=new Uint8Array(32);function yi(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function gi(e){const t=Vn(function(e){return hi(function(e,t){let r=ci(e).reverse(),n=[];for(;r.length;){let e=pi(r);if(e){n.push(...t(e));continue}let i=r.pop();if(ii.has(i)){n.push(i);continue}if(oi.has(i))continue;let o=si[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return hi(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,di))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(yi(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(yi(t.slice(n))),r}function bi(e){"string"!=typeof e&&fi.throwArgumentError("invalid ENS name; not a string","name",e);let t=mi;const r=gi(e);for(;r.length;)t=Ln(Er([t,Ln(r.pop())]));return Pr(t)}mi.fill(0);const vi=new mr("rlp/5.8.0");function Ai(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function wi(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Ti(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Ti(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=Ai(t.length);return r.unshift(247+r.length),r.concat(t)}vr(e)||vi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Tr(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Ai(t.length);return r.unshift(183+r.length),r.concat(t)}function Ei(e){return Pr(Ti(e))}function Si(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Ii(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&vi.throwError("child data too short",mr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Ii(e,t){if(0===e.length&&vi.throwError("data too short",mr.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&vi.throwError("data short segment too short",mr.errors.BUFFER_OVERRUN,{});const n=wi(e,t+1,r);return t+1+r+n>e.length&&vi.throwError("data long segment too short",mr.errors.BUFFER_OVERRUN,{}),Si(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&vi.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{}),Si(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&vi.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{});const n=wi(e,t+1,r);return t+1+r+n>e.length&&vi.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Pr(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&vi.throwError("data too short",mr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Pr(e.slice(t+1,t+1+r))}}return{consumed:1,result:Pr(e[t])}}function ki(e){const t=Tr(e),r=Ii(t,0);return r.consumed!==t.length&&vi.throwArgumentError("invalid rlp data","data",e),r.result}const Pi=new mr("address/5.8.0");function Ci(e){Ir(e,20)||Pi.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=Tr(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 xi={};for(let e=0;e<10;e++)xi[String(e)]=String(e);for(let e=0;e<26;e++)xi[String.fromCharCode(65+e)]=String(10+e);const _i=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Ni(e){let t=null;if("string"!=typeof e&&Pi.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Ci(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Pi.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=>xi[e]).join("");for(;t.length>=_i;){let e=t.substring(0,_i);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)&&Pi.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new Dr(r,36).toString(16);t.length<40;)t="0"+t;t=Ci("0x"+t)}else Pi.throwArgumentError("invalid address","address",e);var r;return t}function Mi(e){let t=null;try{t=Ni(e.from)}catch(t){Pi.throwArgumentError("missing from address","transaction",e)}return Ni(xr(Ln(Ei([t,Sr(Tr(Hr.from(e.nonce).toHexString()))])),12))}const Ri=new mr(Jn),Oi=new Uint8Array(32);Oi.fill(0);const Bi=Hr.from(-1),Di=Hr.from(0),Fi=Hr.from(1),Li=Hr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ui=Mr(Fi.toHexString(),32),Gi=Mr(Di.toHexString(),32),Hi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},ji=["name","version","chainId","verifyingContract","salt"];function qi(e){return function(t){return"string"!=typeof t&&Ri.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const zi={name:qi("name"),version:qi("version"),chainId:function(e){try{return Hr.from(e).toString()}catch(e){}return Ri.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Ni(e).toLowerCase()}catch(e){}return Ri.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Tr(e);if(32!==t.length)throw new Error("bad length");return Pr(t)}catch(e){}return Ri.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Vi(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))&&Ri.throwArgumentError("invalid numeric width","type",e);const i=Li.mask(r?n-1:n),o=r?i.add(Fi).mul(Bi):Di;return function(t){const r=Hr.from(t);return(r.lt(o)||r.gt(i))&&Ri.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Mr(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))&&Ri.throwArgumentError("invalid bytes width","type",e),function(t){return Tr(t).length!==r&&Ri.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Tr(e),r=t.length%32;return r?_r([t,Oi.slice(r)]):Pr(t)}(t)}}}switch(e){case"address":return function(e){return Mr(Ni(e),32)};case"bool":return function(e){return e?Ui:Gi};case"bytes":return function(e){return Ln(e)};case"string":return function(e){return Wn(e)}}return null}function Ki(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class Wi{constructor(e){un(this,"types",Object.freeze(yn(e))),un(this,"_encoderCache",{}),un(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]&&Ri.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&&Ri.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),Vi(s)||(r[s]||Ri.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?Ri.throwArgumentError("missing primary type","types",e):i.length>1&&Ri.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),un(this,"primaryType",i[0]),function i(o,s){s[o]&&Ri.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]=Ki(t,e[t])+r.map(t=>Ki(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=Vi(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&&Ri.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(Ln)),Ln(_r(i))}}const r=this.types[e];if(r){const t=Wn(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),_r(n)}}return Ri.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Ri.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(Vi(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&&Ri.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),{}):Ri.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Wi(e)}static getPrimaryType(e){return Wi.from(e).primaryType}static hashStruct(e,t,r){return Wi.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=Hi[r];n||Ri.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>ji.indexOf(e.name)-ji.indexOf(t.name)),Wi.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return _r(["0x1901",Wi.hashDomain(e),Wi.from(t).hash(r)])}static hash(e,t,r){return Ln(Wi.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=hn(e);const i={};e.verifyingContract&&!Ir(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=Wi.from(t);o.visit(r,(e,t)=>("address"!==e||Ir(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){Wi.hashDomain(e);const n={},i=[];ji.forEach(t=>{const r=e[t];null!=r&&(n[t]=zi[t](r),i.push({name:t,type:Hi[t]}))});const o=Wi.from(t),s=hn(t);return s.EIP712Domain?Ri.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 Pr(Tr(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&&Ri.throwArgumentError("invalid string","value",t),t}return Ri.throwArgumentError("unsupported type","type",e)})}}}var Ji=Qi;function Qi(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 Xi(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function Zi(e){return 1===e.length?"0"+e:e}function $i(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}Qi.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var eo={inherits:nr(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+=Zi(e[r].toString(16));return t},htonl:Xi,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=Xi(i)),r+=$i(i.toString(16))}return r},zero2:Zi,zero8:$i,join32:function(e,t,r,n){var i=r-t;Ji(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 to(){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 ro=to;to.prototype.update=function(e,t){if(e=eo.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=eo.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},to.prototype.digest=function(e){return this.update(this._pad()),Ji(null===this.pending),this._digest(e)},to.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 no={BlockHash:ro},io=eo.rotr32;function oo(e,t,r){return e&t^~e&r}function so(e,t,r){return e&t^e&r^t&r}var ao=oo,uo=so,lo=eo.rotl32,co=eo.sum32,ho=eo.sum32_5,po=function(e,t,r,n){return 0===e?oo(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?so(t,r,n):void 0},fo=no.BlockHash,mo=[1518500249,1859775393,2400959708,3395469782];function yo(){if(!(this instanceof yo))return new yo;fo.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}eo.inherits(yo,fo);var go=yo;yo.blockSize=512,yo.outSize=160,yo.hmacStrength=80,yo.padLength=64,yo.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]=lo(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=ho(lo(i,5),po(l,o,s,a),u,r[n],mo[l]);u=a,a=s,s=lo(o,30),o=i,i=c}this.h[0]=co(this.h[0],i),this.h[1]=co(this.h[1],o),this.h[2]=co(this.h[2],s),this.h[3]=co(this.h[3],a),this.h[4]=co(this.h[4],u)},yo.prototype._digest=function(e){return"hex"===e?eo.toHex32(this.h,"big"):eo.split32(this.h,"big")};var bo=eo.sum32,vo=eo.sum32_4,Ao=eo.sum32_5,wo=ao,To=uo,Eo=function(e){return io(e,2)^io(e,13)^io(e,22)},So=function(e){return io(e,6)^io(e,11)^io(e,25)},Io=function(e){return io(e,7)^io(e,18)^e>>>3},ko=function(e){return io(e,17)^io(e,19)^e>>>10},Po=no.BlockHash,Co=[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 xo(){if(!(this instanceof xo))return new xo;Po.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Co,this.W=new Array(64)}eo.inherits(xo,Po);var _o=xo;function No(){if(!(this instanceof No))return new No;_o.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}xo.blockSize=512,xo.outSize=256,xo.hmacStrength=192,xo.padLength=64,xo.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]=vo(ko(r[n-2]),r[n-7],Io(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(Ji(this.k.length===r.length),n=0;n<r.length;n++){var h=Ao(d,So(u),wo(u,l,c),this.k[n],r[n]),p=bo(Eo(i),To(i,o,s));d=c,c=l,l=u,u=bo(a,h),a=s,s=o,o=i,i=bo(h,p)}this.h[0]=bo(this.h[0],i),this.h[1]=bo(this.h[1],o),this.h[2]=bo(this.h[2],s),this.h[3]=bo(this.h[3],a),this.h[4]=bo(this.h[4],u),this.h[5]=bo(this.h[5],l),this.h[6]=bo(this.h[6],c),this.h[7]=bo(this.h[7],d)},xo.prototype._digest=function(e){return"hex"===e?eo.toHex32(this.h,"big"):eo.split32(this.h,"big")},eo.inherits(No,_o);var Mo=No;No.blockSize=512,No.outSize=224,No.hmacStrength=192,No.padLength=64,No.prototype._digest=function(e){return"hex"===e?eo.toHex32(this.h.slice(0,7),"big"):eo.split32(this.h.slice(0,7),"big")};var Ro=eo.rotr64_hi,Oo=eo.rotr64_lo,Bo=eo.shr64_hi,Do=eo.shr64_lo,Fo=eo.sum64,Lo=eo.sum64_hi,Uo=eo.sum64_lo,Go=eo.sum64_4_hi,Ho=eo.sum64_4_lo,jo=eo.sum64_5_hi,qo=eo.sum64_5_lo,zo=no.BlockHash,Vo=[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 Ko(){if(!(this instanceof Ko))return new Ko;zo.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Vo,this.W=new Array(160)}eo.inherits(Ko,zo);var Wo=Ko;function Jo(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function Qo(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 Xo(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function Zo(e,t){var r=Ro(e,t,28)^Ro(t,e,2)^Ro(t,e,7);return r<0&&(r+=4294967296),r}function $o(e,t){var r=Oo(e,t,28)^Oo(t,e,2)^Oo(t,e,7);return r<0&&(r+=4294967296),r}function es(e,t){var r=Ro(e,t,14)^Ro(e,t,18)^Ro(t,e,9);return r<0&&(r+=4294967296),r}function ts(e,t){var r=Oo(e,t,14)^Oo(e,t,18)^Oo(t,e,9);return r<0&&(r+=4294967296),r}function rs(e,t){var r=Ro(e,t,1)^Ro(e,t,8)^Bo(e,t,7);return r<0&&(r+=4294967296),r}function ns(e,t){var r=Oo(e,t,1)^Oo(e,t,8)^Do(e,t,7);return r<0&&(r+=4294967296),r}function is(e,t){var r=Ro(e,t,19)^Ro(t,e,29)^Bo(e,t,6);return r<0&&(r+=4294967296),r}function os(e,t){var r=Oo(e,t,19)^Oo(t,e,29)^Do(e,t,6);return r<0&&(r+=4294967296),r}function ss(){if(!(this instanceof ss))return new ss;Wo.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Ko.blockSize=1024,Ko.outSize=512,Ko.hmacStrength=192,Ko.padLength=128,Ko.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=is(r[n-4],r[n-3]),o=os(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=rs(r[n-30],r[n-29]),l=ns(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=Go(i,o,s,a,u,l,c,d),r[n+1]=Ho(i,o,s,a,u,l,c,d)}},Ko.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];Ji(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=es(d,h),E=ts(d,h),S=Jo(d,0,p,0,m),I=Qo(0,h,0,f,0,y),k=this.k[v],P=this.k[v+1],C=r[v],x=r[v+1],_=jo(A,w,T,E,S,I,k,P,C,x),N=qo(A,w,T,E,S,I,k,P,C,x);A=Zo(n,i),w=$o(n,i),T=Yo(n,0,o,0,a),E=Xo(0,i,0,s,0,u);var M=Lo(A,w,T,E),R=Uo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=Lo(l,c,_,N),h=Uo(c,c,_,N),l=a,c=u,a=o,u=s,o=n,s=i,n=Lo(_,N,M,R),i=Uo(_,N,M,R)}Fo(this.h,0,n,i),Fo(this.h,2,o,s),Fo(this.h,4,a,u),Fo(this.h,6,l,c),Fo(this.h,8,d,h),Fo(this.h,10,p,f),Fo(this.h,12,m,y),Fo(this.h,14,g,b)},Ko.prototype._digest=function(e){return"hex"===e?eo.toHex32(this.h,"big"):eo.split32(this.h,"big")},eo.inherits(ss,Wo);var as=ss;ss.blockSize=1024,ss.outSize=384,ss.hmacStrength=192,ss.padLength=128,ss.prototype._digest=function(e){return"hex"===e?eo.toHex32(this.h.slice(0,12),"big"):eo.split32(this.h.slice(0,12),"big")};var us={sha1:go,sha224:Mo,sha256:_o,sha384:as,sha512:Wo},ls=eo.rotl32,cs=eo.sum32,ds=eo.sum32_3,hs=eo.sum32_4,ps=no.BlockHash;function fs(){if(!(this instanceof fs))return new fs;ps.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}eo.inherits(fs,ps);var ms=fs;function ys(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 gs(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function bs(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}fs.blockSize=512,fs.outSize=160,fs.hmacStrength=192,fs.padLength=64,fs.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=cs(ls(hs(r,ys(h,n,i,o),e[vs[h]+t],gs(h)),ws[h]),s);r=s,s=o,o=ls(i,10),i=n,n=p,p=cs(ls(hs(a,ys(79-h,u,l,c),e[As[h]+t],bs(h)),Ts[h]),d),a=d,d=c,c=ls(l,10),l=u,u=p}p=ds(this.h[1],i,c),this.h[1]=ds(this.h[2],o,d),this.h[2]=ds(this.h[3],s,a),this.h[3]=ds(this.h[4],r,u),this.h[4]=ds(this.h[0],n,l),this.h[0]=p},fs.prototype._digest=function(e){return"hex"===e?eo.toHex32(this.h,"little"):eo.split32(this.h,"little")};var vs=[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],As=[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],ws=[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],Ts=[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],Es={ripemd160:ms};function Ss(e,t,r){if(!(this instanceof Ss))return new Ss(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(eo.toArray(t,r))}var Is=Ss;Ss.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Ji(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)},Ss.prototype.update=function(e,t){return this.inner.update(e,t),this},Ss.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var ks,Ps=nr(function(e,t){var r=t;r.utils=eo,r.common=no,r.sha=us,r.ripemd=Es,r.hmac=Is,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}),Cs=Ps;!function(e){e.sha256="sha256",e.sha512="sha512"}(ks||(ks={}));const xs=new mr("sha2/5.8.0");function _s(e){return"0x"+Cs.sha256().update(Tr(e)).digest("hex")}function Ns(e,t,r){return ks[e]||xs.throwError("unsupported algorithm "+e,mr.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Cs.hmac(Cs[e],Tr(t)).update(Tr(r)).digest("hex")}var Ms=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 Rs(e,t){return Ms(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:Tr(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 Bs=new mr("web/5.8.0");function Ds(e){return new Promise(t=>{setTimeout(t,e)})}function Fs(e,t){if(null==e)return null;if("string"==typeof e)return e;if(vr(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Kn(e)}catch(e){}return Pr(e)}return e}function Ls(e,t,r){let n=null;if(null!=t){n=Vn(t);const r="string"==typeof e?{url:e}:hn(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=hn(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;Bs.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;Bs.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||Bs.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&&Bs.throwError("basic authentication requires a secure https url",mr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+xn(Vn(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=hn(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]?Cn(p[3]):(f=p[3],Vn(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){Bs.throwError("processing response error",mr.errors.SERVER_ERROR,{body:Fs(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(Bs.makeError("timeout",mr.errors.TIMEOUT,{requestBody:Fs(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 Rs(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 Ds(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Bs.throwError("missing response",mr.errors.SERVER_ERROR,{requestBody:Fs(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(),Bs.throwError("bad response",mr.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:Fs(a,t.headers?t.headers["content-type"]:null),requestBody:Fs(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 Ds(t);continue}}y.cancel(),Bs.throwError("processing response error",mr.errors.SERVER_ERROR,{body:Fs(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:Fs(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return Bs.throwError("failed response",mr.errors.SERVER_ERROR,{requestBody:Fs(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(Kn(e))}catch(t){Bs.throwError("invalid JSON",mr.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function Us(e,t){return t||(t={}),null==(t=hn(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 Gs="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Hs={},js=0;js<Gs.length;js++){var qs=Gs.charAt(js);if(void 0!==Hs[qs])throw new TypeError(qs+" is ambiguous");Hs[qs]=js}function zs(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 Vs="providers/5.8.0";function Ks(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 Ws=Js;function Js(e,t){if(!e)throw new Error(t||"Assertion failed")}Js.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var Qs=Ks(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=Ks(function(e,t){var r=t;r.assert=Ws,r.toArray=Qs.toArray,r.zero2=Qs.zero2,r.toHex=Qs.toHex,r.encode=Qs.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 or(e,"hex","le")}}),Xs=Ys.getNAF,Zs=Ys.getJSF,$s=Ys.assert;function ea(e,t){this.type=e,this.p=new or(t.p,16),this.red=t.prime?or.red(t.prime):or.mont(this.p),this.zero=new or(0).toRed(this.red),this.one=new or(1).toRed(this.red),this.two=new or(2).toRed(this.red),this.n=t.n&&new or(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 ta=ea;function ra(e,t){this.curve=e,this.type=t,this.precomputed=null}ea.prototype.point=function(){throw new Error("Not implemented")},ea.prototype.validate=function(){throw new Error("Not implemented")},ea.prototype._fixedNafMul=function(e,t){$s(e.precomputed);var r=e._getDoubles(),n=Xs(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()},ea.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=Xs(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];$s(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},ea.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=Zs(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]=Xs(r[p],u[p],this._bitLength),c[f]=Xs(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()},ea.BasePoint=ra,ra.prototype.eq=function(){throw new Error("Not implemented")},ra.prototype.validate=function(){return this.curve.validate(this)},ea.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]?$s(e[e.length-1]%2==0):7===e[0]&&$s(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")},ra.prototype.encodeCompressed=function(e){return this.encode(e,!0)},ra.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))},ra.prototype.encode=function(e,t){return Ys.encode(this._encode(t),e)},ra.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},ra.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)},ra.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}},ra.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}},ra.prototype._getBeta=function(){return null},ra.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var na=Ks(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}}}),ia=Ys.assert;function oa(e){ta.call(this,"short",e),this.a=new or(e.a,16).toRed(this.red),this.b=new or(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)}na(oa,ta);var sa=oa;function aa(e,t,r,n){ta.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new or(t,16),this.y=new or(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 ua(e,t,r,n){ta.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new or(0)):(this.x=new or(t,16),this.y=new or(r,16),this.z=new or(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}oa.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new or(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 or(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]:ia(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 or(e.a,16),b:new or(e.b,16)}}):this._getEndoBasis(r)}}},oa.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:or.mont(e),r=new or(2).toRed(t).redInvm(),n=r.redNeg(),i=new or(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},oa.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 or(1),f=new or(0),m=new or(0),y=new or(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}]},oa.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()}},oa.prototype.pointFromX=function(e,t){(e=new or(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)},oa.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)},oa.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},na(aa,ta.BasePoint),oa.prototype.point=function(e,t,r){return new aa(this,e,t,r)},oa.prototype.pointFromJSON=function(e,t){return aa.fromJSON(this,e,t)},aa.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}},aa.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]},aa.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},aa.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)+">"},aa.prototype.isInfinity=function(){return this.inf},aa.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)},aa.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)},aa.prototype.getX=function(){return this.x.fromRed()},aa.prototype.getY=function(){return this.y.fromRed()},aa.prototype.mul=function(e){return e=new or(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)},aa.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)},aa.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)},aa.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))},aa.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},aa.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},na(ua,ta.BasePoint),oa.prototype.jpoint=function(e,t,r){return new ua(this,e,t,r)},ua.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)},ua.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ua.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)},ua.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)},ua.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)},ua.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ua.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)},ua.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)},ua.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)},ua.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)},ua.prototype.mul=function(e,t){return e=new or(e,t),this.curve._wnafMul(this,e)},ua.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)},ua.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}},ua.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)+">"},ua.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var la=Ks(function(e,t){var r=t;r.base=ta,r.short=sa,r.mont=null,r.edwards=null}),ca=Ks(function(e,t){var r,n=t,i=Ys.assert;function o(e){this.curve="short"===e.type?new la.short(e):"edwards"===e.type?new la.edwards(e):new la.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:Cs.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:Cs.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:Cs.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:Cs.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:Cs.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:Cs.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:Cs.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:Cs.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function da(e){if(!(this instanceof da))return new da(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=Qs.toArray(e.entropy,e.entropyEnc||"hex"),r=Qs.toArray(e.nonce,e.nonceEnc||"hex"),n=Qs.toArray(e.pers,e.persEnc||"hex");Ws(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var ha=da;da.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},da.prototype._hmac=function(){return new Cs.hmac(this.hash,this.K)},da.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())},da.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=Qs.toArray(e,t),r=Qs.toArray(r,n),Ws(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},da.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=Qs.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++,Qs.encode(o,t)};var pa=Ys.assert;function fa(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 ma=fa;fa.fromPublic=function(e,t,r){return t instanceof fa?t:new fa(e,{pub:t,pubEnc:r})},fa.fromPrivate=function(e,t,r){return t instanceof fa?t:new fa(e,{priv:t,privEnc:r})},fa.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"}},fa.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},fa.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},fa.prototype._importPrivate=function(e,t){this.priv=new or(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},fa.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?pa(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||pa(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)},fa.prototype.derive=function(e){return e.validate()||pa(e.validate(),"public point not validated"),e.mul(this.priv).getX()},fa.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},fa.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},fa.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var ya=Ys.assert;function ga(e,t){if(e instanceof ga)return e;this._importDER(e,t)||(ya(e.r&&e.s,"Signature without r or s"),this.r=new or(e.r,16),this.s=new or(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var ba=ga;function va(){this.place=0}function Aa(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 wa(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 Ta(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)}}ga.prototype._importDER=function(e,t){e=Ys.toArray(e,t);var r=new va;if(48!==e[r.place++])return!1;var n=Aa(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=Aa(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=Aa(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 or(o),this.s=new or(a),this.recoveryParam=null,!0},ga.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=wa(t),r=wa(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Ta(n,t.length),(n=n.concat(t)).push(2),Ta(n,r.length);var i=n.concat(r),o=[48];return Ta(o,i.length),o=o.concat(i),Ys.encode(o,e)};var Ea=function(){throw new Error("unsupported")},Sa=Ys.assert;function Ia(e){if(!(this instanceof Ia))return new Ia(e);"string"==typeof e&&(Sa(Object.prototype.hasOwnProperty.call(ca,e),"Unknown curve "+e),e=ca[e]),e instanceof ca.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 ka=Ia;Ia.prototype.keyPair=function(e){return new ma(this,e)},Ia.prototype.keyFromPrivate=function(e,t){return ma.fromPrivate(this,e,t)},Ia.prototype.keyFromPublic=function(e,t){return ma.fromPublic(this,e,t)},Ia.prototype.genKeyPair=function(e){e||(e={});for(var t=new ha({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Ea(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new or(2));;){var i=new or(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Ia.prototype._truncateToN=function(e,t,r){var n;if(or.isBN(e)||"number"==typeof e)n=(e=new or(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new or(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new or(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},Ia.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!or.isBN(e)){Sa("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Sa(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Sa((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Sa(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Sa(new or(a).eq(e),"Can not sign message");for(var u=new ha({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new or(1)),c=0;;c++){var d=n.k?n.k(c):new or(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 ba({r:f,s:m,recoveryParam:y})}}}}}},Ia.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 ba(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)},Ia.prototype.recoverPubKey=function(e,t,r,n){Sa((3&r)===r,"The recovery param is more than two bits"),t=new ba(t,n);var i=this.n,o=new or(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)},Ia.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new ba(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 Pa=Ks(function(e,t){var r=t;r.version="6.6.1",r.utils=Ys,r.rand=function(){throw new Error("unsupported")},r.curve=la,r.curves=ca,r.ec=ka,r.eddsa=null}).ec;const Ca=new mr("signing-key/5.8.0");let xa=null;function _a(){return xa||(xa=new Pa("secp256k1")),xa}class Na{constructor(e){un(this,"curve","secp256k1"),un(this,"privateKey",Pr(e)),32!==Cr(this.privateKey)&&Ca.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=_a().keyFromPrivate(Tr(this.privateKey));un(this,"publicKey","0x"+t.getPublic(!1,"hex")),un(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),un(this,"_isSigningKey",!0)}_addPoint(e){const t=_a().keyFromPublic(Tr(this.publicKey)),r=_a().keyFromPublic(Tr(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=_a().keyFromPrivate(Tr(this.privateKey)),r=Tr(e);32!==r.length&&Ca.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return Rr({recoveryParam:n.recoveryParam,r:Mr("0x"+n.r.toString(16),32),s:Mr("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=_a().keyFromPrivate(Tr(this.privateKey)),r=_a().keyFromPublic(Tr(Ma(e)));return Mr("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Ma(e,t){const r=Tr(e);if(32===r.length){const e=new Na(r);return t?"0x"+_a().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Pr(r):"0x"+_a().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+_a().keyFromPublic(r).getPublic(!0,"hex"):Pr(r):Ca.throwArgumentError("invalid public or private key","key","[REDACTED]")}const Ra=new mr("transactions/5.8.0");var Oa;function Ba(e){return"0x"===e?null:Ni(e)}function Da(e){return"0x"===e?Rn:Hr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Oa||(Oa={}));const Fa=[{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 Ua(e){return Ni(xr(Ln(xr(Ma(e),1)),12))}function Ga(e,t){return Ua(function(e,t){const r=Rr(t),n={r:Tr(r.r),s:Tr(r.s)};return"0x"+_a().recoverPubKey(Tr(e),n,r.recoveryParam).encode("hex",!1)}(Tr(e),t))}function Ha(e,t){const r=Sr(Hr.from(e).toHexString());return r.length>32&&Ra.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function ja(e,t){return{address:Ni(e),storageKeys:(t||[]).map((t,r)=>(32!==Cr(t)&&Ra.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function qa(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&Ra.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),ja(e[0],e[1])):ja(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return ja(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function za(e){return qa(e).map(e=>[e.address,e.storageKeys])}function Va(e,t){if(null!=e.gasPrice){const t=Hr.from(e.gasPrice),r=Hr.from(e.maxFeePerGas||0);t.eq(r)||Ra.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?Ni(e.to):"0x",Ha(e.value||0,"value"),e.data||"0x",za(e.accessList||[])];if(t){const e=Rr(t);r.push(Ha(e.recoveryParam,"recoveryParam")),r.push(Sr(e.r)),r.push(Sr(e.s))}return _r(["0x02",Ei(r)])}function Ka(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?Ni(e.to):"0x",Ha(e.value||0,"value"),e.data||"0x",za(e.accessList||[])];if(t){const e=Rr(t);r.push(Ha(e.recoveryParam,"recoveryParam")),r.push(Sr(e.r)),r.push(Sr(e.s))}return _r(["0x01",Ei(r)])}function Wa(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Ra.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){dn(e,La);const r=[];Fa.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Tr(Pr(n,i)),t.length&&n.length!==t.length&&n.length>0&&Ra.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Sr(n),n.length>t.maxLength&&Ra.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Pr(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&Ra.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!vr(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Pr(n)),r.push("0x"),r.push("0x")),!t)return Ei(r);const i=Rr(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&&Ra.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&Ra.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Pr(o)),r.push(Sr(Tr(i.r))),r.push(Sr(Tr(i.s))),Ei(r)}(e,t);switch(e.type){case 1:return Ka(e,t);case 2:return Va(e,t)}return Ra.throwError(`unsupported transaction type: ${e.type}`,mr.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function Ja(e,t,r){try{const r=Da(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){Ra.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Mr(t[1],32),e.s=Mr(t[2],32);try{const t=Ln(r(e));e.from=Ga(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const Qa=new mr(Vs);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=hn(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 qa(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),Ir(e))?e.toLowerCase():Qa.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 Ni(e)}callAddress(e){if(!Ir(e,32))return null;const t=Ni(xr(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Mi(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||Ir(e))return Nr(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==Cr(r)?Qa.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(!Ir(e))throw new Error("invalid uint256");return Mr(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: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 Ya.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=Ya.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;Ir(r)&&(r=Hr.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),Ir(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=Tr(e);if(t[0]>127)return function(e){const t=ki(e);9!==t.length&&6!==t.length&&Ra.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:Da(t[0]).toNumber(),gasPrice:Da(t[1]),gasLimit:Da(t[2]),to:Ba(t[3]),value:Da(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=Mr(t[7],32),r.s=Mr(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(Pr(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=Ln(Ei(i));try{r.from=Ga(o,{r:Pr(r.r),s:Pr(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=ki(e.slice(1));8!==t.length&&11!==t.length&&Ra.throwArgumentError("invalid component count for transaction type: 1","payload",Pr(e));const r={type:1,chainId:Da(t[0]).toNumber(),nonce:Da(t[1]).toNumber(),gasPrice:Da(t[2]),gasLimit:Da(t[3]),to:Ba(t[4]),value:Da(t[5]),data:t[6],accessList:qa(t[7])};return 8===t.length||(r.hash=Ln(e),Ja(r,t.slice(8),Ka)),r}(t);case 2:return function(e){const t=ki(e.slice(1));9!==t.length&&12!==t.length&&Ra.throwArgumentError("invalid component count for transaction type: 2","payload",Pr(e));const r=Da(t[2]),n=Da(t[3]),i={type:2,chainId:Da(t[0]).toNumber(),nonce:Da(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:Da(t[4]),to:Ba(t[5]),value:Da(t[6]),data:t[7],accessList:qa(t[8])};return 9===t.length||(i.hash=Ln(e),Ja(i,t.slice(9),Va)),i}(t)}return Ra.throwError(`unsupported transaction type: ${t[0]}`,mr.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=Hr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Qa.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Qa.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Qa.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 Xa=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 Za=new mr(Vs);function $a(e){return null==e?"null":(32!==Cr(e)&&Za.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function eu(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[$a(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return $a(e)}).join("&")}function tu(e){if("string"==typeof e){if(32===Cr(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+eu(e);if(vn.isForkEvent(e))throw Za.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+eu(e.topics||[])}throw new Error("invalid event - "+e)}function ru(){return(new Date).getTime()}function nu(e){return new Promise(t=>{setTimeout(t,e)})}const iu=["block","network","pending","poll"];class ou{constructor(e,t,r){un(this,"tag",e),un(this,"listener",t),un(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||iu.indexOf(this.tag)>=0}}const su={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 au(e){return Mr(Hr.from(e).toHexString(),32)}function uu(e){return Nn.encode(Er([e,xr(_s(_s(e)),0,4)]))}const lu=new RegExp("^(ipfs)://(.*)$","i"),cu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),lu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function du(e,t){try{return Kn(hu(e,t))}catch(e){}return null}function hu(e,t){if("0x"===e)return null;const r=Hr.from(xr(e,t,t+32)).toNumber(),n=Hr.from(xr(e,r,r+32)).toNumber();return xr(e,r+32,r+32+n)}function pu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Za.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function fu(e){const t=Tr(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 mu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function yu(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=Tr(e[n]);t[n]=fu(r),t.push(fu(i.length)),t.push(mu(i)),r+=32+32*Math.ceil(i.length/32)}return _r(t)}class gu{constructor(e,t,r,n){un(this,"provider",e),un(this,"name",r),un(this,"address",e.formatter.address(t)),un(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===mr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return Xa(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:_r([e,bi(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=_r(["0x9061b923",yu([(i=this.name,Pr(Er(gi(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 Tr(e).length%32==4&&Za.throwError("resolver threw error",mr.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=hu(e,0)),e}catch(e){if(e.code===mr.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return Xa(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?hu(r,0):null})}_getAddress(e,t){const r=su[String(e)];if(null==r&&Za.throwError(`unsupported coin type: ${e}`,mr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Tr(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 uu(Er([[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 uu(Er([[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=zs(t)^n>>5}for(t=zs(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=zs(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=zs(n)^s,i+=Gs.charAt(s)}for(o=0;o<6;++o)n=zs(n);for(n^=1,o=0;o<6;++o)i+=Gs.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return Xa(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===mr.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",au(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&Za.throwError("invalid or unsupported coin data",mr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return Xa(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<cu.length;r++){const n=t.match(cu[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:pu(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=Mr(Hr.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:_r(["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:_r(["0x00fdd58e",Mr(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:_r([r,u])};let c=du(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=pu(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(lu))return null;e.push({type:"url-ipfs",content:h}),h=pu(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return Xa(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://"+Nn.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://"+Nn.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://"+xn("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return Za.throwError("invalid or unsupported content hash data",mr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return Xa(this,void 0,void 0,function*(){let t=Vn(e);t=Er([au(64),au(t.length),t]),t.length%32!=0&&(t=Er([t,Mr("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Pr(t));return null==r||"0x"===r?null:Kn(r)})}}let bu=null,vu=1;class Au extends An{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),un(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=ln(new.target,"getNetwork")(e);t?(un(this,"_network",t),this.emit("network",t,null)):Za.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Xa(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||Za.throwError("no network detected",mr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:un(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Us(()=>this._ready().then(e=>e,e=>{if(e.code!==mr.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==bu&&(bu=new Ya),bu}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Pn){const r=Pn[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=Pn[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Pn[e.name];if(!t)return"number"!=typeof e.chainId&&wn.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&wn.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 Xa(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 Za.throwError(`response not found during CCIP fetch: ${l}`,mr.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return Za.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,mr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return Xa(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(ru()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=ru(),r=cn({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=ru();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 Xa(this,void 0,void 0,function*(){const e=vu++,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)Za.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",Za.makeError("network block skew detected",mr.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 Xa(this,void 0,void 0,function*(){return Za.throwError("provider does not support network detection",mr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Xa(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 nu(0),this._network;const r=Za.makeError("underlying network changed",mr.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=ru();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=ru(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return Xa(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return Xa(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=>Xa(this,void 0,void 0,function*(){a||(yield nu(1e3),this.getTransactionCount(n.from).then(c=>Xa(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(Za.makeError("transaction was replaced",mr.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(Za.makeError("timeout exceeded",mr.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return Xa(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return Hr.from(e)}catch(t){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield cn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return Hr.from(n)}catch(e){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield cn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return Hr.from(n).toNumber()}catch(e){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield cn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Pr(n)}catch(e){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield cn({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>Nr(e))}),i=yield this.perform("getStorageAt",n);try{return Pr(i)}catch(e){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==Cr(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&Za.throwError("Transaction hash mismatch from Provider.sendTransaction.",mr.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>Xa(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&&Za.throwError("transaction failed",mr.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Pr(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 Xa(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?Pr(e):null))}),this.formatter.transactionRequest(yield cn(r))})}_getFilter(e){return Xa(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 cn(t))})}_call(e,t,r){return Xa(this,void 0,void 0,function*(){r>=10&&Za.throwError("CCIP read exceeded maximum redirections",mr.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)&&Cr(i)%32==4)try{const o=xr(i,4),s=xr(o,0,32);Hr.from(s).eq(n)||Za.throwError("CCIP Read sender did not match",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=Hr.from(xr(o,32,64)).toNumber(),l=Hr.from(xr(o,u,u+32)).toNumber(),c=xr(o,u+32);for(let t=0;t<l;t++){const r=du(c,32*t);null==r&&Za.throwError("CCIP Read contained corrupt URL string",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=hu(o,64);Hr.from(xr(o,100,128)).isZero()||Za.throwError("CCIP Read callback selector included junk",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=xr(o,96,100),p=hu(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&Za.throwError("CCIP Read disabled or provided no URLs",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:_r([h,yu([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===mr.errors.SERVER_ERROR)throw e}try{return Pr(i)}catch(r){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return Xa(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield cn({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 Xa(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield cn({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return Hr.from(r)}catch(e){return Za.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return Xa(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&Za.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Za.throwError("ENS name not configured",mr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return Xa(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(Ir(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),Ir(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){Za.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Us(()=>Xa(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 Xa(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Us(()=>Xa(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 Xa(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Us(()=>Xa(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 Xa(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield cn({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 Xa(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return Xa(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Za.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 Xa(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 gu(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return Xa(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||Za.throwError("network does not support ENS",mr.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+bi(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return Xa(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Ir(e))throw t}"string"!=typeof e&&Za.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return Xa(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=du(yield this.call({to:r,data:"0x691f3431"+bi(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return Xa(this,void 0,void 0,function*(){let t=null;if(Ir(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new gu(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==mr.errors.CALL_EXCEPTION)throw e}try{const e=du(yield this.call({to:n,data:"0x691f3431"+bi(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==mr.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 Za.throwError(e+" not implemented",mr.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 ou(tu(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=tu(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=tu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=tu(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=tu(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=tu(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var wu=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 Tu=new mr(Vs),Eu=["call","estimateGas"];function Su(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=Ir(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=Su(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Su(JSON.parse(e),t)}catch(e){}return null}function Iu(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Su(t,!0);if(e)return e.data;Tu.throwError("missing revert data in call exception; Transaction reverted without a reason string",mr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Su(t.body,!1);null==r&&(r=Su(t,!1)),r&&Tu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",mr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===mr.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)&&Tu.throwError("insufficient funds for intrinsic transaction cost",mr.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Tu.throwError("nonce has already been used",mr.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Tu.throwError("replacement fee too low",mr.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Tu.throwError("legacy pre-eip-155 transactions not supported",mr.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),Eu.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Tu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",mr.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function ku(e){return new Promise(function(t){setTimeout(t,e)})}function Pu(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 Cu(e){return e?e.toLowerCase():e}const xu={};class _u extends I{constructor(e,t,r){if(super(),e!==xu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");un(this,"provider",t),null==r&&(r=0),"string"==typeof r?(un(this,"_address",this.provider.formatter.address(r)),un(this,"_index",null)):"number"==typeof r?(un(this,"_index",r),un(this,"_address",null)):Tu.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Tu.throwError("cannot alter JSON-RPC Signer connection",mr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Nu(xu,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&&Tu.throwError("unknown account #"+this._index,mr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=hn(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=hn(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>wu(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Tu.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),cn({tx:cn(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Tu.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)&&Tu.throwError("user rejected transaction",mr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Iu("sendTransaction",e,n)))})}signTransaction(e){return Tu.throwError("signing transactions is unsupported",mr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return wu(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 Us(()=>wu(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 wu(this,void 0,void 0,function*(){const t="string"==typeof e?Vn(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Pr(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Tu.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return wu(this,void 0,void 0,function*(){const t="string"==typeof e?Vn(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Pr(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Tu.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return wu(this,void 0,void 0,function*(){const n=yield Wi.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(Wi.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Tu.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return wu(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class Nu extends _u{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 Mu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class Ru extends Au{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=ln(this.constructor,"defaultUrl")()),un(this,"connection",Object.freeze("string"==typeof e?{url:e}:hn(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 wu(this,void 0,void 0,function*(){yield ku(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=ln(this.constructor,"getNetwork");try{return t(Hr.from(e).toNumber())}catch(t){return Tu.throwError("could not detect network",mr.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Tu.throwError("could not detect network",mr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new _u(xu,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:yn(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),Pu).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",[Cu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Cu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Cu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Cu(t.address),Mr(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",[ln(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[ln(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Cu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return wu(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=hn(t)).transaction=hn(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Tu.throwError(e+" not implemented",mr.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return Iu(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 ku(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=hn(Mu);if(t)for(const e in t)t[e]&&(r[e]=!0);dn(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=Nr(Hr.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Pr(e[t]))}),e.accessList&&(n.accessList=qa(e.accessList)),n}}const Ou=new mr("random/5.8.0"),Bu=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 Du=Bu.crypto||Bu.msCrypto;function Fu(e){(e<=0||e>1024||e%1||e!=e)&&Ou.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Du.getRandomValues(t),Tr(t)}Du&&Du.getRandomValues||(Ou.warn("WARNING: Missing strong random number source"),Du={getRandomValues:function(e){return Ou.throwError("no secure random source avaialble",mr.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Lu=new mr(Vs);let Uu=1;function Gu(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:Uu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:yn(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 Ru{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:yn(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=Gu(0,e.sendAsync.bind(e)):e.send?n=Gu(0,e.send.bind(e)):Lu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),un(this,"jsonRpcFetchFunc",n),un(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function ju(e,t,r,n,i){let o;e=Tr(e),t=Tr(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=Tr(Ns(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=Tr(Ns(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(Tr(c).slice(0,f),p)}return Pr(a)}new mr(Vs);const qu=new mr("wordlists/5.8.0");class zu{constructor(e){qu.checkAbstract(new.target,zu),un(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 Wn(t.join("\n")+"\n")}static register(e,t){}}const Vu="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let Ku=null;function Wu(e){if(null==Ku&&(Ku=Vu.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==zu.check(e)))throw Ku=null,new Error("BIP39 Wordlist for en (English) FAILED")}const Ju=new class extends zu{constructor(){super("en")}getWord(e){return Wu(this),Ku[e]}getWordIndex(e){return Wu(this),Ku.indexOf(e)}};zu.register(Ju);const Qu={en:Ju},Yu=new mr("hdnode/5.8.0"),Xu=Hr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Zu=Vn("Bitcoin seed"),$u=2147483648;function el(e){return(1<<e)-1<<8-e}function tl(e){return Mr(Pr(e),32)}function rl(e){return Nn.encode(Er([e,xr(_s(_s(e)),0,4)]))}function nl(e){if(null==e)return Qu.en;if("string"==typeof e){const t=Qu[e];return null==t&&Yu.throwArgumentError("unknown locale","wordlist",e),t}return e}const il={},ol="m/44'/60'/0'/0/0";class sl{constructor(e,t,r,n,i,o,s,a){if(e!==il)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Na(t);un(this,"privateKey",e.privateKey),un(this,"publicKey",e.compressedPublicKey)}else un(this,"privateKey",null),un(this,"publicKey",Pr(r));var u;un(this,"parentFingerprint",n),un(this,"fingerprint",xr((u=_s(this.publicKey),"0x"+Cs.ripemd160().update(Tr(u)).digest("hex")),0,4)),un(this,"address",Ua(this.publicKey)),un(this,"chainCode",i),un(this,"index",o),un(this,"depth",s),null==a?(un(this,"mnemonic",null),un(this,"path",null)):"string"==typeof a?(un(this,"mnemonic",null),un(this,"path",a)):(un(this,"mnemonic",a),un(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return rl(Er([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Pr(this.depth),this.parentFingerprint,Mr(Pr(this.index),4),this.chainCode,null!=this.privateKey?Er(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new sl(il,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&$u){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Tr(this.privateKey),1),t&&(t+="'")}else r.set(Tr(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Tr(Ns(ks.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=tl(Hr.from(i).add(this.privateKey).mod(Xu)):a=new Na(Pr(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 sl(il,s,a,this.fingerprint,tl(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>=$u)throw new Error("invalid path index - "+n);r=r._derive($u+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=$u)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Tr(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Tr(Ns(ks.sha512,Zu,r));return new sl(il,tl(n.slice(0,32)),null,"0x00000000",tl(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=ul(al(e,r=nl(r)),r),sl._fromSeed(function(e,t){t||(t="");const r=Vn("mnemonic"+t,Gn.NFKD);return ju(Vn(e,Gn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return sl._fromSeed(e,null)}static fromExtendedKey(e){const t=Nn.decode(e);82===t.length&&rl(t.slice(0,78))===e||Yu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Pr(t.slice(5,9)),i=parseInt(Pr(t.slice(9,13)).substring(2),16),o=Pr(t.slice(13,45)),s=t.slice(45,78);switch(Pr(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new sl(il,null,Pr(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new sl(il,Pr(s.slice(1)),null,n,o,i,r,null)}return Yu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function al(e,t){t=nl(t),Yu.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Tr(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=el(r.length/3);if((Tr(_s(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Pr(n.slice(0,o/8))}function ul(e,t){if(t=nl(t),(e=Tr(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=Tr(_s(e))[0]&el(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var ll=nr(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 k(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 P=function(e){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};P.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=k(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]},P.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=k(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},P.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=k(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 C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new P(e)};C.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},C.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 x=function(e,t){if(!(this instanceof x))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 P(e)};x.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},x.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 P(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 P(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 P(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:P,Counter:M,ModeOfOperation:{ecb:C,cbc:x,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 cl="json-wallets/5.8.0";function dl(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Tr(e)}function hl(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function pl(e){return"string"==typeof e?Vn(e,Gn.NFKC):Tr(e)}function fl(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 ml(e){const t=Tr(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Pr(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const yl=new mr(cl);class gl extends gn{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function bl(e,t){const r=JSON.parse(e);t=pl(t);const n=Ni(fl(r,"ethaddr")),i=dl(fl(r,"encseed"));i&&i.length%16==0||yl.throwArgumentError("invalid encseed","json",e);const o=Tr(ju(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new ll.ModeOfOperation.cbc(o,s),l=ll.padding.pkcs7.strip(Tr(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=Ln(Vn(c));return new gl({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function vl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Al(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 wl=nr(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,k=!1,P=0,C=0;const x=p?parseInt(1e3/s):4294967295,_="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(k)return p(new Error("cancelled"),S/w);let t;switch(P){case 0:E=32*C*s,l(m,E,y,0,b),P=1,T=0;case 1:t=n-T,t>x&&(t=x);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(k=p(null,S/w),k)break;I=e}}if(T<n)break;T=0,P=2;case 2:t=n-T,t>x&&(t=x);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(k=p(null,S/w),k)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),C++,C<a){P=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}()}),Tl=wl;const El=new mr(cl);function Sl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Il extends gn{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function kl(e,t){const r=dl(fl(e,"crypto/ciphertext"));if(Pr(Ln(Er([t.slice(16,32),r]))).substring(2)!==fl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===fl(e,"crypto/cipher")){const n=dl(fl(e,"crypto/cipherparams/iv")),i=new ll.Counter(n);return Tr(new ll.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||El.throwError("unsupported cipher",mr.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=Ua(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Ni(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Pr(n)};if("0.1"===fl(e,"x-ethers/version")){const t=dl(fl(e,"x-ethers/mnemonicCiphertext")),r=dl(fl(e,"x-ethers/mnemonicCounter")),n=new ll.Counter(r),o=new ll.ModeOfOperation.ctr(i,n),a=fl(e,"x-ethers/path")||ol,u=fl(e,"x-ethers/locale")||"en",l=Tr(o.decrypt(t));try{const e=ul(l,u),t=sl.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!==mr.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Il(s)}function Pl(e,t,r,n,i){return Tr(ju(e,t,r,n,i))}function Cl(e,t,r,n,i){return Promise.resolve(Pl(e,t,r,n,i))}function xl(e,t,r,n,i){const o=pl(t),s=fl(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return El.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=dl(fl(e,"crypto/kdfparams/salt")),a=parseInt(fl(e,"crypto/kdfparams/n")),u=parseInt(fl(e,"crypto/kdfparams/r")),l=parseInt(fl(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(fl(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=dl(fl(e,"crypto/kdfparams/salt"));let i=null;const s=fl(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(fl(e,"crypto/kdfparams/c")),u=parseInt(fl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return El.throwArgumentError("unsupported key-derivation function","kdf",s)}var _l=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 Nl=new mr("wallet/5.8.0");class Ml extends I{constructor(e,t){if(super(),null!=(r=e)&&Ir(r.privateKey,32)&&null!=r.address){const t=new Na(e.privateKey);if(un(this,"_signingKey",()=>t),un(this,"address",Ua(this.publicKey)),this.address!==Ni(e.address)&&Nl.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;un(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||ol,locale:t.locale||"en"}));const r=this.mnemonic;Ua(sl.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&Nl.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else un(this,"_mnemonic",()=>null)}else{if(Na.isSigningKey(e))"secp256k1"!==e.curve&&Nl.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),un(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Na(e);un(this,"_signingKey",()=>t)}un(this,"_mnemonic",()=>null),un(this,"address",Ua(this.publicKey))}var r;t&&!An.isProvider(t)&&Nl.throwArgumentError("invalid provider","provider",t),un(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 Ml(this,e)}signTransaction(e){return cn(e).then(t=>{null!=t.from&&(Ni(t.from)!==this.address&&Nl.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(Ln(Wa(t)));return Wa(t,r)})}signMessage(e){return _l(this,void 0,void 0,function*(){return Or(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=Vn(e)),Ln(Er([Vn("Ethereum Signed Message:\n"),Vn(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return _l(this,void 0,void 0,function*(){const n=yield Wi.resolveNames(e,t,r,e=>(null==this.provider&&Nl.throwError("cannot resolve ENS names without a provider",mr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Or(this._signingKey().signDigest(Wi.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(Ni(e.address)!==Ua(e.privateKey))throw new Error("address/privateKey mismatch");if(Sl(e)){const t=e.mnemonic;if(sl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||ol).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=Tr(e.privateKey),o=pl(t);let s=null,a=null,u=null;if(Sl(e)){const t=e.mnemonic;s=Tr(al(t.phrase,t.locale||"en")),a=t.path||ol,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Tr(r.salt):Fu(32);let d=null;if(r.iv){if(d=Tr(r.iv),16!==d.length)throw new Error("invalid iv")}else d=Fu(16);let h=null;if(r.uuid){if(h=Tr(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=Fu(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)),Tl.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Tr(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new ll.Counter(d),g=Tr(new ll.ModeOfOperation.ctr(r,y).encrypt(i)),b=Ln(Er([n,g])),v={address:e.address.substring(2).toLowerCase(),id:ml(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Pr(d).substring(2)},ciphertext:Pr(g).substring(2),kdf:"scrypt",kdfparams:{salt:Pr(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=Fu(16),t=new ll.Counter(e),r=Tr(new ll.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+hl(n.getUTCMonth()+1,2)+"-"+hl(n.getUTCDate(),2)+"T"+hl(n.getUTCHours(),2)+"-"+hl(n.getUTCMinutes(),2)+"-"+hl(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Pr(e).substring(2),mnemonicCiphertext:Pr(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=Fu(16);e||(e={}),e.extraEntropy&&(t=Tr(xr(Ln(Er([t,e.extraEntropy])),0,16)));const r=ul(t,e.locale);return Ml.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(vl(e)){r&&r(0);const n=bl(e,t);return r&&r(1),Promise.resolve(n)}return Al(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return kl(n,yield xl(n,t,Cl,Tl.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 Ml(e))}static fromEncryptedJsonSync(e,t){return new Ml(function(e,t){if(vl(e))return bl(e,t);if(Al(e))return function(e,t){const r=JSON.parse(e);return kl(r,xl(r,t,Pl,Tl.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=ol),new Ml(sl.fromMnemonic(e,null,r).derivePath(t))}}function Rl(e){return"string"==typeof e?new Ml(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(Bl(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=Rl(e.signer),o=e.owner;return Promise.resolve(o?n(o):Promise.resolve(i.getAddress()).then(n))}catch(s){return Promise.reject(s)}},Bl=function(e,t,r,n){try{const{appCode:i,chainId:o,account:s}=t,a=qt(e),u=a?{...e,...Wt(o,e)}:e,{sellToken:l,sellTokenDecimals:c,buyToken:d,buyTokenDecimals:h,amount:p,kind:f,partnerFee:m,validFor:y=Et,slippageBps:g=St,env:b="prod"}=u;ze(`Swap ${p} ${l} for ${d} on chain ${o}`);const A=n||new et({chainId:o,env:b}),w=u.receiver||s,T="sell"===f;return ze("Building app data..."),Promise.resolve($t({slippageBps:g,orderClass:"market",appCode:i,partnerFee:m},r?.appData)).then(function(e){const{appDataKeccak256:t,fullAppData:n}=e;ze(`App data: appDataKeccak256=${t} fullAppData=${n}`);const i={from:s,sellToken:l,buyToken:d,receiver:w,validFor:y,appData:n,appDataHash:t,priceQuality:pt.OPTIMAL,signingScheme:mt.EIP712,...a?Dl:{},...T?{kind:ct.SELL,sellAmountBeforeFee:p}:{kind:lt.BUY,buyAmountAfterFee:p},...r?.quoteRequest};return ze("Getting quote..."),Promise.resolve(A.getQuote(i)).then(function(t){const r=gt({orderParams:t.quote,slippagePercentBps:g,partnerFeeBps:m?.bps,sellDecimals:c,buyDecimals:h}),n=_t({from:s,networkCostsAmount:t.quote.feeAmount},jt(u,t),e.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(xt.getDomain(e)).then(function(e){return{domain:e,primaryType:G,types:{[G]:v,EIP712Domain:tr},message:t}})}catch(e){return Promise.reject(e)}}(o,n)).then(function(i){return{result:{tradeParameters:u,amountsAndCosts:r,orderToSign:n,quoteResponse:t,appDataInfo:e,orderTypedData:i},orderBookApi:A}})})})}catch(e){return Promise.reject(e)}},Dl={signingScheme:mt.EIP1271,onchainOrder:!0,verificationGasLimit:0},Fl=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;if(void 0!==i&&(a.slippageBps=i),s&&(a.partnerFee=s),o?.quoteRequest){const{receiver:e,validTo:t,sellToken:r,buyToken:n}=o.quoteRequest;e&&(a.receiver=e),t&&(a.validTo=t),r&&(a.sellToken=r),n&&(a.buyToken=n)}return Yt(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=jt(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(Xt(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 Fl(e,t)})}catch(e){return Promise.reject(e)}},Ul=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;ze(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=Rl(e.signer),p=r||new et({chainId:s,env:e.env});return ze("Building app data..."),Promise.resolve($t({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return Yt(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},Gl=function(e,t,r,n){try{const i=Ht.connect(r,e),o=Re[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),Pt))).then(function(e){return{data:s,gasLimit:"0x"+zt(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&&Ve(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=>Fl({...t,result:{...t.result,tradeParameters:Kt({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(Ul(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 Qt(r.orderBookApi,r.result.signer,r.result.appDataInfo,jt(Kt({quoteParameters:n,orderParameters:e}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=Rl(t.signer);return Promise.resolve(Gl(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===jl(e).length}(e))throw new Error("Missing trader parameters: "+jl(e).join(", "))}(o),{...e,...o}}}function jl(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}function ql(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000"}}function zl(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const Vl=new mr("units/5.8.0"),Kl=["wei","kwei","mwei","gwei","szabo","finney","ether"],Wl="abi/5.8.0",Jl=new mr(Wl),Ql={};let Yl={calldata:!0,memory:!0,storage:!0},Xl={calldata:!0,memory:!0};function Zl(e,t){if("bytes"===e||"string"===e){if(Yl[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Xl[t])return!0;return(Yl[t]||"payable"===t)&&Jl.throwArgumentError("invalid modifier","name",t),!1}function $l(e,t){for(let r in t)un(e,r,t[r])}const ec=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),tc=new RegExp(/^(.*)\[([0-9]*)\]$/);class rc{constructor(e,t){e!==Ql&&Jl.throwError("use fromString",mr.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),$l(this,t);let r=this.type.match(tc);$l(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:rc.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=ec.sighash),ec[e]||Jl.throwArgumentError("invalid format type","format",e),e===ec.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!==ec.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===ec.full?", ":",")+")"):t+=this.type,e!==ec.sighash&&(!0===this.indexed&&(t+=" indexed"),e===ec.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?rc.fromString(e,t):rc.fromObject(e)}static fromObject(e){return rc.isParamType(e)?e:new rc(Ql,{name:e.name||null,type:pc(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(rc.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){Jl.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=pc(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=""),Zl(s.type,s.name)&&(s.name=""),s.type=pc(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=""),Zl(s.type,s.name)&&(s.name=""),s.type=pc(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=pc(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=""):Zl(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&&Jl.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=""):Zl(s.type,s.name)&&(s.name=""),o.type=pc(o.type),o}(e,!!t),rc.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function nc(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&&Jl.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>rc.fromString(e,t))}class ic{constructor(e,t){e!==Ql&&Jl.throwError("use a static from method",mr.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),$l(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return ic.isFragment(e)?e:"string"==typeof e?ic.fromString(e):ic.fromObject(e)}static fromObject(e){if(ic.isFragment(e))return e;switch(e.type){case"function":return cc.fromObject(e);case"event":return oc.fromObject(e);case"constructor":return lc.fromObject(e);case"error":return hc.fromObject(e);case"fallback":case"receive":return null}return Jl.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]?oc.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?cc.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?lc.fromString(e.trim()):"error"===e.split(" ")[0]?hc.fromString(e.substring(5).trim()):Jl.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class oc extends ic{format(e){if(e||(e=ec.sighash),ec[e]||Jl.throwArgumentError("invalid format type","format",e),e===ec.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!==ec.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===ec.full?", ":",")+") ",e!==ec.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?oc.fromString(e):oc.fromObject(e)}static fromObject(e){if(oc.isEventFragment(e))return e;"event"!==e.type&&Jl.throwArgumentError("invalid event object","value",e);const t={name:mc(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(rc.fromObject):[],type:"event"};return new oc(Ql,t)}static fromString(e){let t=e.match(yc);t||Jl.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:Jl.warn("unknown modifier: "+e)}}),oc.fromObject({name:t[1].trim(),anonymous:r,inputs:nc(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function sc(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&Jl.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||Jl.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Hr.from(r[1]),r[0]):e}function ac(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 uc(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&&Jl.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Jl.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||Jl.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Jl.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&&Jl.throwArgumentError("unable to determine stateMutability","value",e),t}class lc extends ic{format(e){if(e||(e=ec.sighash),ec[e]||Jl.throwArgumentError("invalid format type","format",e),e===ec.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===ec.sighash&&Jl.throwError("cannot format a constructor for sighash",mr.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===ec.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?lc.fromString(e):lc.fromObject(e)}static fromObject(e){if(lc.isConstructorFragment(e))return e;"constructor"!==e.type&&Jl.throwArgumentError("invalid constructor object","value",e);let t=uc(e);t.constant&&Jl.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(rc.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Hr.from(e.gas):null};return new lc(Ql,r)}static fromString(e){let t={type:"constructor"},r=(e=sc(e,t)).match(yc);return r&&"constructor"===r[1].trim()||Jl.throwArgumentError("invalid constructor string","value",e),t.inputs=nc(r[2].trim(),!1),ac(r[3].trim(),t),lc.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class cc extends lc{format(e){if(e||(e=ec.sighash),ec[e]||Jl.throwArgumentError("invalid format type","format",e),e===ec.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!==ec.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===ec.full?", ":",")+") ",e!==ec.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?cc.fromString(e):cc.fromObject(e)}static fromObject(e){if(cc.isFunctionFragment(e))return e;"function"!==e.type&&Jl.throwArgumentError("invalid function object","value",e);let t=uc(e);const r={type:e.type,name:mc(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(rc.fromObject):[],outputs:e.outputs?e.outputs.map(rc.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Hr.from(e.gas):null};return new cc(Ql,r)}static fromString(e){let t={type:"function"},r=(e=sc(e,t)).split(" returns ");r.length>2&&Jl.throwArgumentError("invalid function string","value",e);let n=r[0].match(yc);if(n||Jl.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&mc(t.name),t.inputs=nc(n[2],!1),ac(n[3].trim(),t),r.length>1){let n=r[1].match(yc);""==n[1].trim()&&""==n[3].trim()||Jl.throwArgumentError("unexpected tokens","value",e),t.outputs=nc(n[2],!1)}else t.outputs=[];return cc.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function dc(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Jl.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class hc extends ic{format(e){if(e||(e=ec.sighash),ec[e]||Jl.throwArgumentError("invalid format type","format",e),e===ec.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==ec.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===ec.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?hc.fromString(e):hc.fromObject(e)}static fromObject(e){if(hc.isErrorFragment(e))return e;"error"!==e.type&&Jl.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:mc(e.name),inputs:e.inputs?e.inputs.map(rc.fromObject):[]};return dc(new hc(Ql,t))}static fromString(e){let t={type:"error"},r=e.match(yc);return r||Jl.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&mc(t.name),t.inputs=nc(r[2],!1),dc(hc.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function pc(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const fc=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function mc(e){return e&&e.match(fc)||Jl.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const yc=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),gc=new mr(Wl);class bc{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){gc.throwArgumentError(e,this.localName,t)}}class vc{constructor(e){un(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return _r(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(Er(e._data))}writeBytes(e){let t=Tr(e);const r=t.length%this.wordSize;return r&&(t=Er([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Tr(Hr.from(e));return t.length>this.wordSize&&gc.throwError("value out-of-bounds",mr.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Er([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 Ac{constructor(e,t,r,n){un(this,"_data",Tr(e)),un(this,"wordSize",t||32),un(this,"_coerceFunc",r),un(this,"allowLoose",n),this._offset=0}get data(){return Pr(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):Ac.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:gc.throwError("data out-of-bounds",mr.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Ac(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 wc extends bc{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Ni(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Ni(Mr(e.readValue().toHexString(),20))}}class Tc extends bc{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 Ec=new mr(Wl);function Sc(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||Ec.throwError("cannot encode object for signature with missing names",mr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Ec.throwError("cannot encode object for signature with duplicate names",mr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else Ec.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Ec.throwArgumentError("types/value length mismatch","tuple",r);let i=new vc(e.wordSize),o=new vc(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 Ic(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===mr.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===mr.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 kc extends bc{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)),Ec.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 Sc(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Ec.throwError("insufficient data length",mr.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new Tc(this.coder));return e.coerce(this.name,Ic(e,r))}}class Pc extends bc{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 Cc extends bc{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Tr(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class xc extends Cc{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Pr(super.decode(e)))}}class _c extends bc{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=Tr(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Pr(e.readBytes(this.size)))}}class Nc extends bc{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 Mc extends bc{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=Bn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(On).mul(Mn)))&&this._throwError("value out-of-bounds",t)}else(r.lt(Rn)||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 Cc{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Vn(t))}decode(e){return Kn(super.decode(e))}}class Oc extends bc{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 Sc(e,this.coders,t)}decode(e){return e.coerce(this.name,Ic(e,this.coders))}}const Bc=new mr(Wl),Dc=new RegExp(/^bytes([0-9]*)$/),Fc=new RegExp(/^(u?int)([0-9]*)$/),Lc=new class{constructor(e){un(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new wc(e.name);case"bool":return new Pc(e.name);case"string":return new Rc(e.name);case"bytes":return new xc(e.name);case"array":return new kc(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Oc((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Nc(e.name)}let t=e.type.match(Fc);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&Bc.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Mc(r/8,"int"===t[1],e.name)}if(t=e.type.match(Dc),t){let r=parseInt(t[1]);return(0===r||r>32)&&Bc.throwArgumentError("invalid bytes length","param",e),new _c(r,e.name)}return Bc.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Ac(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new vc(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(rc.from(e)));return new Oc(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Bc.throwError("types/values length mismatch",mr.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(rc.from(e))),n=new Oc(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(rc.from(e)));return new Oc(n,"_").decode(this._getReader(Tr(t),r))}},Uc=new mr(Wl);class Gc extends gn{}class Hc extends gn{}class jc extends gn{}class qc extends gn{static isIndexed(e){return!(!e||!e._isIndexed)}}const zc={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Vc(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class Kc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,un(this,"fragments",t.map(e=>ic.from(e)).filter(e=>null!=e)),un(this,"_abiCoder",ln(new.target,"getAbiCoder")()),un(this,"functions",{}),un(this,"errors",{}),un(this,"events",{}),un(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Uc.warn("duplicate definition - constructor"):void un(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||un(this,"deploy",lc.from({payable:!1,type:"constructor"})),un(this,"_isInterface",!0)}format(e){e||(e=ec.full),e===ec.sighash&&Uc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===ec.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Lc}static getAddress(e){return Ni(e)}static getSighash(e){return xr(Wn(e.format()),0,4)}static getEventTopic(e){return Wn(e.format())}getFunction(e){if(Ir(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[cc.fromString(e).format()];return t||Uc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Ir(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[oc.fromString(e).format()];return t||Uc.throwArgumentError("no matching event","signature",e),t}getError(e){if(Ir(e)){const t=ln(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[cc.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 ln(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),ln(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=Tr(t);return Pr(r.slice(0,4))!==this.getSighash(e)&&Uc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Pr(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Pr(Er([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Tr(t);return Pr(r.slice(0,4))!==this.getSighash(e)&&Uc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Pr(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Pr(Er([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Tr(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=Pr(r.slice(0,4)),t=zc[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,mr.errors.CALL_EXCEPTION,{method:e.format(),data:Pr(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Pr(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(),mr.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?Wn(t):"bytes"===e.type?Ln(Pr(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]),Mr(Pr(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(Wn(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);Ir(r[0],32)&&r[0].toLowerCase()===t||Uc.throwError("fragment/topic mismatch",mr.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(rc.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,Er(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 qc({_isIndexed:!0,hash:null});else if(o[t])u[t]=new qc({_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 Vc(`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 Vc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Hc({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 Gc({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Pr(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new jc({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 Wc=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 Jc=new mr("contracts/5.8.0");function Qc(e,t){return Wc(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&Jc.throwArgumentError("invalid address or ENS name","name",r);try{return Ni(r)}catch(e){}e||Jc.throwError("a provider or signer is needed to resolve ENS names",mr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&Jc.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function Yc(e,t,r){return Wc(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>Yc(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield Qc(e,t):"tuple"===r.type?yield Yc(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>Yc(e,t,r.arrayChildren))):Promise.reject(Jc.makeError("invalid value for array",mr.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Xc(e,t,r){return Wc(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=hn(r.pop())),Jc.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?cn({override:Qc(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>Wc(this,void 0,void 0,function*(){return Ni(e.signer)!==e.override&&Jc.throwError("Contract with a Signer cannot override from",mr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=Qc(e.provider,n.from));const i=yield cn({args:Yc(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:cn(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=qa(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Tr(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||Jc.throwError("non-payable method cannot override value",mr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=hn(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&&Jc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,mr.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function Zc(e,t,r){const n=e.signer||e.provider;return function(...i){return Wc(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=hn(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 Xc(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===mr.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function $c(e,t,r){return t.constant?Zc(e,t,r):function(e,t){return function(...r){return Wc(this,void 0,void 0,function*(){e.signer||Jc.throwError("sending a transaction requires a signer",mr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield Xc(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=yn(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 ed(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 td{constructor(e,t){un(this,"tag",e),un(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 rd extends td{constructor(){super("error",null)}}class nd extends td{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&Jc.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(ed(i),i),un(this,"address",e),un(this,"interface",t),un(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 id extends td{constructor(e,t){super("*",{address:e}),un(this,"address",e),un(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 od{constructor(e,t,r){un(this,"interface",ln(new.target,"getInterface")(t)),null==r?(un(this,"provider",null),un(this,"signer",null)):I.isSigner(r)?(un(this,"provider",r.provider||null),un(this,"signer",r)):An.isProvider(r)?(un(this,"provider",r),un(this,"signer",null)):Jc.throwArgumentError("invalid signer or provider","signerOrProvider",r),un(this,"callStatic",{}),un(this,"estimateGas",{}),un(this,"functions",{}),un(this,"populateTransaction",{}),un(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];un(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?un(this.filters,t,this.filters[r[0]]):Jc.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(un(this,"_runningEvents",{}),un(this,"_wrappedEmits",{}),null==e&&Jc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),un(this,"address",e),this.provider)un(this,"resolvedAddress",Qc(this.provider,e));else try{un(this,"resolvedAddress",Promise.resolve(Ni(e)))}catch(e){Jc.throwError("provider is required to use ENS name as contract address",mr.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])Jc.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]&&un(this,e,$c(this,t,!0)),null==this.functions[e]&&un(this.functions,e,$c(this,t,!1)),null==this.callStatic[e]&&un(this.callStatic,e,Zc(this,t,!0)),null==this.populateTransaction[e]&&un(this.populateTransaction,e,function(e,t){return function(...r){return Xc(e,t,r)}}(this,t)),null==this.estimateGas[e]&&un(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return Wc(this,void 0,void 0,function*(){r||Jc.throwError("estimate require a provider or signer",mr.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Xc(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]&&un(this,e,this[r])}catch(e){}null==this.functions[e]&&un(this.functions,e,this.functions[r]),null==this.callStatic[e]&&un(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&un(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&un(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return Mi(e)}static getInterface(e){return Kc.isInterface(e)?e:new Kc(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&&Jc.throwError("contract not deployed",mr.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Jc.throwError("sending a transactions require a signer",mr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=hn(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Jc.throwError("cannot override "+e,mr.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new k(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&un(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return qc.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 rd);if("event"===e)return this._normalizeRunningEvent(new td("event",null));if("*"===e)return this._normalizeRunningEvent(new id(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new nd(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 nd(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new td(ed(t),t))}return this._normalizeRunningEvent(new id(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=yn(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||Jc.throwError("events require a provider or a signer with a provider",mr.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=hn(n.filter);return"string"==typeof t&&Ir(t,32)?(null!=r&&Jc.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 sd extends od{}const ad=["function decimals() external view returns (uint8)"],ud="cow-sdk://bridging/providers";class ld{constructor(e){var t,r;this.options=void 0,this.config=void 0,this.options=e;const{providers:n,...i}=e;if(!n||1!==n.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Ve(e.enableLogging);const o=null!==(t=e.tradingSdk)&&void 0!==t?t:new Hl,s=null!==(r=o?.options.orderBookApi)&&void 0!==r?r:new et;this.config={...i,providers:n,tradingSdk:o,orderBookApi:s}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(we)}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 i=this,{sellTokenChainId:o,buyTokenChainId:s}=e,a=i.config.tradingSdk;if(o!==s){var r;const o=Rl(e.signer),s=null!==(r=i.config.getErc20Decimals)&&void 0!==r?r:(n=o,(e,t)=>new sd(t,ad,n).decimals());return Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,getErc20Decimals:i,tradingSdk:o,bridgeHookSigner:s}=e,{kind:a,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:c,buyTokenAddress:d,amount:h,signer:p,...f}=r,m=Rl(p);if(a!==at.SELL)throw new Error("Bridging only support SELL orders");return ze(`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 R("No path found (not intermediate token for bridging)",{});const t=e[0];return ze(`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:i})).then(function(e){const i=ql(t.getGasLimitEstimationForHook(e));ze(`Using mocked hook for swap gas estimation: ${JSON.stringify(i)}`);const{sellTokenAddress:c,sellTokenDecimals:d}=e,p={...f,kind:a,chainId:u,sellToken:l,buyToken:c,buyTokenDecimals:d,amount:h.toString(),signer:m},{signer:y,...g}=p;ze(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(g,Ye)}`);const b=n?.appData?.metadata?.hooks;return Promise.resolve(o.getQuoteResults(p,{...n,appData:{...n?.appData,metadata:{hooks:{pre:b?.pre,post:[...b?.post||[],i]}}}})).then(function({result:n,orderBookApi:o}){const a=function(o,s){try{return Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:i,signer:o,mockedHook:s,appDataOverride:a}=e,u={...r,amount:i};return Promise.resolve(n.getQuote(u)).then(function(e){return Promise.resolve(n.getUnsignedBridgeCall(u,e)).then(function(r){return Promise.resolve(n.getSignedHook(u.sellTokenChainId,r,o)).then(function(i){return Promise.resolve(Xt(t.appDataInfo.doc,a||{})).then(function(t){const o=t.doc.metadata.hooks,a=(o?.post||[]).some(e=>zl(e,i.postHook));return Promise.resolve(Xt(t.doc,{metadata:{hooks:{pre:o?.pre,post:[...o?.post||[],...a?[]:[i.postHook]].filter(e=>!zl(e,s))}}})).then(function(t){return{bridgeResult:{providerInfo:n.info,tradeParameters:u,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:i},isSell:e.isSell,expectedFillTimeSeconds:e.expectedFillTimeSeconds,fees:e.fees,limits:e.limits,quoteTimestamp:e.quoteTimestamp,amountsAndCosts:e.amountsAndCosts},bridgeHook:i,appDataInfo:t}})})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:{...r,kind:at.SELL},swapResult:n,bridgeRequestWithoutAmount:e,provider:t,intermediateTokenAmount:u,signer:o,mockedHook:i,appDataOverride:s})).then(function({bridgeHook:e,appDataInfo:{doc:t,fullAppData:r,appDataKeccak256:i},bridgeResult:o}){return ze(`Bridge hook for swap: ${JSON.stringify(e)}`),n.tradeParameters.receiver=e.recipient,ze(`App data for swap: appDataKeccak256=${i}, fullAppData="${r}"`),n.appDataInfo={fullAppData:r,appDataKeccak256:i,doc:t},{bridgeResult:o,swapResult:{...n,tradeParameters:{...n.tradeParameters,receiver:e.recipient}}}})}catch(e){return Promise.reject(e)}},u=n.amountsAndCosts.afterSlippage.buyAmount;return ze(`Expected to receive ${u} of the intermediate token (${function(e,t){if("string"!=typeof e&&Vl.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Kl.indexOf(t);-1!==e&&(t=3*e)}return en(e,null!=t?t:18)}(u.toString(),d).toString()})`),Promise.resolve(a(s?Rl(s):m)).then(function(e){return{swap:e.swapResult,bridge:e.bridgeResult,postSwapOrderFromQuote:function(e){try{return Promise.resolve(a(m,e?.appData)).then(function({swapResult:t}){const r={result:{...t,signer:m},orderBookApi:o};return Fl(r,{...e,appData:t.appDataInfo.doc})})}catch(e){return Promise.reject(e)}}}})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:a,provider:i.provider,getErc20Decimals:s,bridgeHookSigner:t?.quoteSigner}))}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()},{signer:l,...c}=u;return ze(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(c,Ye)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:a}))}catch(e){return Promise.reject(e)}var n}getOrder(e){try{const t=this,{orderBookApi:r}=t.config,{orderId:n,chainId:i,env:o}=e;return Promise.resolve(function(e){try{const{orderId:t,chainId:r,orderBookApi:n,providers:i,env:o}=e,s={chainId:r,env:o};return Promise.resolve(n.getOrder(t,s)).then(function(e){var o;const a=L(null!==(o=e.fullAppData)&&void 0!==o?o:void 0).find(e=>e.dappId?.startsWith(ud));if(!a)throw new Error(`Order ${t} is not a cross-chain order`);const u=a.dappId?.split(ud).pop(),l=i.find(e=>e.info.name===u);if(!l)throw new Error(`Unknown Bridge provider: ${u}. Add provider to the SDK config to be able to decode the order`);return Promise.resolve(n.getTrades({orderUid:e.uid},s)).then(function(n){if(n.length>0){const i=n[0];if(!i.txHash)throw new Error(`No tx hash found for order ${t} . First trade, with log index ${i.logIndex}`);return Promise.resolve(l.getBridgingId(t,i.txHash,i.logIndex)).then(function(t){return Promise.resolve(l.getStatus(t)).then(function({status:n,fillTimeInSeconds:i}){const o=l.getExplorerUrl(t);return{chainId:r,order:e,status:n,bridgingId:t,explorerUrl:o,fillTimeInSeconds:i}})})}return{chainId:r,order:e,status:M.NOT_INITIATED}})})}catch(e){return Promise.reject(e)}}({orderId:n,chainId:i,orderBookApi:r,providers:t.config.providers,env:o||r.context.env}))}catch(e){return Promise.reject(e)}}}const cd=`${te}/src/bridging/providers`,dd={to:"0x0000000000000000000000000000000000000001",data:"0x0",value:BigInt(0)},hd=[{chainId:H.MAINNET,address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"USD Coin",symbol:"USDC",decimals:6},{chainId:H.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",logoUrl:"https://swap.cow.fi/assets/network-gnosis-chain-logo-Do_DEWQv.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18},{chainId:H.SEPOLIA,address:"0x0625aFB445C3B6B7B929342a04A22599fd5dBB59",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"CoW Protocol Token",symbol:"COW",decimals:18},{chainId:j.OPTIMISM,address:"0x4200000000000000000000000000000000000006",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18}],pd={[H.MAINNET]:["0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aB"],[j.OPTIMISM]:["0x68f180fcCe6836688e9084f035309E29Bf0A2095"],[H.SEPOLIA]:["0xB4F1737Af37711e9A5890D9510c9bB60e170CB0D"]};class fd{constructor(){this.info={name:"Mock",logoUrl:`${cd}/mock/mock-logo.png`}}getNetworks(){return Promise.resolve([ie,ge,pe])}getBuyTokens(e){try{return Promise.resolve(hd.filter(t=>t.chainId===e))}catch(e){return Promise.reject(e)}}getIntermediateTokens({sellTokenChainId:e}){try{var t;return Promise.resolve(null!==(t=pd[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,fees:{bridgeFee:1n,destinationGasFee:2n},limits:{minDeposit:1n,maxDeposit:100000n}})}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){return 11e4}getUnsignedBridgeCall(e,t){return Promise.resolve(dd)}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:at.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,r){return Promise.resolve("123456789asdfg")}getExplorerUrl(e){return"https://www.google.com/search?q="+e}getStatus(e){try{return Promise.resolve({status:M.IN_PROGRESS,fillTimeInSeconds:67})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){return Promise.resolve(dd)}getRefundBridgingTx(e){return Promise.resolve(dd)}}const md=[{chainId:H.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:H.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:H.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:H.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:j.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});class yd{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,vd))}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,gd))}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 ze(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET"})).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 R(`Invalid response for Across API call ${e}. The response doesn't pass the validation. Did the API change?`,t)}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(e){throw new R("Across Api Error",e)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function gd(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&bd(e.totalRelayFee)&&"relayerCapitalFee"in e&&bd(e.relayerCapitalFee)&&"relayerGasFee"in e&&bd(e.relayerGasFee)&&"lpFee"in e&&bd(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 bd(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function vd(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 Ad=10n**18n;function wd(e){return md[e]}function Td(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=bt(n,i),a=s.big,u=bt(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=Sd(u,l),d=a-Sd(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,Ed(f),Number(10000n*f/Ad)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Ed(e){if(e>Ad||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Sd(e,t){return Ed(t),e*(Ad-t)/Ad}let Id;function kd(e,t,r){if(!e.s){if(r instanceof Pd){if(!r.s)return void(r.o=kd.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(kd.bind(null,e,t),kd.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const Pd=/*#__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{kd(n,1,e(this.v))}catch(e){kd(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?kd(n,1,t?t(i):i):r?kd(n,1,r(i)):kd(n,2,i)}catch(e){kd(n,2,e)}},n},e}(),Cd="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",xd={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 _d{constructor(e,t){this.chainId=void 0,this.customOptions=void 0,this.chainId=e,this.customOptions=t}proxyOf(e){const t=d.encode(["address"],[e]),r=h(["bytes","bytes"],[this.proxyCreationCode(),d.encode(["address","address"],[this.getImplementationAddress(),e])]);return p(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(Id||(Id=Rt.createInterface()),Id).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:c}=o.infoToSign(e,t,r,a);return Promise.resolve(function(e,t,r,n,i){try{let o,s;function a(e){return o?e:f(m(u))}let u=null;const l=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 Pd,d=kd.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 kd(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());kd(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)}kd(c,1,e)}}(e,[[function(){return w.EIP712},function(){if(!T(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,i)).then(function(e){u=e,s=1})}],[function(){return w.ETHSIGN},function(){return Promise.resolve(t.signMessage(y(E(r,n,i)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(c){return Promise.reject(c)}}(i,n,u,l,c))})}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:xd,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:Cd}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:Ne}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:Me}}const Nd=Bn.toBigInt();class Md{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=Md.getNonce(),deadline:i=Nd,defaultGasLimit:o,signingScheme:s=w.EIP712}){try{const a=this,u=a.getCowShedHooks(r),l=t||a.options?.signer;if(!l)throw new Error("Signer is required");const c=Rl(l);return Promise.resolve(c.getAddress()).then(function(t){const r=u.proxyOf(t);return Promise.resolve(u.signCalls(e,n,i,c,s)).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,Ye,2)}. Review the factory call`;if(o)return ze(`${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 _d(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return g(Date.now().toString())}}const Rd={[H.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[H.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[H.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[H.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[H.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[H.GNOSIS_CHAIN]:void 0,[H.AVALANCHE]:void 0,[j.OPTIMISM]:void 0},Od={[H.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[H.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[H.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[H.GNOSIS_CHAIN]:void 0,[H.SEPOLIA]:void 0,[H.POLYGON]:void 0,[j.OPTIMISM]:void 0,[H.AVALANCHE]:void 0};var Bd;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(Bd||(Bd={}));const Dd="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",Fd=[{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 Ld(e){const t=e.plan(),{commands:r,state:n}=t;return new Kc(Fd).encodeFunctionData("execute",[r,n])}function Ud(e){const t=new P;return e(t),{to:Dd,value:BigInt(0),data:Ld(t)}}function Gd(e,t){return C.createContract(e,t)}function Hd(e){return C.createLibrary(e)}const jd=[{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"}],qd=[{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"}],zd=["function balanceOf(address account) external view returns (uint256)"],Vd=["function approve(address spender, uint256 amount) external returns (bool)"],Kd=`${ud}/across`,Wd=[ie,ve,le,de,ge];class Jd{constructor(e={}){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.info={name:"Across",logoUrl:`${cd}/across/across-logo.png`},this.options=e,this.api=new yd(e.apiOptions),this.cowShedSdk=new Md(e.cowShedOptions)}getNetworks(){return Promise.resolve(Wd)}getBuyTokens(e){try{const t=this;if(!t.options.getTokenInfos)throw new Error("'getTokenInfos' parameter is required for AcrossBridgeProvider constructor");const r=md[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!==A.SELL)throw new Error("Only SELL is supported for now");const{sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o}=e,s=function(e,t){const r=wd(e),n=wd(t);if(r&&n)return{sourceChainConfig:r,targetChainConfig:n}}(n,i);if(!s)return Promise.resolve([]);const{sourceChainConfig:a,targetChainConfig:u}=s,l=(t=o,r=u,Object.keys(r.tokens).find(e=>r.tokens[e]===t));if(!l)return Promise.resolve([]);const c=function(e,t){return t.tokens[e]}(l,a);return Promise.resolve(c?[c]:[])}catch(e){return Promise.reject(e)}var t,r}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:s}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=s?s:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===A.SELL,amountsAndCosts:Td(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),fees:{bridgeFee:BigInt(r.relayerCapitalFee.total),destinationGasFee:BigInt(r.relayerGasFee.total)},limits:{minDeposit:BigInt(r.limits.minDeposit),maxDeposit:BigInt(r.limits.maxDeposit)},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=Rd[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return Gd(new sd(t,qd),Bd.CALL)}(i),d=function(e){const t=Od[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return Gd(new sd(t,jd),Bd.CALL)}(i),h=function(e){return Gd(new sd(e,zd),Bd.STATICCALL)}(o),p=function(e){return Gd(new sd(e,Vd),Bd.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return Ud(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:Kd},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,r){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)}}}const Qd=x`
|
|
2
2
|
query Totals {
|
|
3
3
|
totals {
|
|
4
4
|
tokens
|
|
@@ -11,19 +11,19 @@ import"cross-fetch/polyfill";import{RateLimiter as t}from"limiter";import{backOf
|
|
|
11
11
|
feesEth
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
`,
|
|
14
|
+
`,Yd=x`
|
|
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
|
+
`,Xd=x`
|
|
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
|
-
`,Pt="https://api.thegraph.com/subgraphs/name/cowprotocol",Ct={[k.MAINNET]:Pt+"/cow",[k.GNOSIS_CHAIN]:Pt+"/cow-gc",[k.ARBITRUM_ONE]:null,[k.BASE]:null,[k.SEPOLIA]:null},xt={[k.MAINNET]:Pt+"/cow-staging",[k.GNOSIS_CHAIN]:Pt+"/cow-gc-staging",[k.ARBITRUM_ONE]:null,[k.BASE]:null,[k.SEPOLIA]:null};class Ot{constructor(t={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...S,...t}}getTotals(t={}){try{return Promise.resolve(this.runQuery(kt,void 0,t)).then(function(t){return t.totals[0]})}catch(t){return Promise.reject(t)}}getLastDaysVolume(t,e={}){try{return Promise.resolve(this.runQuery(_t,{days:t},e))}catch(t){return Promise.reject(t)}}getLastHoursVolume(t,e={}){try{return Promise.resolve(this.runQuery(St,{hours:t},e))}catch(t){return Promise.reject(t)}}runQuery(t,e=undefined,r={}){try{const i=this,{chainId:o,env:s}=i.getContextWithOverride(r),a=i.getEnvConfigs(s)[o];if(null===a)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+o);return Promise.resolve(function(r,i){try{var o=Promise.resolve(n(a,t,e))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(r){throw console.error(`[subgraph:${i.API_NAME}]`,r),new P(`Error running query: ${t}. Variables: ${JSON.stringify(e)}. API: ${a}. Inner Error: ${r}`)}))}catch(t){return Promise.reject(t)}}getContextWithOverride(t={}){return{...this.context,...t}}getEnvConfigs(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?Ct:xt}}const Rt=()=>import("./utils-faedc0ab.js");class Bt{static signOrder(t,e,r){try{return Promise.resolve(Rt()).then(function({signOrder:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellation(t,e,r){try{return Promise.resolve(Rt()).then(function({signOrderCancellation:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellations(t,e,r){try{return Promise.resolve(Rt()).then(function({signOrderCancellations:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomain(t){try{return Promise.resolve(Rt()).then(function({getDomain:e}){return e(t)})}catch(t){return Promise.reject(t)}}static generateOrderId(t,e,r){try{return Promise.resolve(Rt()).then(function({generateOrderId:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomainSeparator(t){try{return Promise.resolve(Rt()).then(function({getDomain:e}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(e(t))})})}catch(t){return Promise.reject(t)}}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"}]}}}var Dt,Lt;!function(t){t[t.PRIVATE=0]="PRIVATE",t[t.EMITTED=1]="EMITTED",t[t.SWARM=2]="SWARM",t[t.WAKU=3]="WAKU",t[t.RESERVED=4]="RESERVED",t[t.IPFS=5]="IPFS"}(Dt||(Dt={})),function(t){t.SUCCESS="SUCCESS",t.UNEXPECTED_ERROR="UNEXPECTED_ERROR",t.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",t.TRY_ON_BLOCK="TRY_ON_BLOCK",t.TRY_AT_EPOCH="TRY_AT_EPOCH",t.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(Lt||(Lt={}));const Ut=[{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"DeadlineElapsed",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"OnlyAdmin",type:"error"},{inputs:[],name:"OnlyAdminOrTrustedExecutorOrSelf",type:"error"},{inputs:[],name:"OnlySelf",type:"error"},{inputs:[],name:"OnlyTrustedExecutor",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"r",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"s",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"v",type:"uint8"}],name:"RSV",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousExecutor",type:"address"},{indexed:!1,internalType:"address",name:"newExecutor",type:"address"}],name:"TrustedExecutorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[{internalType:"address",name:"resolver",type:"address"}],name:"claimWithResolver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",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:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"factory",type:"address"},{internalType:"bool",name:"claimResolver",type:"bool"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"nonce",type:"bytes32"}],name:"nonces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"nonce",type:"bytes32"}],name:"revokeNonce",outputs:[],stateMutability:"nonpayable",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[]"}],name:"trustedExecuteHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"trustedExecutor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"updateImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"updateTrustedExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ft{static createInterface(){return new i.Interface(Ut)}static connect(t,e){return new o(t,Ut,e)}}Ft.abi=Ut;const qt=[{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 Gt{static createInterface(){return new i.Interface(qt)}static connect(t,e){return new o(t,qt,e)}}Gt.abi=qt;const Ht=[{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 zt{static createInterface(){return new i.Interface(Ht)}static connect(t,e){return new o(t,Ht,e)}}zt.abi=Ht;const jt=[{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 Qt{static createInterface(){return new i.Interface(jt)}static connect(t,e){return new o(t,jt,e)}}Qt.abi=jt;const Kt=[{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 Vt{static createInterface(){return new i.Interface(Kt)}static connect(t,e){return new o(t,Kt,e)}}Vt.abi=Kt;const Jt=[{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 Yt{static createInterface(){return new i.Interface(Jt)}static connect(t,e){return new o(t,Jt,e)}}Yt.abi=Jt;const Wt=function(t){try{return Promise.resolve(t.getBlock("latest")).then(function(t){return{blockNumber:t.number,blockTimestamp:t.timestamp}})}catch(t){return Promise.reject(t)}},Xt=function(t,e,r,n){try{const i=Vt.connect(j[r],n);return Promise.resolve(i.callStatic.domainVerifiers(t,e))}catch(t){return Promise.reject(t)}},Zt=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],$t=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],te=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],ee=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],re=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],ne=["tuple(address handler, bytes32 salt, bytes staticInput)"],ie=(t,e)=>`${e}@${t}`;function oe(t,e){return t===j[e]}function se(t,e){return t===Q[e]}function ae(t,e){return Vt.createInterface().encodeFunctionData("setDomainVerifier",[t,e])}function ue(t){return i.defaultAbiCoder.encode(ne,[t])}function le(t){const{handler:e,salt:r,staticInput:n}=i.defaultAbiCoder.decode(ne,t)[0];return{handler:e,salt:r,staticInput:n}}function he(t,e){try{i.defaultAbiCoder.encode(t,e)}catch(t){return!1}return!0}function ce(t){return new Date(1e3*t).toISOString()}function fe(t){if(Zt.includes(t))return l.ERC20;if($t.includes(t))return l.EXTERNAL;if(te.includes(t))return l.INTERNAL;throw new Error(`Unknown balance type: ${t}`)}function de(t){if(ee.includes(t))return h.SELL;if(re.includes(t))return h.BUY;throw new Error(`Unknown kind: ${t}`)}function pe(t){const{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:h,partiallyFillable:c,appData:f}=t;return{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:c,appData:f,validTo:Number(h),kind:de(u.toString()),sellTokenBalance:fe(s.toString()),buyTokenBalance:fe(o.toString())}}function me(t){return t.isValid}let ye,ge;function ve(){return ye||(ye=zt.createInterface()),ye}function be(t,e){return ge||(ge=zt.connect(Q[t],e)),ge}class Ae{constructor(t){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:e,salt:r=i.keccak256(i.randomBytes(32)),data:n,hasOffChainInput:o=!1}=t;if(!s.utils.isAddress(e))throw new Error(`Invalid handler: ${e}`);if(!s.utils.isHexString(r)||32!==s.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=e,this.salt=r,this.data=n,this.staticInput=this.transformDataToStruct(n),this.hasOffChainInput=o}get context(){}assertIsValid(){const t=this.isValid();if(!me(t))throw new Error(`Invalid order: ${t.reason}`)}get createCalldata(){this.assertIsValid();const t=this.context,e=ve(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(t){const n=t.factoryArgs?i.defaultAbiCoder.encode(t.factoryArgs.argsType,t.factoryArgs.args):"0x";return e.encodeFunctionData("createWithContext",[r,t.address,n,!0])}return e.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),ve().encodeFunctionData("remove",[this.id])}get id(){return i.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:a.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(t){return i.keccak256(ue(t))}get offChainInput(){return"0x"}encodeStaticInputHelper(t,e){return i.defaultAbiCoder.encode(t,[e])}poll(t){try{const e=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=t,s=be(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=e.isValid();return me(i)?Promise.resolve(e.pollValidate(t)).then(function(i){return i||Promise.resolve(e.isAuthorized(t)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,e.leaf,e.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(t,e,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(Bt.getDomain(t)).then(function(t){return n(t,r,e)})})}catch(t){return Promise.reject(t)}}(r,n,pe(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(t){return o?t:{result:Lt.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(e.handlePollFailedAlreadyPresent(r,i,t)).then(function(t){return t?(o=1,t):(o=1,{result:Lt.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:Lt.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${e.id} is not authorized for ${n} on chain ${r}`}})}):{result:Lt.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(t){return a(t)}return u&&u.then?u.then(void 0,a):u}(0,function(t){return{result:Lt.UNEXPECTED_ERROR,error:t}}))}catch(t){return Promise.reject(t)}}isAuthorized(t){const{chainId:e,owner:r,provider:n}=t;return be(e,n).callStatic.singleOrders(r,this.id)}cabinet(t){const{chainId:e,owner:r,provider:n}=t;return be(e,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(t,e,r,n){try{const{handler:o,salt:s,staticInput:a}=le(t);if(o!=e)throw new Error("HandlerMismatch");const[u]=i.defaultAbiCoder.decode(r,a);return n(u,s)}catch(t){throw"HandlerMismatch"===t.message?t:new Error("InvalidSerializedConditionalOrder")}}}const we=["address","bytes32","bytes"],Ee=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Te{constructor(t,e,r,n=Dt.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=t,this.location=n,e&&0===Object.keys(e).length)throw new Error("orders must have non-zero length");if(e&&!r||!e&&r)throw new Error("orders cannot have undefined root");for(const t in e)if(e.hasOwnProperty(t)){const r=e[t];if(!Te.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(e&&(this.orders=e,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(t){const{chain:e,orders:r,root:n,location:i}=JSON.parse(t,(t,e)=>{if("orders"===t&&"object"==typeof e&&null!==e){const t={};for(const r in e)if(e.hasOwnProperty(r)){const{orderType:n,...i}=e[r];if(!Te.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);t[r]=new(0,Te.orderTypeRegistry[n])(i)}return t}return"object"==typeof e&&null!==e&&e.hasOwnProperty("type")&&e.hasOwnProperty("hex")&&"BigNumber"===e.type?u.from(e):e}),o=new Te(e,r,n);return o.location=i,o}toJSON(){const t=this.getOrGenerateTree().root;return JSON.stringify({...this,root:t},(t,e)=>{if("tree"!==t){if("object"==typeof e&&null!==e&&"orderType"in e){const t=e;return{...t,orderType:t.orderType}}return e}})}add(t){t.assertIsValid(),this.orders[t.id]=t,this.reset()}remove(t){delete this.orders[t],this.reset()}update(t,e){const r=e(this.orders[t],this.ctx);delete this.orders[t],this.orders[r.id]=r,this.reset()}getById(t){return this.orders[t]}getByIndex(t){return this.orders[this.orderIds[t]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=m.of(Object.values(this.orders).map(t=>[...Object.values(t.leaf)]),we)),this.tree}static decodeFromJSON(t){return JSON.parse(t)}prepareProofStruct(t,e,r){try{const n=this;void 0===t&&(t=n.location);const o=function(){try{switch(t){case Dt.PRIVATE:return Promise.resolve("0x");case Dt.EMITTED:return Promise.resolve(n.encodeToABI(e));case Dt.SWARM:case Dt.WAKU:case Dt.IPFS:if(!r)throw new Error("Must provide an uploader function");return Promise.resolve(function(t,i){try{var o=Promise.resolve(r(n.encodeToJSON(e)))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(e){throw new Error(`Error uploading to decentralized storage ${t}: ${e}`)}));default:throw new Error("Unsupported location")}}catch(t){return Promise.reject(t)}};return Promise.resolve(o().then(e=>{try{return i.hexlify(i.arrayify(e)),n.location=t,{location:t,data:e}}catch(t){throw new Error("data returned by uploader is invalid")}}).catch(t=>{throw new Error(`Error preparing proof struct: ${t}`)}))}catch(t){return Promise.reject(t)}}static poll(t,e,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(t,e.params,r,e.proof))}const s=be(r,n);return Promise.resolve(i?Promise.resolve(i(t,e.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(t){return this.encodeToJSON(t)}dumpProofsAndParams(t){return this.getProofs(t)}getProofs(t){return[...this.getOrGenerateTree().entries()].map(([e,r])=>t&&t(r)||void 0===t?{idx:e,value:r}:void 0).reduce((t,e)=>{if(e){const r={handler:e.value[0],salt:e.value[1],staticInput:e.value[2]};t.push({proof:this.getOrGenerateTree().getProof(e.idx),params:r})}return t},[])}encodeToABI(t){return i.defaultAbiCoder.encode(Ee,[this.getProofs(t)])}encodeToJSON(t){return JSON.stringify(this.getProofs(t))}reset(){this.tree=void 0}static registerOrderType(t,e){Te.orderTypeRegistry[t]=e}static resetOrderTypeRegistry(){Te.orderTypeRegistry={}}}Te.orderTypeRegistry={};class Ie{constructor(t){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(t).reduce((t,[e,r])=>(t[e.toLowerCase()]=r,t),{})}fromParams(t){const{handler:e}=t,r=this.knownOrderTypes[e.toLocaleLowerCase()];if(r)return r(t)}}const Ne="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Me="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",ke=u.from(2).pow(32).sub(1),_e=u.from(31536e3),Se=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Pe,Ce;!function(t){t.AUTO="AUTO",t.LIMIT_DURATION="LIMIT_DURATION"}(Pe||(Pe={})),function(t){t.AT_MINING_TIME="AT_MINING_TIME",t.AT_EPOCH="AT_EPOCH"}(Ce||(Ce={}));const xe={startType:Ce.AT_MINING_TIME},Oe={durationType:Pe.AUTO};class Re extends Ae{constructor(t){const{handler:e,salt:r,data:n,hasOffChainInput:i}=t;if(e!==Ne)throw new Error(`InvalidHandler: Expected: ${Ne}, provided: ${e}`);super({handler:Ne,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(t,e){return new Re({handler:Ne,data:t,salt:e})}static fromParams(t){return Re.deserialize(ue(t))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Me,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const t=(()=>{const{sellToken:t,sellAmount:e,buyToken:r,buyAmount:n,startTime:i=xe,numberOfParts:o,timeBetweenParts:s,durationOfPart:u=Oe}=this.data;if(t==r)return"InvalidSameToken";if(t==a.AddressZero||r==a.AddressZero)return"InvalidToken";if(!e.gt(a.Zero))return"InvalidSellAmount";if(!n.gt(a.Zero))return"InvalidMinBuyAmount";if(i.startType===Ce.AT_EPOCH){const t=i.epoch;if(!t.gte(a.Zero)||!t.lt(ke))return"InvalidStartTime"}return o.gt(a.One)&&o.lte(ke)?s.gt(a.Zero)&&s.lte(_e)?u.durationType!==Pe.LIMIT_DURATION||u.duration.lte(s)?he(Se,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return t?{isValid:!1,reason:t}:{isValid:!0}}startTimestamp(t){try{const e=this,{startTime:r}=e.data;return r?.startType===Ce.AT_EPOCH?Promise.resolve(r.epoch.toNumber()):Promise.resolve(e.cabinet(t)).then(function(t){const e=i.defaultAbiCoder.decode(["uint256"],t)[0];if(e.gt(ke))throw new Error(`Cabinet epoch out of range: ${e.toString()}`);const r=e.toNumber();if(0===r)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return r})}catch(t){return Promise.reject(t)}}endTimestamp(t){const{numberOfParts:e,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===Pe.LIMIT_DURATION?t+e.sub(1).mul(r).add(n.duration).toNumber():t+e.mul(r).toNumber()}pollValidate(t){try{const e=this;return Promise.resolve(Wt(t.provider)).then(function(r){const{blockInfo:n=r}=t,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(e.startTimestamp(t)).then(function(t){if(t>i)return{result:Lt.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${ce(t)})`};const r=e.endTimestamp(t);return i>=r?{result:Lt.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${ce(r)})`}:void 0})}catch(t){return n(t)}return o&&o.then?o.then(void 0,n):o}(0,function(t){return t?.message?.includes("Cabinet is not set")?{result:Lt.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:Lt.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:Lt.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(t){return Promise.reject(t)}}handlePollFailedAlreadyPresent(t,e,r){try{const t=this;return Promise.resolve(Wt(r.provider)).then(function(e){const{blockInfo:n=e}=r,{blockTimestamp:i}=n,o=t.data.timeBetweenParts.toNumber(),{numberOfParts:s}=t.data;return Promise.resolve(t.startTimestamp(r)).then(function(t){if(i<t)return{result:Lt.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${t} (${ce(t)})`,error:void 0};const e=s.mul(o).add(t).toNumber();if(i>=e)return{result:Lt.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${e} (${ce(e)})`,error:void 0};const r=Math.floor((i-t)/o);if(r===s.toNumber()-1)return{result:Lt.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=t+(r+1)*o;return{result:Lt.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} (${ce(n)})`}})})}catch(t){return Promise.reject(t)}}serialize(){return ue(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Se,this.staticInput)}static deserialize(t){return super.deserializeHelper(t,Ne,Se,(t,e)=>new Re({handler:Ne,salt:e,data:De(t)}))}toString(){const{sellAmount:t,sellToken:e,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=xe,timeBetweenParts:s,durationOfPart:a=Oe,receiver:u,appData:l}=this.data,h=o.startType===Ce.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),c=a.durationType===Pe.AUTO?"AUTO":a.duration.toNumber(),f={sellAmount:t.toString(),sellToken:e,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:h,timeBetweenParts:s.toNumber(),durationOfPart:c,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(f)}`}transformDataToStruct(t){return Be(t)}transformStructToData(t){return De(t)}}function Be(t){const{sellAmount:e,buyAmount:r,numberOfParts:n,startTime:i=xe,timeBetweenParts:o,durationOfPart:s=Oe,...u}=t,{partSellAmount:l,minPartLimit:h}=n&&!n.isZero()?{partSellAmount:e.div(n),minPartLimit:r.div(n)}:{partSellAmount:a.Zero,minPartLimit:a.Zero};return{partSellAmount:l,minPartLimit:h,t0:i.startType===Ce.AT_MINING_TIME?a.Zero:i.epoch,n:n,t:o,span:s.durationType===Pe.AUTO?a.Zero:s.duration,...u}}function De(t){const{n:e,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:h}=t,c=s.isZero()?{durationType:Pe.AUTO}:{durationType:Pe.LIMIT_DURATION,duration:s},f=s.isZero()?{startType:Ce.AT_MINING_TIME}:{startType:Ce.AT_EPOCH,epoch:o};return{sellAmount:r.mul(e),buyAmount:n.mul(e),startTime:f,numberOfParts:e,timeBetweenParts:i,durationOfPart:c,sellToken:a,buyToken:u,receiver:l,appData:h}}const Le={[Ne]:t=>Re.fromParams(t)},Ue={EIP712Domain:[{type:"string",name:"name"},{type:"string",name:"version"},{type:"uint256",name:"chainId"},{type:"address",name:"verifyingContract"}]},Fe={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"}]};let qe,Ge;function He(){return qe||(qe=Ft.createInterface()),qe}function ze(){return Ge||(Ge=Gt.createInterface()),Ge}const je="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033";function Qe(t,e,r){if(!t.s){if(r instanceof Ke){if(!r.s)return void(r.o=Qe.bind(null,t,e));1&e&&(e=r.s),r=r.v}if(r&&r.then)return void r.then(Qe.bind(null,t,e),Qe.bind(null,t,2));t.s=e,t.v=r;const n=t.o;n&&n(t)}}const Ke=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(e,r){const n=new t,i=this.s;if(i){const t=1&i?e:r;if(t){try{Qe(n,1,t(this.v))}catch(t){Qe(n,2,t)}return n}return this}return this.o=function(t){try{const i=t.v;1&t.s?Qe(n,1,e?e(i):i):r?Qe(n,1,r(i)):Qe(n,2,i)}catch(t){Qe(n,2,t)}},n},t}();class Ve{constructor(t,e){this.chainId=void 0,this.customOptions=void 0,this.chainId=t,this.customOptions=e}proxyOf(t){const e=y.encode(["address"],[t]),r=g(["bytes","bytes"],[this.proxyCreationCode(),y.encode(["address","address"],[this.getImplementationAddress(),t])]);return v(this.getFactoryAddress(),e,r)}encodeExecuteHooksForFactory(t,e,r,n,i){return ze().encodeFunctionData("executeHooks",[t,e,r,n,i])}signCalls(t,e,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:h}=o.infoToSign(t,e,r,a);return Promise.resolve(function(t,e,r,n,i){try{let o,s;function a(t){return o?t:b(A(u))}let u=null;const l=function(t,e){var r,n=-1;t:{for(var i=0;i<e.length;i++){var o=e[i][0];if(o){var s=o();if(s&&s.then)break t;if(s===t){n=i;break}}else n=i}if(-1!==n){do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then){r=!0;break t}var l=e[n][2];n++}while(l&&!l());return u}}const h=new Ke,c=Qe.bind(null,h,2);return(r?u.then(f):s.then(function r(s){for(;;){if(s===t){n=i;break}if(++i===e.length){if(-1!==n)break;return void Qe(h,1,u)}if(o=e[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,c)}else n=i}do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then)return void u.then(f).then(void 0,c);var l=e[n][2];n++}while(l&&!l());Qe(h,1,u)})).then(void 0,c),h;function f(t){for(;;){var r=e[n][2];if(!r||r())break;n++;for(var i=e[n][1];!i;)n++,i=e[n][1];if((t=i())&&t.then)return void t.then(f).then(void 0,c)}Qe(h,1,t)}}(t,[[function(){return c.EIP712},function(){if(!f(e))throw new Error("signer does not support signing typed data");return Promise.resolve(e._signTypedData(r,n,i)).then(function(t){u=t,s=1})}],[function(){return c.ETHSIGN},function(){return Promise.resolve(e.signMessage(w(d(r,n,i)))).then(function(t){u=t,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(h){return Promise.reject(h)}}(i,n,u,l,h))})}catch(t){return Promise.reject(t)}}infoToSign(t,e,r,n){const i={calls:t,nonce:e,deadline:r};return{domain:this.getDomain(n),types:Fe,message:i}}getDomain(t){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:t}}proxyCreationCode(){var t;return null!==(t=this.customOptions?.proxyCreationCode)&&void 0!==t?t:je}getFactoryAddress(){var t;return null!==(t=this.customOptions?.factoryAddress)&&void 0!==t?t:L}getImplementationAddress(){var t;return null!==(t=this.customOptions?.implementationAddress)&&void 0!==t?t:U}}const Je="Order";function Ye(t){Ye.enabled&&console.log(`[COW TRADING SDK] ${t}`)}Ye.enabled=!1;const We=1800,Xe=50,Ze={[ct.EIP712]:Tt.EIP712,[ct.ETHSIGN]:Tt.ETHSIGN},$e=BigInt(15e4);function tr({from:t,networkCostsAmount:e="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:h,partiallyFillable:c=!1,slippageBps:f=Xe,partnerFee:d,validFor:p}=r,m=r.receiver||t,y=r.validTo||Math.floor(Date.now()/1e3)+(p||We),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:h,feeAmount:e,appData:n,partiallyFillable:c},{afterSlippage:v}=Nt({orderParams:g,slippagePercentBps:f,partnerFeeBps:d?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:v.sellAmount.toString(),buyAmount:v.buyAmount.toString(),validTo:y,kind:h,partiallyFillable:c,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:Et.ERC20,buyTokenBalance:lt.ERC20}}const er=function(t,e,r,n){try{return Promise.resolve(Bt.generateOrderId(t,{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance,validTo:X,sellToken:K[t]},{owner:("staging"===n?W:Y)[t]})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:e.sellAmount,fee:e.feeAmount});const n=er(t,function(t){const e=BigInt(t.buyAmount);return{...t,buyAmount:(e-BigInt(1)).toString()}}(e),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(t){return Promise.reject(t)}};var rr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function nr(t){var e={exports:{}};return t(e,e.exports),e.exports}var ir={__proto__:null,default:{}},or=nr(function(t){!function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function i(t,e,r){if(i.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=i:e.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:ir.Buffer}catch(t){}function s(t,e){var n=t.charCodeAt(e);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 "+t)}function a(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,n,i){for(var o=0,s=0,a=Math.min(t.length,n),u=e;u<a;u++){var l=t.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(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(i.isBN=function(t){return t instanceof i||null!==t&&"object"==typeof t&&t.constructor.wordSize===i.wordSize&&Array.isArray(t.words)},i.max=function(t,e){return t.cmp(e)>0?t:e},i.min=function(t,e){return t.cmp(e)<0?t:e},i.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,n):(this._parseBase(t,e,i),"le"===n&&this._initArray(this.toArray(),e,n)))},i.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.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=t.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=t[i]|t[i-1]<<8|t[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<t.length;i+=3)this.words[o]|=(s=t[i]|t[i+1]<<8|t[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(t,e,r){this.length=Math.ceil((t.length-e)/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=t.length-1;n>=e;n-=2)i=a(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=a(t,e,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(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,h=r;h<a;h+=n)l=u(t,h,h+n,e),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var c=1;for(l=u(t,h,t.length,e),h=0;h<s;h++)c*=e;this.imuln(c),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},i.prototype._move=function(t){l(t,this)},i.prototype.clone=function(){var t=new i(null);return this.copy(t),t},i.prototype._expand=function(t){for(;this.length<t;)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")]=h}catch(t){i.prototype.inspect=h}else i.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var c=["","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"],f=[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],d=[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 p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.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,h=67108863&a,c=Math.min(u,e.length-1),f=Math.max(0,u-t.length+1);f<=c;f++)l+=(s=(i=0|t.words[u-f|0])*(o=0|e.words[f])+h)/67108864|0,h=67108863&s;r.words[u]=0|h,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){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?c[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=f[t],h=d[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modrn(h).toString(t);n=(p=p.idivn(h)).isZero()?m+n:c[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%e!=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 t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(t,e){return this.toArrayLike(o,t,e)}),i.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},i.prototype.toArrayLike=function(t,e,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(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r++]=255&s,r<t.length&&(t[r++]=s>>8&255),r<t.length&&(t[r++]=s>>16&255),6===o?(r<t.length&&(t[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},i.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r--]=255&s,r>=0&&(t[r--]=s>>8&255),r>=0&&(t[r--]=s>>16&255),6===o?(r>=0&&(t[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},i.prototype._countBits=Math.clz32?function(t){return 32-Math.clz32(t)}:function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},i.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},i.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).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(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},i.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},i.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},i.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},i.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},i.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},i.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},i.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},i.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},i.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;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(t){return this.clone().inotn(t)},i.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+(0|n.words[o])+i),i=e>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+i),i=e>>>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(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;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(t){return this.clone().isub(t)};var m=function(t,e,r){var n,i,o,s=t.words,a=e.words,u=r.words,l=0,h=0|s[0],c=8191&h,f=h>>>13,d=0|s[1],p=8191&d,m=d>>>13,y=0|s[2],g=8191&y,v=y>>>13,b=0|s[3],A=8191&b,w=b>>>13,E=0|s[4],T=8191&E,I=E>>>13,N=0|s[5],M=8191&N,k=N>>>13,_=0|s[6],S=8191&_,P=_>>>13,C=0|s[7],x=8191&C,O=C>>>13,R=0|s[8],B=8191&R,D=R>>>13,L=0|s[9],U=8191&L,F=L>>>13,q=0|a[0],G=8191&q,H=q>>>13,z=0|a[1],j=8191&z,Q=z>>>13,K=0|a[2],V=8191&K,J=K>>>13,Y=0|a[3],W=8191&Y,X=Y>>>13,Z=0|a[4],$=8191&Z,tt=Z>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,lt=at>>>13,ht=0|a[8],ct=8191&ht,ft=ht>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(l+(n=Math.imul(c,G))|0)+((8191&(i=(i=Math.imul(c,H))+Math.imul(f,G)|0))<<13)|0;l=((o=Math.imul(f,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,G),i=(i=Math.imul(p,H))+Math.imul(m,G)|0,o=Math.imul(m,H);var gt=(l+(n=n+Math.imul(c,j)|0)|0)+((8191&(i=(i=i+Math.imul(c,Q)|0)+Math.imul(f,j)|0))<<13)|0;l=((o=o+Math.imul(f,Q)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(g,G),i=(i=Math.imul(g,H))+Math.imul(v,G)|0,o=Math.imul(v,H),n=n+Math.imul(p,j)|0,i=(i=i+Math.imul(p,Q)|0)+Math.imul(m,j)|0,o=o+Math.imul(m,Q)|0;var vt=(l+(n=n+Math.imul(c,V)|0)|0)+((8191&(i=(i=i+Math.imul(c,J)|0)+Math.imul(f,V)|0))<<13)|0;l=((o=o+Math.imul(f,J)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(A,G),i=(i=Math.imul(A,H))+Math.imul(w,G)|0,o=Math.imul(w,H),n=n+Math.imul(g,j)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(v,j)|0,o=o+Math.imul(v,Q)|0,n=n+Math.imul(p,V)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,J)|0;var bt=(l+(n=n+Math.imul(c,W)|0)|0)+((8191&(i=(i=i+Math.imul(c,X)|0)+Math.imul(f,W)|0))<<13)|0;l=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,G),i=(i=Math.imul(T,H))+Math.imul(I,G)|0,o=Math.imul(I,H),n=n+Math.imul(A,j)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(w,j)|0,o=o+Math.imul(w,Q)|0,n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(v,V)|0,o=o+Math.imul(v,J)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,X)|0;var At=(l+(n=n+Math.imul(c,$)|0)|0)+((8191&(i=(i=i+Math.imul(c,tt)|0)+Math.imul(f,$)|0))<<13)|0;l=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(M,G),i=(i=Math.imul(M,H))+Math.imul(k,G)|0,o=Math.imul(k,H),n=n+Math.imul(T,j)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(I,j)|0,o=o+Math.imul(I,Q)|0,n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,X)|0,n=n+Math.imul(p,$)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(l+(n=n+Math.imul(c,rt)|0)|0)+((8191&(i=(i=i+Math.imul(c,nt)|0)+Math.imul(f,rt)|0))<<13)|0;l=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(S,G),i=(i=Math.imul(S,H))+Math.imul(P,G)|0,o=Math.imul(P,H),n=n+Math.imul(M,j)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(k,j)|0,o=o+Math.imul(k,Q)|0,n=n+Math.imul(T,V)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(I,V)|0,o=o+Math.imul(I,J)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Et=(l+(n=n+Math.imul(c,ot)|0)|0)+((8191&(i=(i=i+Math.imul(c,st)|0)+Math.imul(f,ot)|0))<<13)|0;l=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,H))+Math.imul(O,G)|0,o=Math.imul(O,H),n=n+Math.imul(S,j)|0,i=(i=i+Math.imul(S,Q)|0)+Math.imul(P,j)|0,o=o+Math.imul(P,Q)|0,n=n+Math.imul(M,V)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(k,V)|0,o=o+Math.imul(k,J)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(I,W)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var Tt=(l+(n=n+Math.imul(c,ut)|0)|0)+((8191&(i=(i=i+Math.imul(c,lt)|0)+Math.imul(f,ut)|0))<<13)|0;l=((o=o+Math.imul(f,lt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(B,G),i=(i=Math.imul(B,H))+Math.imul(D,G)|0,o=Math.imul(D,H),n=n+Math.imul(x,j)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(O,j)|0,o=o+Math.imul(O,Q)|0,n=n+Math.imul(S,V)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,J)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(k,W)|0,o=o+Math.imul(k,X)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,lt)|0;var It=(l+(n=n+Math.imul(c,ct)|0)|0)+((8191&(i=(i=i+Math.imul(c,ft)|0)+Math.imul(f,ct)|0))<<13)|0;l=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(U,G),i=(i=Math.imul(U,H))+Math.imul(F,G)|0,o=Math.imul(F,H),n=n+Math.imul(B,j)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,j)|0,o=o+Math.imul(D,Q)|0,n=n+Math.imul(x,V)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(O,V)|0,o=o+Math.imul(O,J)|0,n=n+Math.imul(S,W)|0,i=(i=i+Math.imul(S,X)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(k,$)|0,o=o+Math.imul(k,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(g,ut)|0,i=(i=i+Math.imul(g,lt)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,lt)|0,n=n+Math.imul(p,ct)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(m,ct)|0,o=o+Math.imul(m,ft)|0;var Nt=(l+(n=n+Math.imul(c,pt)|0)|0)+((8191&(i=(i=i+Math.imul(c,mt)|0)+Math.imul(f,pt)|0))<<13)|0;l=((o=o+Math.imul(f,mt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(U,j),i=(i=Math.imul(U,Q))+Math.imul(F,j)|0,o=Math.imul(F,Q),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,X)|0,n=n+Math.imul(S,$)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(k,rt)|0,o=o+Math.imul(k,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,lt)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,lt)|0,n=n+Math.imul(g,ct)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(v,ct)|0,o=o+Math.imul(v,ft)|0;var Mt=(l+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;l=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(U,V),i=(i=Math.imul(U,J))+Math.imul(F,V)|0,o=Math.imul(F,J),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(S,rt)|0,i=(i=i+Math.imul(S,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(k,ot)|0,o=o+Math.imul(k,st)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,lt)|0)+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,n=n+Math.imul(A,ct)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(w,ct)|0,o=o+Math.imul(w,ft)|0;var kt=(l+(n=n+Math.imul(g,pt)|0)|0)+((8191&(i=(i=i+Math.imul(g,mt)|0)+Math.imul(v,pt)|0))<<13)|0;l=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(U,W),i=(i=Math.imul(U,X))+Math.imul(F,W)|0,o=Math.imul(F,X),n=n+Math.imul(B,$)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(S,ot)|0,i=(i=i+Math.imul(S,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,lt)|0)+Math.imul(k,ut)|0,o=o+Math.imul(k,lt)|0,n=n+Math.imul(T,ct)|0,i=(i=i+Math.imul(T,ft)|0)+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0;var _t=(l+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,mt)|0)+Math.imul(w,pt)|0))<<13)|0;l=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(U,$),i=(i=Math.imul(U,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,lt)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,n=n+Math.imul(M,ct)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(k,ct)|0,o=o+Math.imul(k,ft)|0;var St=(l+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(I,pt)|0))<<13)|0;l=((o=o+Math.imul(I,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(U,rt),i=(i=Math.imul(U,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,st)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,st)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,lt)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,lt)|0,n=n+Math.imul(S,ct)|0,i=(i=i+Math.imul(S,ft)|0)+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0;var Pt=(l+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(k,pt)|0))<<13)|0;l=((o=o+Math.imul(k,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(U,ot),i=(i=Math.imul(U,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,lt)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,lt)|0,n=n+Math.imul(x,ct)|0,i=(i=i+Math.imul(x,ft)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,ft)|0;var Ct=(l+(n=n+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,mt)|0)+Math.imul(P,pt)|0))<<13)|0;l=((o=o+Math.imul(P,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(U,ut),i=(i=Math.imul(U,lt))+Math.imul(F,ut)|0,o=Math.imul(F,lt),n=n+Math.imul(B,ct)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(D,ct)|0,o=o+Math.imul(D,ft)|0;var xt=(l+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(O,pt)|0))<<13)|0;l=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(U,ct),i=(i=Math.imul(U,ft))+Math.imul(F,ct)|0,o=Math.imul(F,ft);var Ot=(l+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,mt)|0)+Math.imul(D,pt)|0))<<13)|0;l=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var Rt=(l+(n=Math.imul(U,pt))|0)+((8191&(i=(i=Math.imul(U,mt))+Math.imul(F,pt)|0))<<13)|0;return l=((o=Math.imul(F,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=yt,u[1]=gt,u[2]=vt,u[3]=bt,u[4]=At,u[5]=wt,u[6]=Et,u[7]=Tt,u[8]=It,u[9]=Nt,u[10]=Mt,u[11]=kt,u[12]=_t,u[13]=St,u[14]=Pt,u[15]=Ct,u[16]=xt,u[17]=Ot,u[18]=Rt,0!==l&&(u[19]=l,r.length++),r};function y(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.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,e.length-1),l=Math.max(0,o-t.length+1);l<=u;l++){var h=(0|t.words[o-l])*(0|e.words[l]),c=67108863&h;a=67108863&(c=c+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(c>>>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(t,e,r){return y(t,e,r)}Math.imul||(m=p),i.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?m(this,t,e):r<63?p(this,t,e):r<1024?y(this,t,e):g(this,t,e)},i.prototype.mul=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},i.prototype.mulf=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),g(this,t,e)},i.prototype.imul=function(t){return this.clone().mulTo(t,this)},i.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,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++),e?this.ineg():this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++)e[r]=t.words[r/26|0]>>>r%26&1;return e}(t);if(0===e.length)return new i(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var o=r.sqr();n<e.length;n++,o=o.sqr())0!==e[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o;this.words[e]=(0|this.words[e])-a<<n|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},i.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-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 h=0;for(l=this.length-1;l>=0&&(0!==h||l>=i);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&a}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.ushln=function(t){return this.clone().iushln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.ushrn=function(t){return this.clone().iushrn(t)},i.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return!(this.length<=n||!(this.words[n]&1<<e))},i.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==e&&n++,this.length=Math.min(n,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<<e),this._strip())},i.prototype.maskn=function(t){return this.clone().imaskn(t)},i.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},i.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},i.prototype.addn=function(t){return this.clone().iaddn(t)},i.prototype.subn=function(t){return this.clone().isubn(t)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(t,e,n){var i,o;this._expand(t.length+n);var s=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+s;var a=(0|t.words[i])*e;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(t,e){var r,n=this.clone(),o=t,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"!==e){(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 h=n.clone()._ishlnsubmul(o,1,u);0===h.negative&&(n=h,a&&(a.words[u]=1));for(var c=u-1;c>=0;c--){var f=67108864*(0|n.words[o.length+c])+(0|n.words[o.length+c-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(o,f,c);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,c),n.isZero()||(n.negative^=1);a&&(a.words[c]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(o=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:o,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modrn(t.words[0]))}:this._wordDiv(t,e);var o,s,a},i.prototype.div=function(t){return this.divmod(t,"div",!1).div},i.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},i.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%t;return e?-i:i},i.prototype.modn=function(t){return this.modrn(t)},i.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++l;for(var h=n.clone(),c=e.clone();!e.isZero();){for(var f=0,d=1;0==(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(h),s.isub(c)),o.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(h),u.isub(c)),a.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(a),s.isub(u)):(n.isub(e),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,h=1;0==(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(e.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var c=0,f=1;0==(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(n.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(o=0===e.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(t),o},i.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},i.prototype.invm=function(t){return this.egcd(t).a.umod(t)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;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(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},i.prototype.gtn=function(t){return 1===this.cmpn(t)},i.prototype.gt=function(t){return 1===this.cmp(t)},i.prototype.gten=function(t){return this.cmpn(t)>=0},i.prototype.gte=function(t){return this.cmp(t)>=0},i.prototype.ltn=function(t){return-1===this.cmpn(t)},i.prototype.lt=function(t){return-1===this.cmp(t)},i.prototype.lten=function(t){return this.cmpn(t)<=0},i.prototype.lte=function(t){return this.cmp(t)<=0},i.prototype.eqn=function(t){return 0===this.cmpn(t)},i.prototype.eq=function(t){return 0===this.cmp(t)},i.red=function(t){return new I(t)},i.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},i.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},i.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},i.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},i.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},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(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function T(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(t){if("string"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function N(t){I.call(this,t),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)}b.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<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},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},n(A,b),A.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}t.words[i-10]=o>>>=22,t.length-=0===o&&t.length>10?10:9},A.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];t.words[r]=67108863&(e+=977*n),e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(w,b),n(E,b),n(T,b),T.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new A;else if("p224"===t)e=new w;else if("p192"===t)e=new E;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new T}return v[t]=e,e},I.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},I.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},I.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(l(t,t.umod(this.m)._forceRed(this)),t)},I.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},I.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},I.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},I.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},I.prototype.isqr=function(t){return this.imul(t,t.clone())},I.prototype.sqr=function(t){return this.mul(t,t)},I.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new i(1)).iushrn(2);return this.pow(t,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),h=this.m.bitLength();for(h=new i(2*h*h).toRed(this);0!==this.pow(h,l).cmp(u);)h.redIAdd(u);for(var c=this.pow(h,o),f=this.pow(t,o.addn(1).iushrn(1)),d=this.pow(t,o),p=s;0!==d.cmp(a);){for(var m=d,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<p);var g=this.pow(c,new i(1).iushln(p-y-1));f=f.redMul(g),c=g.redSqr(),d=d.redMul(c),p=y}return f},I.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},I.prototype.pow=function(t,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var o=r[0],s=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var l=e.words[n],h=u-1;h>=0;h--){var c=l>>h&1;o!==r[0]&&(o=this.sqr(o)),0!==c||0!==s?(s<<=1,s|=c,(4==++a||0===n&&0===h)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},I.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},I.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new N(t)},n(N,I),N.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},N.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},N.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),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)},N.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new i(0)._forceRed(this);var r=t.mul(e),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)},N.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,rr)});let sr=!1,ar=!1;const ur={debug:1,default:2,info:2,warning:3,error:4,off:5};let lr=ur.default,hr=null;const cr=function(){try{const t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(e=>{try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(r){t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();var fr,dr;!function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(fr||(fr={})),function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"}(dr||(dr={}));const pr="0123456789abcdef";class mr{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==ur[r]&&this.throwArgumentError("invalid log level name","logLevel",t),lr>ur[r]||console.log.apply(console,e)}debug(...t){this._log(mr.levels.DEBUG,t)}info(...t){this._log(mr.levels.INFO,t)}warn(...t){this._log(mr.levels.WARNING,t)}makeError(t,e,r){if(ar)return this.makeError("censored error",e,{});e||(e=mr.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(t=>{const e=r[t];try{if(e instanceof Uint8Array){let r="";for(let t=0;t<e.length;t++)r+=pr[e[t]>>4],r+=pr[15&e[t]];n.push(t+"=Uint8Array(0x"+r+")")}else n.push(t+"="+JSON.stringify(e))}catch(e){n.push(t+"="+JSON.stringify(r[t].toString()))}}),n.push(`code=${e}`),n.push(`version=${this.version}`);const i=t;let o="";switch(e){case dr.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case dr.CALL_EXCEPTION:case dr.INSUFFICIENT_FUNDS:case dr.MISSING_NEW:case dr.NONCE_EXPIRED:case dr.REPLACEMENT_UNDERPRICED:case dr.TRANSACTION_REPLACED:case dr.UNPREDICTABLE_GAS_LIMIT:o=e}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(t+=" ("+n.join(", ")+")");const s=new Error(t);return s.reason=i,s.code=e,Object.keys(r).forEach(function(t){s[t]=r[t]}),s}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(t,e,r){return this.throwError(t,mr.errors.INVALID_ARGUMENT,{argument:e,value:r})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(t){cr&&this.throwError("platform missing String.prototype.normalize",mr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:cr})}checkSafeUint53(t,e){"number"==typeof t&&(null==e&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,mr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,mr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,r){r=r?": "+r:"",t<e&&this.throwError("missing argument"+r,mr.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+r,mr.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){t!==Object&&null!=t||this.throwError("missing new",mr.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",mr.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",mr.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return hr||(hr=new mr("logger/5.7.0")),hr}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",mr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),sr){if(!t)return;this.globalLogger().throwError("error censorship permanent",mr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}ar=!!t,sr=!!e}static setLogLevel(t){const e=ur[t.toLowerCase()];null!=e?lr=e:mr.globalLogger().warn("invalid log level - "+t)}static from(t){return new mr(t)}}mr.errors=dr,mr.levels=fr;const yr=new mr("bytes/5.7.0");function gr(t){return!!t.toHexString}function vr(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return vr(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function br(t){return Nr(t)&&!(t.length%2)||wr(t)}function Ar(t){return"number"==typeof t&&t==t&&t%1==0}function wr(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if("string"==typeof t)return!1;if(!Ar(t.length)||t.length<0)return!1;for(let e=0;e<t.length;e++){const r=t[e];if(!Ar(r)||r<0||r>=256)return!1}return!0}function Er(t,e){if(e||(e={}),"number"==typeof t){yr.checkSafeUint53(t,"invalid arrayify value");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),vr(new Uint8Array(e))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),gr(t)&&(t=t.toHexString()),Nr(t)){let r=t.substring(2);r.length%2&&("left"===e.hexPad?r="0"+r:"right"===e.hexPad?r+="0":yr.throwArgumentError("hex data is odd-length","value",t));const n=[];for(let t=0;t<r.length;t+=2)n.push(parseInt(r.substring(t,t+2),16));return vr(new Uint8Array(n))}return wr(t)?vr(new Uint8Array(t)):yr.throwArgumentError("invalid arrayify value","value",t)}function Tr(t){const e=t.map(t=>Er(t)),r=e.reduce((t,e)=>t+e.length,0),n=new Uint8Array(r);return e.reduce((t,e)=>(n.set(e,t),t+e.length),0),vr(n)}function Ir(t){let e=Er(t);if(0===e.length)return e;let r=0;for(;r<e.length&&0===e[r];)r++;return r&&(e=e.slice(r)),e}function Nr(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}const Mr="0123456789abcdef";function kr(t,e){if(e||(e={}),"number"==typeof t){yr.checkSafeUint53(t,"invalid hexlify value");let e="";for(;t;)e=Mr[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if("bigint"==typeof t)return(t=t.toString(16)).length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),gr(t))return t.toHexString();if(Nr(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":yr.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(wr(t)){let e="0x";for(let r=0;r<t.length;r++){let n=t[r];e+=Mr[(240&n)>>4]+Mr[15&n]}return e}return yr.throwArgumentError("invalid hexlify value","value",t)}function _r(t){if("string"!=typeof t)t=kr(t);else if(!Nr(t)||t.length%2)return null;return(t.length-2)/2}function Sr(t,e,r){return"string"!=typeof t?t=kr(t):(!Nr(t)||t.length%2)&&yr.throwArgumentError("invalid hexData","value",t),e=2+2*e,null!=r?"0x"+t.substring(e,2+2*r):"0x"+t.substring(e)}function Pr(t){let e="0x";return t.forEach(t=>{e+=kr(t).substring(2)}),e}function Cr(t){const e=function(t){"string"!=typeof t&&(t=kr(t)),Nr(t)||yr.throwArgumentError("invalid hex string","value",t),t=t.substring(2);let e=0;for(;e<t.length&&"0"===t[e];)e++;return"0x"+t.substring(e)}(kr(t,{hexPad:"left"}));return"0x"===e?"0x0":e}function xr(t,e){for("string"!=typeof t?t=kr(t):Nr(t)||yr.throwArgumentError("invalid hex string","value",t),t.length>2*e+2&&yr.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}function Or(t){const e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(br(t)){let r=Er(t);64===r.length?(e.v=27+(r[32]>>7),r[32]&=127,e.r=kr(r.slice(0,32)),e.s=kr(r.slice(32,64))):65===r.length?(e.r=kr(r.slice(0,32)),e.s=kr(r.slice(32,64)),e.v=r[64]):yr.throwArgumentError("invalid signature string","signature",t),e.v<27&&(0===e.v||1===e.v?e.v+=27:yr.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=kr(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){const r=function(t,e){(t=Er(t)).length>e&&yr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(e);return r.set(t,e-t.length),vr(r)}(Er(e._vs),32);e._vs=kr(r);const n=r[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=n:e.recoveryParam!==n&&yr.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),r[0]&=127;const i=kr(r);null==e.s?e.s=i:e.s!==i&&yr.throwArgumentError("signature v mismatch _vs","signature",t)}null==e.recoveryParam?null==e.v?yr.throwArgumentError("signature missing v and recoveryParam","signature",t):e.recoveryParam=0===e.v||1===e.v?e.v:1-e.v%2:null==e.v?e.v=27+e.recoveryParam:e.recoveryParam!==(0===e.v||1===e.v?e.v:1-e.v%2)&&yr.throwArgumentError("signature recoveryParam mismatch v","signature",t),null!=e.r&&Nr(e.r)?e.r=xr(e.r,32):yr.throwArgumentError("signature missing or invalid r","signature",t),null!=e.s&&Nr(e.s)?e.s=xr(e.s,32):yr.throwArgumentError("signature missing or invalid s","signature",t);const r=Er(e.s);r[0]>=128&&yr.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(r[0]|=128);const n=kr(r);e._vs&&(Nr(e._vs)||yr.throwArgumentError("signature invalid _vs","signature",t),e._vs=xr(e._vs,32)),null==e._vs?e._vs=n:e._vs!==n&&yr.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}var Rr=or.BN;const Br=new mr("bignumber/5.7.0"),Dr={},Lr=9007199254740991;let Ur=!1;class Fr{constructor(t,e){t!==Dr&&Br.throwError("cannot call constructor directly; use BigNumber.from",mr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return Gr(Hr(this).fromTwos(t))}toTwos(t){return Gr(Hr(this).toTwos(t))}abs(){return"-"===this._hex[0]?Fr.from(this._hex.substring(1)):this}add(t){return Gr(Hr(this).add(Hr(t)))}sub(t){return Gr(Hr(this).sub(Hr(t)))}div(t){return Fr.from(t).isZero()&&zr("division-by-zero","div"),Gr(Hr(this).div(Hr(t)))}mul(t){return Gr(Hr(this).mul(Hr(t)))}mod(t){const e=Hr(t);return e.isNeg()&&zr("division-by-zero","mod"),Gr(Hr(this).umod(e))}pow(t){const e=Hr(t);return e.isNeg()&&zr("negative-power","pow"),Gr(Hr(this).pow(e))}and(t){const e=Hr(t);return(this.isNegative()||e.isNeg())&&zr("unbound-bitwise-result","and"),Gr(Hr(this).and(e))}or(t){const e=Hr(t);return(this.isNegative()||e.isNeg())&&zr("unbound-bitwise-result","or"),Gr(Hr(this).or(e))}xor(t){const e=Hr(t);return(this.isNegative()||e.isNeg())&&zr("unbound-bitwise-result","xor"),Gr(Hr(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&zr("negative-width","mask"),Gr(Hr(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&zr("negative-width","shl"),Gr(Hr(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&zr("negative-width","shr"),Gr(Hr(this).shrn(t))}eq(t){return Hr(this).eq(Hr(t))}lt(t){return Hr(this).lt(Hr(t))}lte(t){return Hr(this).lte(Hr(t))}gt(t){return Hr(this).gt(Hr(t))}gte(t){return Hr(this).gte(Hr(t))}isNegative(){return"-"===this._hex[0]}isZero(){return Hr(this).isZero()}toNumber(){try{return Hr(this).toNumber()}catch(t){zr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return Br.throwError("this platform does not support BigInt",mr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Ur||(Ur=!0,Br.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Br.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",mr.errors.UNEXPECTED_ARGUMENT,{})),Hr(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof Fr)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new Fr(Dr,qr(t)):t.match(/^-?[0-9]+$/)?new Fr(Dr,qr(new Rr(t))):Br.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&zr("underflow","BigNumber.from",t),(t>=Lr||t<=-Lr)&&zr("overflow","BigNumber.from",t),Fr.from(String(t));const e=t;if("bigint"==typeof e)return Fr.from(e.toString());if(wr(e))return Fr.from(kr(e));if(e)if(e.toHexString){const t=e.toHexString();if("string"==typeof t)return Fr.from(t)}else{let t=e._hex;if(null==t&&"BigNumber"===e.type&&(t=e.hex),"string"==typeof t&&(Nr(t)||"-"===t[0]&&Nr(t.substring(1))))return Fr.from(t)}return Br.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!(!t||!t._isBigNumber)}}function qr(t){if("string"!=typeof t)return qr(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&Br.throwArgumentError("invalid hex","value",t),"0x00"===(t=qr(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function Gr(t){return Fr.from(qr(t))}function Hr(t){const e=Fr.from(t).toHexString();return new Rr("-"===e[0]?"-"+e.substring(3):e.substring(2),16)}function zr(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),Br.throwError(t,mr.errors.NUMERIC_FAULT,n)}var jr=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Qr=new mr("properties/5.7.0");function Kr(t,e,r){Object.defineProperty(t,e,{enumerable:!0,value:r,writable:!1})}function Vr(t,e){for(let r=0;r<32;r++){if(t[e])return t[e];if(!t.prototype||"object"!=typeof t.prototype)break;t=Object.getPrototypeOf(t.prototype).constructor}return null}function Jr(t){return jr(this,void 0,void 0,function*(){const e=Object.keys(t).map(e=>Promise.resolve(t[e]).then(t=>({key:e,value:t})));return(yield Promise.all(e)).reduce((t,e)=>(t[e.key]=e.value,t),{})})}function Yr(t){const e={};for(const r in t)e[r]=t[r];return e}const Wr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Xr(t){if(null==t||Wr[typeof t])return!0;if(Array.isArray(t)||"object"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let r=0;r<e.length;r++){let n=null;try{n=t[e[r]]}catch(t){continue}if(!Xr(n))return!1}return!0}return Qr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function Zr(t){if(Xr(t))return t;if(Array.isArray(t))return Object.freeze(t.map(t=>$r(t)));if("object"==typeof t){const e={};for(const r in t){const n=t[r];void 0!==n&&Kr(e,r,$r(n))}return e}return Qr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function $r(t){return Zr(t)}class tn{constructor(t){for(const e in t)this[e]=$r(t[e])}}const en=new mr("abstract-provider/5.7.0");class rn extends tn{static isForkEvent(t){return!(!t||!t._isForkEvent)}}class nn{constructor(){en.checkAbstract(new.target,nn),Kr(this,"_isProvider",!0)}getFeeData(){return t=this,r=function*(){const{block:t,gasPrice:e}=yield Jr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(t=>null)});let r=null,n=null,i=null;return t&&t.baseFeePerGas&&(r=t.baseFeePerGas,i=Fr.from("1500000000"),n=t.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:e}},new((e=void 0)||(e=Promise))(function(n,i){function o(t){try{a(r.next(t))}catch(t){i(t)}}function s(t){try{a(r.throw(t))}catch(t){i(t)}}function a(t){var r;t.done?n(t.value):(r=t.value,r instanceof e?r:new e(function(t){t(r)})).then(o,s)}a((r=r.apply(t,[])).next())});var t,e,r}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}}const on=new mr("networks/5.7.1");function sn(t){const e=function(e,r){null==r&&(r={});const n=[];if(e.InfuraProvider&&"-"!==r.infura)try{n.push(new e.InfuraProvider(t,r.infura))}catch(t){}if(e.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new e.EtherscanProvider(t,r.etherscan))}catch(t){}if(e.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new e.AlchemyProvider(t,r.alchemy))}catch(t){}if(e.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new e.PocketProvider(t,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}}if(e.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new e.CloudflareProvider(t))}catch(t){}if(e.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new e.AnkrProvider(t,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}if(0===n.length)return null;if(e.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===t&&(i=2),new e.FallbackProvider(n,i)}return n[0]};return e.renetwork=function(t){return sn(t)},e}function an(t,e){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(t,e):null};return r.renetwork=function(e){return an(t,e)},r}const un={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:sn("homestead")},ln={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:sn("ropsten")},hn={chainId:63,name:"classicMordor",_defaultProvider:an("https://www.ethercluster.com/mordor","classicMordor")},cn={unspecified:{chainId:0,name:"unspecified"},homestead:un,mainnet:un,morden:{chainId:2,name:"morden"},ropsten:ln,testnet:ln,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:sn("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:sn("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:sn("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:sn("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:an("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:hn,classicTestnet:hn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:an("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:sn("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:sn("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function fn(t){t=atob(t);const e=[];for(let r=0;r<t.length;r++)e.push(t.charCodeAt(r));return Er(e)}function dn(t){t=Er(t);let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}class pn{constructor(t){Kr(this,"alphabet",t),Kr(this,"base",t.length),Kr(this,"_alphabetMap",{}),Kr(this,"_leader",t.charAt(0));for(let e=0;e<t.length;e++)this._alphabetMap[t.charAt(e)]=e}encode(t){let e=Er(t);if(0===e.length)return"";let r=[0];for(let t=0;t<e.length;++t){let n=e[t];for(let t=0;t<r.length;++t)n+=r[t]<<8,r[t]=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 t=0;0===e[t]&&t<e.length-1;++t)n+=this._leader;for(let t=r.length-1;t>=0;--t)n+=this.alphabet[r[t]];return n}decode(t){if("string"!=typeof t)throw new TypeError("Expected String");let e=[];if(0===t.length)return new Uint8Array(e);e.push(0);for(let r=0;r<t.length;r++){let n=this._alphabetMap[t[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let t=0;t<e.length;++t)i+=e[t]*this.base,e[t]=255&i,i>>=8;for(;i>0;)e.push(255&i),i>>=8}for(let r=0;t[r]===this._leader&&r<t.length-1;++r)e.push(0);return Er(new Uint8Array(e.reverse()))}}new pn("abcdefghijklmnopqrstuvwxyz234567");const mn=new pn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),yn=/*#__PURE__*/Fr.from(0);var gn=nr(function(t){!function(){var e="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=rr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&t.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],h=[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],c=[224,256,384,512],f=[128,256],d=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var m=function(t,e,r){return function(n){return new P(t,e,t).update(n)[r]()}},y=function(t,e,r){return function(n,i){return new P(t,e,i).update(n)[r]()}},g=function(t,e,r){return function(e,n,i,o){return E["cshake"+t].update(e,n,i,o)[r]()}},v=function(t,e,r){return function(e,n,i,o){return E["kmac"+t].update(e,n,i,o)[r]()}},b=function(t,e,r,n){for(var i=0;i<d.length;++i){var o=d[i];t[o]=e(r,n,o)}return t},A=function(t,e){var r=m(t,e,"hex");return r.create=function(){return new P(t,e,t)},r.update=function(t){return r.create().update(t)},b(r,m,t,e)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:c,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:c,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(t,e){var r=y(t,e,"hex");return r.create=function(r){return new P(t,e,r)},r.update=function(t,e){return r.create(e).update(t)},b(r,y,t,e)}},{name:"cshake",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=g(t,0,"hex");return n.create=function(n,i,o){return i||o?new P(t,e,n).bytepad([i,o],r):E["shake"+t].create(n)},n.update=function(t,e,r,i){return n.create(e,r,i).update(t)},b(n,g,t,e)}},{name:"kmac",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=v(t,0,"hex");return n.create=function(n,i,o){return new C(t,e,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(t,e,r,i){return n.create(t,r,i).update(e)},b(n,v,t,e)}}],E={},T=[],I=0;I<w.length;++I)for(var N=w[I],M=N.bits,k=0;k<M.length;++k){var _=N.name+"_"+M[k];if(T.push(_),E[_]=N.createMethod(M[k],N.padding),"sha3"!==N.name){var S=N.name+M[k];T.push(S),E[S]=E[_]}}function P(t,e,r){this.blocks=[],this.s=[],this.padding=e,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<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 C(t,e,r){P.call(this,t,e,r)}P.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,h=t.length,c=this.blockCount,f=0,d=this.s;f<h;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<c+1;++i)a[i]=0;if(r)for(i=this.start;f<h&&i<u;++f)a[i>>2]|=t[f]<<l[3&i++];else for(i=this.start;f<h&&i<u;++f)(o=t.charCodeAt(f))<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&t.charCodeAt(++f)),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[c],i=0;i<c;++i)d[i]^=a[i];x(d),this.reset=!0}else this.start=i}return this},P.prototype.encode=function(t,e){var r=255&t,n=1,i=[r];for(r=255&(t>>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},P.prototype.encodeString=function(t){var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}var i=0;if(r)i=t.length;else for(var o=0;o<t.length;++o){var a=t.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(t),i},P.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n<t.length;++n)r+=this.encodeString(t[n]);var i=[];return i.length=e-r%e,this.update(i),this},P.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,r=this.blockCount,n=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e<r+1;++e)t[e]=0;for(t[r-1]|=2147483648,e=0;e<r;++e)n[e]^=t[e];x(n)}},P.prototype.toString=P.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<e&&s<n;++o,++s)u+=a[(t=r[o])>>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];s%e==0&&(x(r),o=0)}return i&&(u+=a[(t=r[o])>>4&15]+a[15&t],i>1&&(u+=a[t>>12&15]+a[t>>8&15]),i>2&&(u+=a[t>>20&15]+a[t>>16&15])),u},P.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(t);s<n;){for(o=0;o<e&&s<n;++o,++s)u[s]=r[o];s%e==0&&x(r)}return i&&(u[o]=r[o],t=t.slice(0,a)),t},P.prototype.buffer=P.prototype.arrayBuffer,P.prototype.digest=P.prototype.array=function(){this.finalize();for(var t,e,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[t=a<<2]=255&(e=n[s]),u[t+1]=e>>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;a%r==0&&x(n)}return o&&(u[t=a<<2]=255&(e=n[s]),o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u},(C.prototype=new P).finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var x=function(t){var e,r,n,i,o,s,a,u,l,c,f,d,p,m,y,g,v,b,A,w,E,T,I,N,M,k,_,S,P,C,x,O,R,B,D,L,U,F,q,G,H,z,j,Q,K,V,J,Y,W,X,Z,$,tt,et,rt,nt,it,ot,st,at,ut,lt,ht;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],u=t[4]^t[14]^t[24]^t[34]^t[44],l=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],f=t[7]^t[17]^t[27]^t[37]^t[47],r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^((a=t[3]^t[13]^t[23]^t[33]^t[43])<<1|(s=t[2]^t[12]^t[22]^t[32]^t[42])>>>31),t[0]^=e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,r=o^(l<<1|u>>>31),t[2]^=e=i^(u<<1|l>>>31),t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,r=a^(f<<1|c>>>31),t[4]^=e=s^(c<<1|f>>>31),t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,r=l^(p<<1|d>>>31),t[6]^=e=u^(d<<1|p>>>31),t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,r=f^(o<<1|i>>>31),t[8]^=e=c^(i<<1|o>>>31),t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,y=t[1],V=t[11]<<4|t[10]>>>28,J=t[10]<<4|t[11]>>>28,S=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,z=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,B=t[2]<<1|t[3]>>>31,D=t[3]<<1|t[2]>>>31,v=t[12]<<12|t[13]>>>20,Y=t[22]<<10|t[23]>>>22,W=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,x=t[32]<<13|t[33]>>>19,lt=t[42]<<2|t[43]>>>30,ht=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,L=t[14]<<6|t[15]>>>26,U=t[15]<<6|t[14]>>>26,A=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,O=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,N=t[6]<<28|t[7]>>>4,M=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,q=t[27]<<25|t[26]>>>7,w=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Q=t[8]<<27|t[9]>>>5,K=t[9]<<27|t[8]>>>5,k=t[18]<<20|t[19]>>>12,_=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,G=t[38]<<8|t[39]>>>24,H=t[39]<<8|t[38]>>>24,T=t[48]<<14|t[49]>>>18,I=t[49]<<14|t[48]>>>18,t[0]=(m=t[0])^~(g=t[13]<<12|t[12]>>>20)&(b=t[25]<<11|t[24]>>>21),t[1]=y^~v&A,t[10]=N^~k&S,t[11]=M^~_&P,t[20]=B^~L&F,t[21]=D^~U&q,t[30]=Q^~V&Y,t[31]=K^~J&W,t[40]=et^~nt&ot,t[41]=rt^~it&st,t[2]=g^~b&w,t[3]=v^~A&E,t[12]=k^~S&C,t[13]=_^~P&x,t[22]=L^~F&G,t[23]=U^~q&H,t[32]=V^~Y&X,t[33]=J^~W&Z,t[42]=nt^~ot&at,t[43]=it^~st&ut,t[4]=b^~w&T,t[5]=A^~E&I,t[14]=S^~C&O,t[15]=P^~x&R,t[24]=F^~G&z,t[25]=q^~H&j,t[34]=Y^~X&$,t[35]=W^~Z&tt,t[44]=ot^~at<,t[45]=st^~ut&ht,t[6]=w^~T&m,t[7]=E^~I&y,t[16]=C^~O&N,t[17]=x^~R&M,t[26]=G^~z&B,t[27]=H^~j&D,t[36]=X^~$&Q,t[37]=Z^~tt&K,t[46]=at^~lt&et,t[47]=ut^~ht&rt,t[8]=T^~m&g,t[9]=I^~y&v,t[18]=O^~N&k,t[19]=R^~M&_,t[28]=z^~B&L,t[29]=j^~D&U,t[38]=$^~Q&V,t[39]=tt^~K&J,t[48]=lt^~et&nt,t[49]=ht^~rt&it,t[0]^=h[n],t[1]^=h[n+1]};if(o)t.exports=E;else for(I=0;I<T.length;++I)n[T[I]]=E[T[I]]}()});function vn(t){return"0x"+gn.keccak_256(Er(t))}const bn=new mr("strings/5.7.0");var An,wn;function En(t,e,r,n,i){if(t===wn.BAD_PREFIX||t===wn.UNEXPECTED_CONTINUE){let t=0;for(let n=e+1;n<r.length&&r[n]>>6==2;n++)t++;return t}return t===wn.OVERRUN?r.length-e-1:0}!function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(An||(An={})),function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(wn||(wn={}));const Tn=Object.freeze({error:function(t,e,r,n,i){return bn.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,"bytes",r)},ignore:En,replace:function(t,e,r,n,i){return t===wn.OVERLONG?(n.push(i),0):(n.push(65533),En(t,e,r))}});function In(t,e){null==e&&(e=Tn.error),t=Er(t);const r=[];let n=0;for(;n<t.length;){const i=t[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+=e(128==(192&i)?wn.UNEXPECTED_CONTINUE:wn.BAD_PREFIX,n-1,t,r);continue}o=3,s=65535}if(n-1+o>=t.length){n+=e(wn.OVERRUN,n-1,t,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=t[n];if(128!=(192&i)){n+=e(wn.MISSING_CONTINUE,n,t,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=e(wn.OUT_OF_RANGE,n-1-o,t,r,a):a>=55296&&a<=57343?n+=e(wn.UTF16_SURROGATE,n-1-o,t,r,a):a<=s?n+=e(wn.OVERLONG,n-1-o,t,r,a):r.push(a))}return r}function Nn(t,e=An.current){e!=An.current&&(bn.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);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)){e++;const i=t.charCodeAt(e);if(e>=t.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 Er(r)}function Mn(t,e){return In(t,e).map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t)))).join("")}function kn(t){return vn(Nn(t))}const _n="hash/5.7.0";function Sn(t,e){null==e&&(e=1);const r=[],n=r.forEach,i=function(t,e){n.call(t,function(t){e>0&&Array.isArray(t)?i(t,e-1):r.push(t)})};return i(t,e),r}function Pn(t){return 1&t?~t>>1:t>>1}function Cn(t,e){let r=Array(t);for(let n=0,i=-1;n<t;n++)r[n]=i+=1+e();return r}function xn(t,e){let r=Array(t);for(let n=0,i=0;n<t;n++)r[n]=i+=Pn(e());return r}function On(t,e){let r=Cn(t(),t),n=t(),i=Cn(n,t),o=function(t,e){let r=Array(t);for(let n=0;n<t;n++)r[n]=1+e();return r}(n,t);for(let t=0;t<n;t++)for(let e=0;e<o[t];e++)r.push(i[t]+e);return e?r.map(t=>e[t]):r}function Rn(t,e,r){let n=Array(t).fill(void 0).map(()=>[]);for(let i=0;i<e;i++)xn(t,r).forEach((t,e)=>n[e].push(t));return n}function Bn(t,e){let r=1+e(),n=e(),i=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(r)}return e}(e);return Sn(Rn(i.length,1+t,e).map((t,e)=>{const o=t[0],s=t.slice(1);return Array(i[e]).fill(void 0).map((t,e)=>{let i=e*n;return[o+e*r,s.map(t=>t+i)]})}))}function Dn(t,e){return Rn(1+e(),1+t,e).map(t=>[t[0],t.slice(1)])}const Ln=function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),i=1,o=[0,1];for(let t=1;t<n;t++)o.push(i+=r());let s=r(),a=e;e+=s;let u=0,l=0;function h(){return 0==u&&(l=l<<8|t[e++],u=8),l>>--u&1}const c=Math.pow(2,31),f=c>>>1,d=f>>1,p=c-1;let m=0;for(let t=0;t<31;t++)m=m<<1|h();let y=[],g=0,v=c;for(;;){let t=Math.floor(((m-g+1)*i-1)/v),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t<o[n]?r=n:e=n}if(0==e)break;y.push(e);let s=g+Math.floor(v*o[e]/i),a=g+Math.floor(v*o[e+1]/i)-1;for(;0==((s^a)&f);)m=m<<1&p|h(),s=s<<1&p,a=a<<1&p|1;for(;s&~a&d;)m=m&f|m<<1&p>>>1|h(),s=s<<1^f,a=(a^f)<<1|f|1;g=s,v=1+a-s}let b=n-4;return y.map(e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}})}(fn("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=="))),Un=new Set(On(Ln)),Fn=new Set(On(Ln)),qn=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(Bn(r,t))}for(;;){let r=t()-1;if(r<0)break;e.push(Dn(r,t))}return function(t){const e={};for(let r=0;r<t.length;r++){const n=t[r];e[n[0]]=n[1]}return e}(Sn(e))}(Ln),Gn=function(t){let e=On(t).sort((t,e)=>t-e);return function r(){let n=[];for(;;){let i=On(t,e);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((t,e)=>e.set.size-t.set.size);let i=t(),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}}()}(Ln),Hn=45,zn=95;function jn(t){return function(t,e=An.current){return In(Nn(t,e))}(t)}function Qn(t){return t.filter(t=>65039!=t)}function Kn(t){for(let e of t.split(".")){let t=jn(e);try{for(let e=t.lastIndexOf(zn)-1;e>=0;e--)if(t[e]!==zn)throw new Error("underscore only allowed at start");if(t.length>=4&&t.every(t=>t<128)&&t[2]===Hn&&t[3]===Hn)throw new Error("invalid label extension")}catch(t){throw new Error(`Invalid label "${e}": ${t.message}`)}}return t}function Vn(t,e){var r;let n,i,o=Gn,s=[],a=t.length;for(e&&(e.length=0);a;){let u=t[--a];if(o=null===(r=o.branches.find(t=>t.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==t[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),e&&e.push(...t.slice(a).reverse()),t.length=a)}return n}const Jn=new mr(_n),Yn=new Uint8Array(32);function Wn(t){if(0===t.length)throw new Error("invalid ENS name; empty component");return t}function Xn(t){const e=Nn(function(t){return Kn(function(t,e){let r=jn(t).reverse(),n=[];for(;r.length;){let t=Vn(r);if(t){n.push(...e(t));continue}let i=r.pop();if(Un.has(i)){n.push(i);continue}if(Fn.has(i))continue;let o=qn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Kn(function(t){return t.normalize("NFC")}(String.fromCodePoint(...n)))}(t,Qn))}(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t<e.length;t++)46===e[t]&&(r.push(Wn(e.slice(n,t))),n=t+1);if(n>=e.length)throw new Error("invalid ENS name; empty component");return r.push(Wn(e.slice(n))),r}function Zn(t){"string"!=typeof t&&Jn.throwArgumentError("invalid ENS name; not a string","name",t);let e=Yn;const r=Xn(t);for(;r.length;)e=vn(Tr([e,vn(r.pop())]));return kr(e)}Yn.fill(0);const $n=new mr("rlp/5.7.0");function ti(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function ei(t,e,r){let n=0;for(let i=0;i<r;i++)n=256*n+t[e+i];return n}function ri(t){if(Array.isArray(t)){let e=[];if(t.forEach(function(t){e=e.concat(ri(t))}),e.length<=55)return e.unshift(192+e.length),e;const r=ti(e.length);return r.unshift(247+r.length),r.concat(e)}br(t)||$n.throwArgumentError("RLP object must be BytesLike","object",t);const e=Array.prototype.slice.call(Er(t));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const r=ti(e.length);return r.unshift(183+r.length),r.concat(e)}function ni(t){return kr(ri(t))}function ii(t,e,r,n){const i=[];for(;r<e+1+n;){const o=oi(t,r);i.push(o.result),(r+=o.consumed)>e+1+n&&$n.throwError("child data too short",mr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function oi(t,e){if(0===t.length&&$n.throwError("data too short",mr.errors.BUFFER_OVERRUN,{}),t[e]>=248){const r=t[e]-247;e+1+r>t.length&&$n.throwError("data short segment too short",mr.errors.BUFFER_OVERRUN,{});const n=ei(t,e+1,r);return e+1+r+n>t.length&&$n.throwError("data long segment too short",mr.errors.BUFFER_OVERRUN,{}),ii(t,e,e+1+r,r+n)}if(t[e]>=192){const r=t[e]-192;return e+1+r>t.length&&$n.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{}),ii(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;e+1+r>t.length&&$n.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{});const n=ei(t,e+1,r);return e+1+r+n>t.length&&$n.throwError("data array too short",mr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:kr(t.slice(e+1+r,e+1+r+n))}}if(t[e]>=128){const r=t[e]-128;return e+1+r>t.length&&$n.throwError("data too short",mr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:kr(t.slice(e+1,e+1+r))}}return{consumed:1,result:kr(t[e])}}function si(t){const e=Er(t),r=oi(e,0);return r.consumed!==e.length&&$n.throwArgumentError("invalid rlp data","data",t),r.result}const ai=new mr("address/5.7.0");function ui(t){Nr(t,20)||ai.throwArgumentError("invalid address","address",t);const e=(t=t.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=Er(vn(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const li={};for(let t=0;t<10;t++)li[String(t)]=String(t);for(let t=0;t<26;t++)li[String.fromCharCode(65+t)]=String(10+t);const hi=Math.floor(function(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}(9007199254740991));function ci(t){let e=null;if("string"!=typeof t&&ai.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=ui(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&ai.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>li[t]).join("");for(;e.length>=hi;){let t=e.substring(0,hi);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r="0"+r;return r}(t)&&ai.throwArgumentError("bad icap checksum","address",t),r=t.substring(4),e=new Rr(r,36).toString(16);e.length<40;)e="0"+e;e=ui("0x"+e)}else ai.throwArgumentError("invalid address","address",t);var r;return e}const fi=new mr(_n),di=new Uint8Array(32);di.fill(0);const pi=Fr.from(-1),mi=Fr.from(0),yi=Fr.from(1),gi=Fr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),vi=xr(yi.toHexString(),32),bi=xr(mi.toHexString(),32),Ai={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},wi=["name","version","chainId","verifyingContract","salt"];function Ei(t){return function(e){return"string"!=typeof e&&fi.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const Ti={name:Ei("name"),version:Ei("version"),chainId:function(t){try{return Fr.from(t).toString()}catch(t){}return fi.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",t)},verifyingContract:function(t){try{return ci(t).toLowerCase()}catch(t){}return fi.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){try{const e=Er(t);if(32!==e.length)throw new Error("bad length");return kr(e)}catch(t){}return fi.throwArgumentError('invalid domain value "salt"',"domain.salt",t)}};function Ii(t){{const e=t.match(/^(u?)int(\d*)$/);if(e){const r=""===e[1],n=parseInt(e[2]||"256");(n%8!=0||n>256||e[2]&&e[2]!==String(n))&&fi.throwArgumentError("invalid numeric width","type",t);const i=gi.mask(r?n-1:n),o=r?i.add(yi).mul(pi):mi;return function(e){const r=Fr.from(e);return(r.lt(o)||r.gt(i))&&fi.throwArgumentError(`value out-of-bounds for ${t}`,"value",e),xr(r.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const r=parseInt(e[1]);return(0===r||r>32||e[1]!==String(r))&&fi.throwArgumentError("invalid bytes width","type",t),function(e){return Er(e).length!==r&&fi.throwArgumentError(`invalid length for ${t}`,"value",e),function(t){const e=Er(t),r=e.length%32;return r?Pr([e,di.slice(r)]):kr(e)}(e)}}}switch(t){case"address":return function(t){return xr(ci(t),32)};case"bool":return function(t){return t?vi:bi};case"bytes":return function(t){return vn(t)};case"string":return function(t){return kn(t)}}return null}function Ni(t,e){return`${t}(${e.map(({name:t,type:e})=>e+" "+t).join(",")})`}class Mi{constructor(t){Kr(this,"types",Object.freeze($r(t))),Kr(this,"_encoderCache",{}),Kr(this,"_types",{});const e={},r={},n={};Object.keys(t).forEach(t=>{e[t]={},r[t]=[],n[t]={}});for(const n in t){const i={};t[n].forEach(o=>{i[o.name]&&fi.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",t),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&fi.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",t),Ii(s)||(r[s]||fi.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",t),r[s].push(n),e[n][s]=!0)})}const i=Object.keys(r).filter(t=>0===r[t].length);0===i.length?fi.throwArgumentError("missing primary type","types",t):i.length>1&&fi.throwArgumentError(`ambiguous primary types or unused types: ${i.map(t=>JSON.stringify(t)).join(", ")}`,"types",t),Kr(this,"primaryType",i[0]),function i(o,s){s[o]&&fi.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",t),s[o]=!0,Object.keys(e[o]).forEach(t=>{r[t]&&(i(t,s),Object.keys(s).forEach(e=>{n[e][t]=!0}))}),delete s[o]}(this.primaryType,{});for(const e in n){const r=Object.keys(n[e]);r.sort(),this._types[e]=Ni(e,t[e])+r.map(e=>Ni(e,t[e])).join("")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=Ii(t);if(e)return e}const e=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(e){const t=e[1],r=this.getEncoder(t),n=parseInt(e[3]);return e=>{n>=0&&e.length!==n&&fi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e);let i=e.map(r);return this._types[t]&&(i=i.map(vn)),vn(Pr(i))}}const r=this.types[t];if(r){const e=kn(this._types[t]);return t=>{const n=r.map(({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this._types[r]?vn(n):n});return n.unshift(e),Pr(n)}}return fi.throwArgumentError(`unknown type: ${t}`,"type",t)}encodeType(t){const e=this._types[t];return e||fi.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return vn(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(Ii(t))return r(t,e);const n=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const t=n[1],i=parseInt(n[3]);return i>=0&&e.length!==i&&fi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(e=>this._visit(t,e,r))}const i=this.types[t];return i?i.reduce((t,{name:n,type:i})=>(t[n]=this._visit(i,e[n],r),t),{}):fi.throwArgumentError(`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Mi(t)}static getPrimaryType(t){return Mi.from(t).primaryType}static hashStruct(t,e,r){return Mi.from(e).hashStruct(t,r)}static hashDomain(t){const e=[];for(const r in t){const n=Ai[r];n||fi.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",t),e.push({name:r,type:n})}return e.sort((t,e)=>wi.indexOf(t.name)-wi.indexOf(e.name)),Mi.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,r){return Pr(["0x1901",Mi.hashDomain(t),Mi.from(e).hash(r)])}static hash(t,e,r){return vn(Mi.encode(t,e,r))}static resolveNames(t,e,r,n){return i=this,s=function*(){t=Yr(t);const i={};t.verifyingContract&&!Nr(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=Mi.from(e);o.visit(r,(t,e)=>("address"!==t||Nr(e,20)||(i[e]="0x"),e));for(const t in i)i[t]=yield n(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),r=o.visit(r,(t,e)=>"address"===t&&i[e]?i[e]:e),{domain:t,value:r}},new((o=void 0)||(o=Promise))(function(t,e){function r(t){try{a(s.next(t))}catch(t){e(t)}}function n(t){try{a(s.throw(t))}catch(t){e(t)}}function a(e){var i;e.done?t(e.value):(i=e.value,i instanceof o?i:new o(function(t){t(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(t,e,r){Mi.hashDomain(t);const n={},i=[];wi.forEach(e=>{const r=t[e];null!=r&&(n[e]=Ti[e](r),i.push({name:e,type:Ai[e]}))});const o=Mi.from(e),s=Yr(e);return s.EIP712Domain?fi.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",e):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(t,e)=>{if(t.match(/^bytes(\d*)/))return kr(Er(e));if(t.match(/^u?int/))return Fr.from(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return"string"!=typeof e&&fi.throwArgumentError("invalid string","value",e),e}return fi.throwArgumentError("unsupported type","type",t)})}}}var ki=_i;function _i(t,e){if(!t)throw new Error(e||"Assertion failed")}function Si(t,e){return 55296==(64512&t.charCodeAt(e))&&!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1))}function Pi(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function Ci(t){return 1===t.length?"0"+t:t}function xi(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}_i.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var Oi={inherits:nr(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),toArray:function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var o=t.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):Si(t,i)?(o=65536+((1023&o)<<10)+(1023&t.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<t.length;i++)r[i]=0|t[i];return r},toHex:function(t){for(var e="",r=0;r<t.length;r++)e+=Ci(t[r].toString(16));return e},htonl:Pi,toHex32:function(t,e){for(var r="",n=0;n<t.length;n++){var i=t[n];"little"===e&&(i=Pi(i)),r+=xi(i.toString(16))}return r},zero2:Ci,zero8:xi,join32:function(t,e,r,n){var i=r-e;ki(i%4==0);for(var o=new Array(i/4),s=0,a=e;s<o.length;s++,a+=4)o[s]=("big"===n?t[a]<<24|t[a+1]<<16|t[a+2]<<8|t[a+3]:t[a+3]<<24|t[a+2]<<16|t[a+1]<<8|t[a])>>>0;return o},split32:function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n<t.length;n++,i+=4){var o=t[n];"big"===e?(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(t,e){return t>>>e|t<<32-e},rotl32:function(t,e){return t<<e|t>>>32-e},sum32:function(t,e){return t+e>>>0},sum32_3:function(t,e,r){return t+e+r>>>0},sum32_4:function(t,e,r,n){return t+e+r+n>>>0},sum32_5:function(t,e,r,n,i){return t+e+r+n+i>>>0},sum64:function(t,e,r,n){var i=n+t[e+1]>>>0;t[e]=(i<n?1:0)+r+t[e]>>>0,t[e+1]=i},sum64_hi:function(t,e,r,n){return(e+n>>>0<e?1:0)+t+r>>>0},sum64_lo:function(t,e,r,n){return e+n>>>0},sum64_4_hi:function(t,e,r,n,i,o,s,a){var u=0,l=e;return u+=(l=l+n>>>0)<e?1:0,u+=(l=l+o>>>0)<o?1:0,t+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},sum64_5_hi:function(t,e,r,n,i,o,s,a,u,l){var h=0,c=e;return h+=(c=c+n>>>0)<e?1:0,h+=(c=c+o>>>0)<o?1:0,h+=(c=c+a>>>0)<a?1:0,t+r+i+s+u+(h+=(c=c+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(t,e,r,n,i,o,s,a,u,l){return e+n+o+a+l>>>0},rotr64_hi:function(t,e,r){return(e<<32-r|t>>>r)>>>0},rotr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0},shr64_hi:function(t,e,r){return t>>>r},shr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0}};function Ri(){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 Bi=Ri;Ri.prototype.update=function(t,e){if(t=Oi.toArray(t,e),this.pending=this.pending?this.pending.concat(t):t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=Oi.join32(t,0,t.length-r,this.endian);for(var n=0;n<t.length;n+=this._delta32)this._update(t,n,n+this._delta32)}return this},Ri.prototype.digest=function(t){return this.update(this._pad()),ki(null===this.pending),this._digest(t)},Ri.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,r=e-(t+this.padLength)%e,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(t<<=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++]=t>>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>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 Di={BlockHash:Bi},Li=Oi.rotr32;function Ui(t,e,r){return t&e^~t&r}function Fi(t,e,r){return t&e^t&r^e&r}var qi=Ui,Gi=Fi,Hi=Oi.rotl32,zi=Oi.sum32,ji=Oi.sum32_5,Qi=function(t,e,r,n){return 0===t?Ui(e,r,n):1===t||3===t?function(t,e,r){return t^e^r}(e,r,n):2===t?Fi(e,r,n):void 0},Ki=Di.BlockHash,Vi=[1518500249,1859775393,2400959708,3395469782];function Ji(){if(!(this instanceof Ji))return new Ji;Ki.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Oi.inherits(Ji,Ki);var Yi=Ji;Ji.blockSize=512,Ji.outSize=160,Ji.hmacStrength=80,Ji.padLength=64,Ji.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=Hi(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),h=ji(Hi(i,5),Qi(l,o,s,a),u,r[n],Vi[l]);u=a,a=s,s=Hi(o,30),o=i,i=h}this.h[0]=zi(this.h[0],i),this.h[1]=zi(this.h[1],o),this.h[2]=zi(this.h[2],s),this.h[3]=zi(this.h[3],a),this.h[4]=zi(this.h[4],u)},Ji.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"big"):Oi.split32(this.h,"big")};var Wi=Oi.sum32,Xi=Oi.sum32_4,Zi=Oi.sum32_5,$i=qi,to=Gi,eo=function(t){return Li(t,2)^Li(t,13)^Li(t,22)},ro=function(t){return Li(t,6)^Li(t,11)^Li(t,25)},no=function(t){return Li(t,7)^Li(t,18)^t>>>3},io=function(t){return Li(t,17)^Li(t,19)^t>>>10},oo=Di.BlockHash,so=[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 ao(){if(!(this instanceof ao))return new ao;oo.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=so,this.W=new Array(64)}Oi.inherits(ao,oo);var uo=ao;function lo(){if(!(this instanceof lo))return new lo;uo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}ao.blockSize=512,ao.outSize=256,ao.hmacStrength=192,ao.padLength=64,ao.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=Xi(io(r[n-2]),r[n-7],no(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],h=this.h[6],c=this.h[7];for(ki(this.k.length===r.length),n=0;n<r.length;n++){var f=Zi(c,ro(u),$i(u,l,h),this.k[n],r[n]),d=Wi(eo(i),to(i,o,s));c=h,h=l,l=u,u=Wi(a,f),a=s,s=o,o=i,i=Wi(f,d)}this.h[0]=Wi(this.h[0],i),this.h[1]=Wi(this.h[1],o),this.h[2]=Wi(this.h[2],s),this.h[3]=Wi(this.h[3],a),this.h[4]=Wi(this.h[4],u),this.h[5]=Wi(this.h[5],l),this.h[6]=Wi(this.h[6],h),this.h[7]=Wi(this.h[7],c)},ao.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"big"):Oi.split32(this.h,"big")},Oi.inherits(lo,uo);var ho=lo;lo.blockSize=512,lo.outSize=224,lo.hmacStrength=192,lo.padLength=64,lo.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h.slice(0,7),"big"):Oi.split32(this.h.slice(0,7),"big")};var co=Oi.rotr64_hi,fo=Oi.rotr64_lo,po=Oi.shr64_hi,mo=Oi.shr64_lo,yo=Oi.sum64,go=Oi.sum64_hi,vo=Oi.sum64_lo,bo=Oi.sum64_4_hi,Ao=Oi.sum64_4_lo,wo=Oi.sum64_5_hi,Eo=Oi.sum64_5_lo,To=Di.BlockHash,Io=[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 No(){if(!(this instanceof No))return new No;To.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Io,this.W=new Array(160)}Oi.inherits(No,To);var Mo=No;function ko(t,e,r,n,i){var o=t&r^~t&i;return o<0&&(o+=4294967296),o}function _o(t,e,r,n,i,o){var s=e&n^~e&o;return s<0&&(s+=4294967296),s}function So(t,e,r,n,i){var o=t&r^t&i^r&i;return o<0&&(o+=4294967296),o}function Po(t,e,r,n,i,o){var s=e&n^e&o^n&o;return s<0&&(s+=4294967296),s}function Co(t,e){var r=co(t,e,28)^co(e,t,2)^co(e,t,7);return r<0&&(r+=4294967296),r}function xo(t,e){var r=fo(t,e,28)^fo(e,t,2)^fo(e,t,7);return r<0&&(r+=4294967296),r}function Oo(t,e){var r=co(t,e,14)^co(t,e,18)^co(e,t,9);return r<0&&(r+=4294967296),r}function Ro(t,e){var r=fo(t,e,14)^fo(t,e,18)^fo(e,t,9);return r<0&&(r+=4294967296),r}function Bo(t,e){var r=co(t,e,1)^co(t,e,8)^po(t,e,7);return r<0&&(r+=4294967296),r}function Do(t,e){var r=fo(t,e,1)^fo(t,e,8)^mo(t,e,7);return r<0&&(r+=4294967296),r}function Lo(t,e){var r=co(t,e,19)^co(e,t,29)^po(t,e,6);return r<0&&(r+=4294967296),r}function Uo(t,e){var r=fo(t,e,19)^fo(e,t,29)^mo(t,e,6);return r<0&&(r+=4294967296),r}function Fo(){if(!(this instanceof Fo))return new Fo;Mo.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}No.blockSize=1024,No.outSize=512,No.hmacStrength=192,No.padLength=128,No.prototype._prepareBlock=function(t,e){for(var r=this.W,n=0;n<32;n++)r[n]=t[e+n];for(;n<r.length;n+=2){var i=Lo(r[n-4],r[n-3]),o=Uo(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=Bo(r[n-30],r[n-29]),l=Do(r[n-30],r[n-29]),h=r[n-32],c=r[n-31];r[n]=bo(i,o,s,a,u,l,h,c),r[n+1]=Ao(i,o,s,a,u,l,h,c)}},No.prototype._update=function(t,e){this._prepareBlock(t,e);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],h=this.h[7],c=this.h[8],f=this.h[9],d=this.h[10],p=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],v=this.h[15];ki(this.k.length===r.length);for(var b=0;b<r.length;b+=2){var A=g,w=v,E=Oo(c,f),T=Ro(c,f),I=ko(c,0,d,0,m),N=_o(0,f,0,p,0,y),M=this.k[b],k=this.k[b+1],_=r[b],S=r[b+1],P=wo(A,w,E,T,I,N,M,k,_,S),C=Eo(A,w,E,T,I,N,M,k,_,S);A=Co(n,i),w=xo(n,i),E=So(n,0,o,0,a),T=Po(0,i,0,s,0,u);var x=go(A,w,E,T),O=vo(A,w,E,T);g=m,v=y,m=d,y=p,d=c,p=f,c=go(l,h,P,C),f=vo(h,h,P,C),l=a,h=u,a=o,u=s,o=n,s=i,n=go(P,C,x,O),i=vo(P,C,x,O)}yo(this.h,0,n,i),yo(this.h,2,o,s),yo(this.h,4,a,u),yo(this.h,6,l,h),yo(this.h,8,c,f),yo(this.h,10,d,p),yo(this.h,12,m,y),yo(this.h,14,g,v)},No.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"big"):Oi.split32(this.h,"big")},Oi.inherits(Fo,Mo);var qo=Fo;Fo.blockSize=1024,Fo.outSize=384,Fo.hmacStrength=192,Fo.padLength=128,Fo.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h.slice(0,12),"big"):Oi.split32(this.h.slice(0,12),"big")};var Go={sha1:Yi,sha224:ho,sha256:uo,sha384:qo,sha512:Mo},Ho=Oi.rotl32,zo=Oi.sum32,jo=Oi.sum32_3,Qo=Oi.sum32_4,Ko=Di.BlockHash;function Vo(){if(!(this instanceof Vo))return new Vo;Ko.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}Oi.inherits(Vo,Ko);var Jo=Vo;function Yo(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function Wo(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function Xo(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}Vo.blockSize=512,Vo.outSize=160,Vo.hmacStrength=192,Vo.padLength=64,Vo.prototype._update=function(t,e){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,h=o,c=s,f=0;f<80;f++){var d=zo(Ho(Qo(r,Yo(f,n,i,o),t[Zo[f]+e],Wo(f)),ts[f]),s);r=s,s=o,o=Ho(i,10),i=n,n=d,d=zo(Ho(Qo(a,Yo(79-f,u,l,h),t[$o[f]+e],Xo(f)),es[f]),c),a=c,c=h,h=Ho(l,10),l=u,u=d}d=jo(this.h[1],i,h),this.h[1]=jo(this.h[2],o,c),this.h[2]=jo(this.h[3],s,a),this.h[3]=jo(this.h[4],r,u),this.h[4]=jo(this.h[0],n,l),this.h[0]=d},Vo.prototype._digest=function(t){return"hex"===t?Oi.toHex32(this.h,"little"):Oi.split32(this.h,"little")};var Zo=[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],$o=[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],ts=[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],es=[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],rs={ripemd160:Jo};function ns(t,e,r){if(!(this instanceof ns))return new ns(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(Oi.toArray(e,r))}var is=ns;ns.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),ki(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},ns.prototype.update=function(t,e){return this.inner.update(t,e),this},ns.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)};var os=nr(function(t,e){var r=e;r.utils=Oi,r.common=Di,r.sha=Go,r.ripemd=rs,r.hmac=is,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}),ss=os;function as(t){return"0x"+ss.sha256().update(Er(t)).digest("hex")}new mr("sha2/5.7.0");var us=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};function ls(t,e){return us(this,void 0,void 0,function*(){null==e&&(e={});const r={method:e.method||"GET",headers:e.headers||{},body:e.body||void 0};if(!0!==e.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=e.fetchOptions){const t=e.fetchOptions;t.mode&&(r.mode=t.mode),t.cache&&(r.cache=t.cache),t.credentials&&(r.credentials=t.credentials),t.redirect&&(r.redirect=t.redirect),t.referrer&&(r.referrer=t.referrer)}const n=yield fetch(t,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((t,e)=>{o[e.toLowerCase()]=t}):n.headers.keys().forEach(t=>{o[t.toLowerCase()]=n.headers.get(t)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Er(new Uint8Array(i))}})}var hs=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const cs=new mr("web/5.7.1");function fs(t){return new Promise(e=>{setTimeout(e,t)})}function ds(t,e){if(null==t)return null;if("string"==typeof t)return t;if(br(t)){if(e&&("text"===e.split("/")[0]||"application/json"===e.split(";")[0].trim()))try{return Mn(t)}catch(t){}return kr(t)}return t}function ps(t,e,r){let n=null;if(null!=e){n=Nn(e);const r="string"==typeof t?{url:t}:Yr(t);r.headers?0!==Object.keys(r.headers).filter(t=>"content-type"===t.toLowerCase()).length||(r.headers=Yr(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},t=r}return function(t,e,r){const n="object"==typeof t&&null!=t.throttleLimit?t.throttleLimit:12;cs.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof t?t.throttleCallback:null,o="object"==typeof t&&"number"==typeof t.throttleSlotInterval?t.throttleSlotInterval:100;cs.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof t&&!!t.errorPassThrough,a={};let u=null;const l={method:"GET"};let h=!1,c=12e4;if("string"==typeof t)u=t;else if("object"==typeof t){if(null!=t&&null!=t.url||cs.throwArgumentError("missing URL","connection.url",t),u=t.url,"number"==typeof t.timeout&&t.timeout>0&&(c=t.timeout),t.headers)for(const e in t.headers)a[e.toLowerCase()]={key:e,value:String(t.headers[e])},["if-none-match","if-modified-since"].indexOf(e.toLowerCase())>=0&&(h=!0);l.allowGzip=!!t.allowGzip,null!=t.user&&null!=t.password&&("https:"!==u.substring(0,6)&&!0!==t.allowInsecureAuthentication&&cs.throwError("basic authentication requires a secure https url",mr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:t.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+dn(Nn(t.user+":"+t.password))}),null!=t.skipFetchSetup&&(l.skipFetchSetup=!!t.skipFetchSetup),null!=t.fetchOptions&&(l.fetchOptions=Yr(t.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),d=u?u.match(f):null;if(d)try{const t={statusCode:200,statusMessage:"OK",headers:{"content-type":d[1]||"text/plain"},body:d[2]?fn(d[3]):(p=d[3],Nn(p.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16)))))};let e=t.body;return r&&(e=r(t.body,t)),Promise.resolve(e)}catch(t){cs.throwError("processing response error",mr.errors.SERVER_ERROR,{body:ds(d[1],d[2]),error:t,requestBody:null,requestMethod:"GET",url:u})}var p;e&&(l.method="POST",l.body=e,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(e.length)}));const m={};Object.keys(a).forEach(t=>{const e=a[t];m[e.key]=e.value}),l.headers=m;const y=function(){let t=null;return{promise:new Promise(function(e,r){c&&(t=setTimeout(()=>{null!=t&&(t=null,r(cs.makeError("timeout",mr.errors.TIMEOUT,{requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=t&&(clearTimeout(t),t=null)}}}(),g=function(){return hs(this,void 0,void 0,function*(){for(let t=0;t<n;t++){let e=null;try{if(e=yield ls(u,l),t<n)if(301===e.statusCode||302===e.statusCode){if("GET"===l.method&&(e.headers.location||"").match(/^https:/)){u=e.headers.location;continue}}else if(429===e.statusCode){let r=!0;if(i&&(r=yield i(t,u)),r){let r=0;const n=e.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,t))),yield fs(r);continue}}}catch(t){e=t.response,null==e&&(y.cancel(),cs.throwError("missing response",mr.errors.SERVER_ERROR,{requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,serverError:t,url:u}))}let a=e.body;if(h&&304===e.statusCode?a=null:!s&&(e.statusCode<200||e.statusCode>=300)&&(y.cancel(),cs.throwError("bad response",mr.errors.SERVER_ERROR,{status:e.statusCode,headers:e.headers,body:ds(a,e.headers?e.headers["content-type"]:null),requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const t=yield r(a,e);return y.cancel(),t}catch(r){if(r.throttleRetry&&t<n){let e=!0;if(i&&(e=yield i(t,u)),e){const e=o*parseInt(String(Math.random()*Math.pow(2,t)));yield fs(e);continue}}y.cancel(),cs.throwError("processing response error",mr.errors.SERVER_ERROR,{body:ds(a,e.headers?e.headers["content-type"]:null),error:r,requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return cs.throwError("failed response",mr.errors.SERVER_ERROR,{requestBody:ds(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(t,n,(t,e)=>{let n=null;if(null!=t)try{n=JSON.parse(Mn(t))}catch(e){cs.throwError("invalid JSON",mr.errors.SERVER_ERROR,{body:t,error:e})}return r&&(n=r(n,e)),n})}function ms(t,e){return e||(e={}),null==(e=Yr(e)).floor&&(e.floor=0),null==e.ceiling&&(e.ceiling=1e4),null==e.interval&&(e.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);e.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},e.timeout));const a=e.retryLimit;let u=0;!function i(){return t().then(function(t){if(void 0!==t)s()&&r(t);else if(e.oncePoll)e.oncePoll.once("poll",i);else if(e.onceBlock)e.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let t=e.interval*parseInt(String(Math.random()*Math.pow(2,u)));t<e.floor&&(t=e.floor),t>e.ceiling&&(t=e.ceiling),setTimeout(i,t)}return null},function(t){s()&&n(t)})}()})}for(var ys="qpzry9x8gf2tvdw0s3jn54khce6mua7l",gs={},vs=0;vs<ys.length;vs++){var bs=ys.charAt(vs);if(void 0!==gs[bs])throw new TypeError(bs+" is ambiguous");gs[bs]=vs}function As(t){var e=t>>25;return(33554431&t)<<5^996825010&-(e>>0&1)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}const ws="providers/5.7.2";function Es(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var Ts=Is;function Is(t,e){if(!t)throw new Error(e||"Assertion failed")}Is.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var Ns=Es(function(t,e){var r=e;function n(t){return 1===t.length?"0"+t:t}function i(t){for(var e="",r=0;r<t.length;r++)e+=n(t[r].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!=typeof t){for(var n=0;n<t.length;n++)r[n]=0|t[n];return r}if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16));else for(n=0;n<t.length;n++){var i=t.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(t,e){return"hex"===e?i(t):t}}),Ms=Es(function(t,e){var r=e;r.assert=Ts,r.toArray=Ns.toArray,r.zero2=Ns.zero2,r.toHex=Ns.toHex,r.encode=Ns.encode,r.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<<e+1,o=t.clone(),s=0;s<n.length;s++){var a,u=o.andln(i-1);o.isOdd()?o.isubn(a=u>(i>>1)-1?(i>>1)-u:u):a=0,n[s]=a,o.iushrn(1)}return n},r.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var s,a,u=t.andln(3)+i&3,l=e.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=t.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=e.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),t.iushrn(1),e.iushrn(1)}return r},r.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new or(t,"hex","le")}}),ks=Ms.getNAF,_s=Ms.getJSF,Ss=Ms.assert;function Ps(t,e){this.type=t,this.p=new or(e.p,16),this.red=e.prime?or.red(e.prime):or.mont(this.p),this.zero=new or(0).toRed(this.red),this.one=new or(1).toRed(this.red),this.two=new or(2).toRed(this.red),this.n=e.n&&new or(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.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 Cs=Ps;function xs(t,e){this.curve=t,this.type=e,this.precomputed=null}Ps.prototype.point=function(){throw new Error("Not implemented")},Ps.prototype.validate=function(){throw new Error("Not implemented")},Ps.prototype._fixedNafMul=function(t,e){Ss(t.precomputed);var r=t._getDoubles(),n=ks(e,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),h=this.jpoint(null,null,null),c=i;c>0;c--){for(o=0;o<a.length;o++)(s=a[o])===c?h=h.mixedAdd(r.points[o]):s===-c&&(h=h.mixedAdd(r.points[o].neg()));l=l.add(h)}return l.toP()},Ps.prototype._wnafMul=function(t,e){for(var r=4,n=t._getNAFPoints(r),i=n.points,o=ks(e,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"===t.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"===t.type?s.toP():s},Ps.prototype._wnafMulAdd=function(t,e,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,h=this._wnafT3,c=0;for(o=0;o<n;o++){var f=(a=e[o])._getNAFPoints(t);u[o]=f.wnd,l[o]=f.points}for(o=n-1;o>=1;o-=2){var d=o-1,p=o;if(1===u[d]&&1===u[p]){var m=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(m[1]=e[d].add(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].add(e[p].neg())):(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=_s(r[d],r[p]);for(c=Math.max(g[0].length,c),h[d]=new Array(c),h[p]=new Array(c),s=0;s<c;s++)h[d][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],h[p][s]=0,l[d]=m}else h[d]=ks(r[d],u[d],this._bitLength),h[p]=ks(r[p],u[p],this._bitLength),c=Math.max(h[d].length,c),c=Math.max(h[p].length,c)}var v=this.jpoint(null,null,null),b=this._wnafT4;for(o=c;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)b[s]=0|h[s][o],0!==b[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,v=v.dblp(A),o<0)break;for(s=0;s<n;s++){var E=b[s];0!==E&&(E>0?a=l[s][E-1>>1]:E<0&&(a=l[s][-E-1>>1].neg()),v="affine"===a.type?v.mixedAdd(a):v.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?v:v.toP()},Ps.BasePoint=xs,xs.prototype.eq=function(){throw new Error("Not implemented")},xs.prototype.validate=function(){return this.curve.validate(this)},Ps.prototype.decodePoint=function(t,e){t=Ms.toArray(t,e);var r=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*r)return 6===t[0]?Ss(t[t.length-1]%2==0):7===t[0]&&Ss(t[t.length-1]%2==1),this.point(t.slice(1,1+r),t.slice(1+r,1+2*r));if((2===t[0]||3===t[0])&&t.length-1===r)return this.pointFromX(t.slice(1,1+r),3===t[0]);throw new Error("Unknown point format")},xs.prototype.encodeCompressed=function(t){return this.encode(t,!0)},xs.prototype._encode=function(t){var e=this.curve.p.byteLength(),r=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",e))},xs.prototype.encode=function(t,e){return Ms.encode(this._encode(e),t)},xs.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},xs.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},xs.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)n=n.dbl();r.push(n)}return{step:t,points:r}},xs.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],r=(1<<t)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)e[i]=e[i-1].add(n);return{wnd:t,points:e}},xs.prototype._getBeta=function(){return null},xs.prototype.dblp=function(t){for(var e=this,r=0;r<t;r++)e=e.dbl();return e};var Os=Es(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),Rs=Ms.assert;function Bs(t){Cs.call(this,"short",t),this.a=new or(t.a,16).toRed(this.red),this.b=new or(t.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(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Os(Bs,Cs);var Ds=Bs;function Ls(t,e,r,n){Cs.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new or(e,16),this.y=new or(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 Us(t,e,r,n){Cs.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new or(0)):(this.x=new or(e,16),this.y=new or(r,16),this.z=new or(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}Bs.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new or(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new or(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?r=i[0]:Rs(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(e)))}return{beta:e,lambda:r,basis:t.basis?t.basis.map(function(t){return{a:new or(t.a,16),b:new or(t.b,16)}}):this._getEndoBasis(r)}}},Bs.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:or.mont(t),r=new or(2).toRed(e).redInvm(),n=r.redNeg(),i=new or(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},Bs.prototype._getEndoBasis=function(t){for(var e,r,n,i,o,s,a,u,l,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,f=this.n.clone(),d=new or(1),p=new or(0),m=new or(0),y=new or(1),g=0;0!==c.cmpn(0);){var v=f.div(c);u=f.sub(v.mul(c)),l=m.sub(v.mul(d));var b=y.sub(v.mul(p));if(!n&&u.cmp(h)<0)e=a.neg(),r=d,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,f=c,c=u,m=d,d=l,y=p,p=b}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=e,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}]},Bs.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).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:t.sub(s).sub(a),k2:u.add(l).neg()}},Bs.prototype.pointFromX=function(t,e){(t=new or(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.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(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},Bs.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},Bs.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[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),h=0;h<2*o;h++)n[h]=null,i[h]=null;return l},Os(Ls,Cs.BasePoint),Bs.prototype.point=function(t,e,r){return new Ls(this,t,e,r)},Bs.prototype.pointFromJSON=function(t,e){return Ls.fromJSON(this,t,e)},Ls.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var r=this.curve,n=function(t){return r.point(t.x.redMul(r.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e}},Ls.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]},Ls.fromJSON=function(t,e,r){"string"==typeof e&&(e=JSON.parse(e));var n=t.point(e[0],e[1],r);if(!e[2])return n;function i(e){return t.point(e[0],e[1],r)}var o=e[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},Ls.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)+">"},Ls.prototype.isInfinity=function(){return this.inf},Ls.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Ls.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).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)},Ls.prototype.getX=function(){return this.x.fromRed()},Ls.prototype.getY=function(){return this.y.fromRed()},Ls.prototype.mul=function(t){return t=new or(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},Ls.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},Ls.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},Ls.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},Ls.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.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 e},Ls.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Os(Us,Cs.BasePoint),Bs.prototype.jpoint=function(t,e,r){return new Us(this,t,e,r)},Us.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},Us.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Us.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.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(),h=l.redMul(a),c=n.redMul(l),f=u.redSqr().redIAdd(h).redISub(c).redISub(c),d=u.redMul(c.redISub(f)).redISub(o.redMul(h)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(f,d,p)},Us.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).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),h=r.redMul(u),c=a.redSqr().redIAdd(l).redISub(h).redISub(h),f=a.redMul(h.redISub(c)).redISub(i.redMul(l)),d=this.z.redMul(s);return this.curve.jpoint(c,f,d)},Us.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e<t;e++)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(e=0;e<t;e++){var h=o.redSqr(),c=l.redSqr(),f=c.redSqr(),d=h.redAdd(h).redIAdd(h).redIAdd(n.redMul(u)),p=o.redMul(c),m=d.redSqr().redISub(p.redAdd(p)),y=p.redISub(m),g=d.redMul(y);g=g.redIAdd(g).redISub(f);var v=l.redMul(a);e+1<t&&(u=u.redMul(f)),o=m,a=v,l=g}return this.curve.jpoint(o,l.redMul(i),a)},Us.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Us.prototype._zeroDbl=function(){var t,e,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),t=u,e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.x.redSqr(),c=this.y.redSqr(),f=c.redSqr(),d=this.x.redAdd(c).redSqr().redISub(h).redISub(f);d=d.redIAdd(d);var p=h.redAdd(h).redIAdd(h),m=p.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),t=m.redISub(d).redISub(d),e=p.redMul(d.redISub(t)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(t,e,r)},Us.prototype._threeDbl=function(){var t,e,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);t=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.z.redSqr(),c=this.y.redSqr(),f=this.x.redMul(c),d=this.x.redSub(h).redMul(this.x.redAdd(h));d=d.redAdd(d).redIAdd(d);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);t=d.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(c).redISub(h);var y=c.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),e=d.redMul(p.redISub(t)).redISub(y)}return this.curve.jpoint(t,e,r)},Us.prototype._dbl=function(){var t=this.curve.a,e=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=e.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),u=e.redAdd(e),l=(u=u.redIAdd(u)).redMul(s),h=a.redSqr().redISub(l.redAdd(l)),c=l.redISub(h),f=s.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=a.redMul(c).redISub(f),p=r.redAdd(r).redMul(n);return this.curve.jpoint(h,d,p)},Us.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr(),n=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).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),h=e.redMul(l);h=(h=h.redIAdd(h)).redIAdd(h);var c=this.x.redMul(a).redISub(h);c=(c=c.redIAdd(c)).redIAdd(c);var f=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(c,f,d)},Us.prototype.mul=function(t,e){return t=new or(t,e),this.curve._wnafMul(this,t)},Us.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),r=t.z.redSqr();if(0!==this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),i=r.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)},Us.prototype.eqXToP=function(t){var e=this.z.redSqr(),r=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(r))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(e);;){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}},Us.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)+">"},Us.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Fs=Es(function(t,e){var r=e;r.base=Cs,r.short=Ds,r.mont=null,r.edwards=null}),qs=Es(function(t,e){var r,n=e,i=Ms.assert;function o(t){this.curve="short"===t.type?new Fs.short(t):"edwards"===t.type?new Fs.edwards(t):new Fs.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var r=new o(e);return Object.defineProperty(n,t,{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:ss.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:ss.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:ss.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:ss.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:ss.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:ss.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:ss.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(t){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:ss.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Gs(t){if(!(this instanceof Gs))return new Gs(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=Ns.toArray(t.entropy,t.entropyEnc||"hex"),r=Ns.toArray(t.nonce,t.nonceEnc||"hex"),n=Ns.toArray(t.pers,t.persEnc||"hex");Ts(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}var Hs=Gs;Gs.prototype._init=function(t,e,r){var n=t.concat(e).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},Gs.prototype._hmac=function(){return new ss.hmac(this.hash,this.K)},Gs.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},Gs.prototype.reseed=function(t,e,r,n){"string"!=typeof e&&(n=r,r=e,e=null),t=Ns.toArray(t,e),r=Ns.toArray(r,n),Ts(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},Gs.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=Ns.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<t;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,t);return this._update(r),this._reseed++,Ns.encode(o,e)};var zs=Ms.assert;function js(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}var Qs=js;js.fromPublic=function(t,e,r){return e instanceof js?e:new js(t,{pub:e,pubEnc:r})},js.fromPrivate=function(t,e,r){return e instanceof js?e:new js(t,{priv:e,privEnc:r})},js.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.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"}},js.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},js.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},js.prototype._importPrivate=function(t,e){this.priv=new or(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},js.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?zs(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||zs(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},js.prototype.derive=function(t){return t.validate()||zs(t.validate(),"public point not validated"),t.mul(this.priv).getX()},js.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},js.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},js.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ks=Ms.assert;function Vs(t,e){if(t instanceof Vs)return t;this._importDER(t,e)||(Ks(t.r&&t.s,"Signature without r or s"),this.r=new or(t.r,16),this.s=new or(t.s,16),this.recoveryParam=void 0===t.recoveryParam?null:t.recoveryParam)}var Js=Vs;function Ys(){this.place=0}function Ws(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,s=e.place;o<n;o++,s++)i<<=8,i|=t[s],i>>>=0;return!(i<=127)&&(e.place=s,i)}function Xs(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e<r;)e++;return 0===e?t:t.slice(e)}function Zs(t,e){if(e<128)t.push(e);else{var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}Vs.prototype._importDER=function(t,e){t=Ms.toArray(t,e);var r=new Ys;if(48!==t[r.place++])return!1;var n=Ws(t,r);if(!1===n)return!1;if(n+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var i=Ws(t,r);if(!1===i)return!1;var o=t.slice(r.place,i+r.place);if(r.place+=i,2!==t[r.place++])return!1;var s=Ws(t,r);if(!1===s)return!1;if(t.length!==s+r.place)return!1;var a=t.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 or(o),this.s=new or(a),this.recoveryParam=null,!0},Vs.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=Xs(e),r=Xs(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Zs(n,e.length),(n=n.concat(e)).push(2),Zs(n,r.length);var i=n.concat(r),o=[48];return Zs(o,i.length),o=o.concat(i),Ms.encode(o,t)};var $s=function(){throw new Error("unsupported")},ta=Ms.assert;function ea(t){if(!(this instanceof ea))return new ea(t);"string"==typeof t&&(ta(Object.prototype.hasOwnProperty.call(qs,t),"Unknown curve "+t),t=qs[t]),t instanceof qs.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var ra=ea;ea.prototype.keyPair=function(t){return new Qs(this,t)},ea.prototype.keyFromPrivate=function(t,e){return Qs.fromPrivate(this,t,e)},ea.prototype.keyFromPublic=function(t,e){return Qs.fromPublic(this,t,e)},ea.prototype.genKeyPair=function(t){t||(t={});for(var e=new Hs({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||$s(),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new or(2));;){var i=new or(e.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},ea.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},ea.prototype.sign=function(t,e,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new or(t,16));for(var i=this.n.byteLength(),o=e.getPrivate().toArray("be",i),s=t.toArray("be",i),a=new Hs({hash:this.hash,entropy:o,nonce:s,pers:n.pers,persEnc:n.persEnc||"utf8"}),u=this.n.sub(new or(1)),l=0;;l++){var h=n.k?n.k(l):new or(a.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(u)>=0)){var c=this.g.mul(h);if(!c.isInfinity()){var f=c.getX(),d=f.umod(this.n);if(0!==d.cmpn(0)){var p=h.invm(this.n).mul(d.mul(e.getPrivate()).iadd(t));if(0!==(p=p.umod(this.n)).cmpn(0)){var m=(c.getY().isOdd()?1:0)|(0!==f.cmp(d)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),m^=1),new Js({r:d,s:p,recoveryParam:m})}}}}}},ea.prototype.verify=function(t,e,r,n){t=this._truncateToN(new or(t,16)),r=this.keyFromPublic(r,n);var i=(e=new Js(e,"hex")).r,o=e.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s,a=o.invm(this.n),u=a.mul(t).umod(this.n),l=a.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(u,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},ea.prototype.recoverPubKey=function(t,e,r,n){ta((3&r)===r,"The recovery param is more than two bits"),e=new Js(e,n);var i=this.n,o=new or(t),s=e.r,a=e.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 h=e.r.invm(i),c=i.sub(o).mul(h).umod(i),f=a.mul(h).umod(i);return this.g.mulAdd(c,s,f)},ea.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new Js(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var na=Es(function(t,e){var r=e;r.version="6.5.4",r.utils=Ms,r.rand=function(){throw new Error("unsupported")},r.curve=Fs,r.curves=qs,r.ec=ra,r.eddsa=null}).ec;const ia=new mr("signing-key/5.7.0");let oa=null;function sa(){return oa||(oa=new na("secp256k1")),oa}class aa{constructor(t){Kr(this,"curve","secp256k1"),Kr(this,"privateKey",kr(t)),32!==_r(this.privateKey)&&ia.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const e=sa().keyFromPrivate(Er(this.privateKey));Kr(this,"publicKey","0x"+e.getPublic(!1,"hex")),Kr(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),Kr(this,"_isSigningKey",!0)}_addPoint(t){const e=sa().keyFromPublic(Er(this.publicKey)),r=sa().keyFromPublic(Er(t));return"0x"+e.pub.add(r.pub).encodeCompressed("hex")}signDigest(t){const e=sa().keyFromPrivate(Er(this.privateKey)),r=Er(t);32!==r.length&&ia.throwArgumentError("bad digest length","digest",t);const n=e.sign(r,{canonical:!0});return Or({recoveryParam:n.recoveryParam,r:xr("0x"+n.r.toString(16),32),s:xr("0x"+n.s.toString(16),32)})}computeSharedSecret(t){const e=sa().keyFromPrivate(Er(this.privateKey)),r=sa().keyFromPublic(Er(ua(t)));return xr("0x"+e.derive(r.getPublic()).toString(16),32)}static isSigningKey(t){return!(!t||!t._isSigningKey)}}function ua(t,e){const r=Er(t);if(32===r.length){const t=new aa(r);return e?"0x"+sa().keyFromPrivate(r).getPublic(!0,"hex"):t.publicKey}return 33===r.length?e?kr(r):"0x"+sa().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?e?"0x"+sa().keyFromPublic(r).getPublic(!0,"hex"):kr(r):ia.throwArgumentError("invalid public or private key","key","[REDACTED]")}const la=new mr("transactions/5.7.0");var ha;function ca(t){return"0x"===t?null:ci(t)}function fa(t){return"0x"===t?yn:Fr.from(t)}function da(t,e){return function(t){return ci(Sr(vn(Sr(ua(t),1)),12))}(function(t,e){const r=Or(e),n={r:Er(r.r),s:Er(r.s)};return"0x"+sa().recoverPubKey(Er(t),n,r.recoveryParam).encode("hex",!1)}(Er(t),e))}function pa(t,e){const r=Ir(Fr.from(t).toHexString());return r.length>32&&la.throwArgumentError("invalid length for "+e,"transaction:"+e,t),r}function ma(t,e){return{address:ci(t),storageKeys:(e||[]).map((e,r)=>(32!==_r(e)&&la.throwArgumentError("invalid access list storageKey",`accessList[${t}:${r}]`,e),e.toLowerCase()))}}function ya(t){if(Array.isArray(t))return t.map((t,e)=>Array.isArray(t)?(t.length>2&&la.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${e}]`,t),ma(t[0],t[1])):ma(t.address,t.storageKeys));const e=Object.keys(t).map(e=>{const r=t[e].reduce((t,e)=>(t[e]=!0,t),{});return ma(e,Object.keys(r).sort())});return e.sort((t,e)=>t.address.localeCompare(e.address)),e}function ga(t){return ya(t).map(t=>[t.address,t.storageKeys])}function va(t,e){if(null!=t.gasPrice){const e=Fr.from(t.gasPrice),r=Fr.from(t.maxFeePerGas||0);e.eq(r)||la.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:r})}const r=[pa(t.chainId||0,"chainId"),pa(t.nonce||0,"nonce"),pa(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),pa(t.maxFeePerGas||0,"maxFeePerGas"),pa(t.gasLimit||0,"gasLimit"),null!=t.to?ci(t.to):"0x",pa(t.value||0,"value"),t.data||"0x",ga(t.accessList||[])];if(e){const t=Or(e);r.push(pa(t.recoveryParam,"recoveryParam")),r.push(Ir(t.r)),r.push(Ir(t.s))}return Pr(["0x02",ni(r)])}function ba(t,e){const r=[pa(t.chainId||0,"chainId"),pa(t.nonce||0,"nonce"),pa(t.gasPrice||0,"gasPrice"),pa(t.gasLimit||0,"gasLimit"),null!=t.to?ci(t.to):"0x",pa(t.value||0,"value"),t.data||"0x",ga(t.accessList||[])];if(e){const t=Or(e);r.push(pa(t.recoveryParam,"recoveryParam")),r.push(Ir(t.r)),r.push(Ir(t.s))}return Pr(["0x01",ni(r)])}function Aa(t,e,r){try{const r=fa(e[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");t.v=r}catch(t){la.throwArgumentError("invalid v for transaction type: 1","v",e[0])}t.r=xr(e[1],32),t.s=xr(e[2],32);try{const e=vn(r(t));t.from=da(e,{r:t.r,s:t.s,recoveryParam:t.v})}catch(t){}}!function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"}(ha||(ha={}));const wa=new mr(ws);class Ea{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const t={},e=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 t.transaction={hash:o,type:u,accessList:Ea.allowNull(this.accessList.bind(this),null),blockHash:Ea.allowNull(o,null),blockNumber:Ea.allowNull(a,null),transactionIndex:Ea.allowNull(a,null),confirmations:Ea.allowNull(a,null),from:e,gasPrice:Ea.allowNull(r),maxPriorityFeePerGas:Ea.allowNull(r),maxFeePerGas:Ea.allowNull(r),gasLimit:r,to:Ea.allowNull(e,null),value:r,nonce:a,data:i,r:Ea.allowNull(this.uint256),s:Ea.allowNull(this.uint256),v:Ea.allowNull(a),creates:Ea.allowNull(e,null),raw:Ea.allowNull(i)},t.transactionRequest={from:Ea.allowNull(e),nonce:Ea.allowNull(a),gasLimit:Ea.allowNull(r),gasPrice:Ea.allowNull(r),maxPriorityFeePerGas:Ea.allowNull(r),maxFeePerGas:Ea.allowNull(r),to:Ea.allowNull(e),value:Ea.allowNull(r),data:Ea.allowNull(t=>this.data(t,!0)),type:Ea.allowNull(a),accessList:Ea.allowNull(this.accessList.bind(this),null)},t.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:e,topics:Ea.arrayOf(o),data:i,logIndex:a,blockHash:o},t.receipt={to:Ea.allowNull(this.address,null),from:Ea.allowNull(this.address,null),contractAddress:Ea.allowNull(e,null),transactionIndex:a,root:Ea.allowNull(s),gasUsed:r,logsBloom:Ea.allowNull(i),blockHash:o,transactionHash:o,logs:Ea.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:Ea.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:Ea.allowNull(r),status:Ea.allowNull(a),type:u},t.block={hash:Ea.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:Ea.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:Ea.allowNull(e),extraData:i,transactions:Ea.allowNull(Ea.arrayOf(o)),baseFeePerGas:Ea.allowNull(r)},t.blockWithTransactions=Yr(t.block),t.blockWithTransactions.transactions=Ea.allowNull(Ea.arrayOf(this.transactionResponse.bind(this))),t.filter={fromBlock:Ea.allowNull(n,void 0),toBlock:Ea.allowNull(n,void 0),blockHash:Ea.allowNull(o,void 0),address:Ea.allowNull(e,void 0),topics:Ea.allowNull(this.topics.bind(this),void 0)},t.filterLog={blockNumber:Ea.allowNull(a),blockHash:Ea.allowNull(o),transactionIndex:a,removed:Ea.allowNull(this.boolean.bind(this)),address:e,data:Ea.allowFalsish(i,"0x"),topics:Ea.arrayOf(o),transactionHash:o,logIndex:a},t}accessList(t){return ya(t||[])}number(t){return"0x"===t?0:Fr.from(t).toNumber()}type(t){return"0x"===t||null==t?0:Fr.from(t).toNumber()}bigNumber(t){return Fr.from(t)}boolean(t){if("boolean"==typeof t)return t;if("string"==typeof t){if("true"===(t=t.toLowerCase()))return!0;if("false"===t)return!1}throw new Error("invalid boolean - "+t)}hex(t,e){return"string"==typeof t&&(e||"0x"===t.substring(0,2)||(t="0x"+t),Nr(t))?t.toLowerCase():wa.throwArgumentError("invalid hash","value",t)}data(t,e){const r=this.hex(t,e);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+t);return r}address(t){return ci(t)}callAddress(t){if(!Nr(t,32))return null;const e=ci(Sr(t,12));return"0x0000000000000000000000000000000000000000"===e?null:e}contractAddress(t){return function(t){let e=null;try{e=ci(t.from)}catch(e){ai.throwArgumentError("missing from address","transaction",t)}return ci(Sr(vn(ni([e,Ir(Er(Fr.from(t.nonce).toHexString()))])),12))}(t)}blockTag(t){if(null==t)return"latest";if("earliest"===t)return"0x0";switch(t){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return t}if("number"==typeof t||Nr(t))return Cr(t);throw new Error("invalid blockTag")}hash(t,e){const r=this.hex(t,e);return 32!==_r(r)?wa.throwArgumentError("invalid hash","value",t):r}difficulty(t){if(null==t)return null;const e=Fr.from(t);try{return e.toNumber()}catch(t){}return null}uint256(t){if(!Nr(t))throw new Error("invalid uint256");return xr(t,32)}_block(t,e){null!=t.author&&null==t.miner&&(t.miner=t.author);const r=null!=t._difficulty?t._difficulty:t.difficulty,n=Ea.check(e,t);return n._difficulty=null==r?null:Fr.from(r),n}block(t){return this._block(t,this.formats.block)}blockWithTransactions(t){return this._block(t,this.formats.blockWithTransactions)}transactionRequest(t){return Ea.check(this.formats.transactionRequest,t)}transactionResponse(t){null!=t.gas&&null==t.gasLimit&&(t.gasLimit=t.gas),t.to&&Fr.from(t.to).isZero()&&(t.to="0x0000000000000000000000000000000000000000"),null!=t.input&&null==t.data&&(t.data=t.input),null==t.to&&null==t.creates&&(t.creates=this.contractAddress(t)),1!==t.type&&2!==t.type||null!=t.accessList||(t.accessList=[]);const e=Ea.check(this.formats.transaction,t);if(null!=t.chainId){let r=t.chainId;Nr(r)&&(r=Fr.from(r).toNumber()),e.chainId=r}else{let r=t.networkId;null==r&&null==e.v&&(r=t.chainId),Nr(r)&&(r=Fr.from(r).toNumber()),"number"!=typeof r&&null!=e.v&&(r=(e.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),e.chainId=r}return e.blockHash&&"x"===e.blockHash.replace(/0/g,"")&&(e.blockHash=null),e}transaction(t){return function(t){const e=Er(t);if(e[0]>127)return function(t){const e=si(t);9!==e.length&&6!==e.length&&la.throwArgumentError("invalid raw transaction","rawTransaction",t);const r={nonce:fa(e[0]).toNumber(),gasPrice:fa(e[1]),gasLimit:fa(e[2]),to:ca(e[3]),value:fa(e[4]),data:e[5],chainId:0};if(6===e.length)return r;try{r.v=Fr.from(e[6]).toNumber()}catch(t){return r}if(r.r=xr(e[7],32),r.s=xr(e[8],32),Fr.from(r.r).isZero()&&Fr.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=e.slice(0,6);0!==r.chainId&&(i.push(kr(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=vn(ni(i));try{r.from=da(o,{r:kr(r.r),s:kr(r.s),recoveryParam:n})}catch(t){}r.hash=vn(t)}return r.type=null,r}(e);switch(e[0]){case 1:return function(t){const e=si(t.slice(1));8!==e.length&&11!==e.length&&la.throwArgumentError("invalid component count for transaction type: 1","payload",kr(t));const r={type:1,chainId:fa(e[0]).toNumber(),nonce:fa(e[1]).toNumber(),gasPrice:fa(e[2]),gasLimit:fa(e[3]),to:ca(e[4]),value:fa(e[5]),data:e[6],accessList:ya(e[7])};return 8===e.length||(r.hash=vn(t),Aa(r,e.slice(8),ba)),r}(e);case 2:return function(t){const e=si(t.slice(1));9!==e.length&&12!==e.length&&la.throwArgumentError("invalid component count for transaction type: 2","payload",kr(t));const r=fa(e[2]),n=fa(e[3]),i={type:2,chainId:fa(e[0]).toNumber(),nonce:fa(e[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:fa(e[4]),to:ca(e[5]),value:fa(e[6]),data:e[7],accessList:ya(e[8])};return 9===e.length||(i.hash=vn(t),Aa(i,e.slice(9),va)),i}(e)}return la.throwError(`unsupported transaction type: ${e[0]}`,mr.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:e[0]})}(t)}receiptLog(t){return Ea.check(this.formats.receiptLog,t)}receipt(t){const e=Ea.check(this.formats.receipt,t);if(null!=e.root)if(e.root.length<=4){const t=Fr.from(e.root).toNumber();0===t||1===t?(null!=e.status&&e.status!==t&&wa.throwArgumentError("alt-root-status/status mismatch","value",{root:e.root,status:e.status}),e.status=t,delete e.root):wa.throwArgumentError("invalid alt-root-status","value.root",e.root)}else 66!==e.root.length&&wa.throwArgumentError("invalid root hash","value.root",e.root);return null!=e.status&&(e.byzantium=!0),e}topics(t){return Array.isArray(t)?t.map(t=>this.topics(t)):null!=t?this.hash(t,!0):null}filter(t){return Ea.check(this.formats.filter,t)}filterLog(t){return Ea.check(this.formats.filterLog,t)}static check(t,e){const r={};for(const n in t)try{const i=t[n](e[n]);void 0!==i&&(r[n]=i)}catch(t){throw t.checkKey=n,t.checkValue=e[n],t}return r}static allowNull(t,e){return function(r){return null==r?e:t(r)}}static allowFalsish(t,e){return function(r){return r?t(r):e}}static arrayOf(t){return function(e){if(!Array.isArray(e))throw new Error("not an array");const r=[];return e.forEach(function(e){r.push(t(e))}),r}}}var Ta=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Ia=new mr(ws);function Na(t){return null==t?"null":(32!==_r(t)&&Ia.throwArgumentError("invalid topic","topic",t),t.toLowerCase())}function Ma(t){for(t=t.slice();t.length>0&&null==t[t.length-1];)t.pop();return t.map(t=>{if(Array.isArray(t)){const e={};t.forEach(t=>{e[Na(t)]=!0});const r=Object.keys(e);return r.sort(),r.join("|")}return Na(t)}).join("&")}function ka(t){if("string"==typeof t){if(32===_r(t=t.toLowerCase()))return"tx:"+t;if(-1===t.indexOf(":"))return t}else{if(Array.isArray(t))return"filter:*:"+Ma(t);if(rn.isForkEvent(t))throw Ia.warn("not implemented"),new Error("not implemented");if(t&&"object"==typeof t)return"filter:"+(t.address||"*")+":"+Ma(t.topics||[])}throw new Error("invalid event - "+t)}function _a(){return(new Date).getTime()}function Sa(t){return new Promise(e=>{setTimeout(e,t)})}const Pa=["block","network","pending","poll"];class Ca{constructor(t,e,r){Kr(this,"tag",t),Kr(this,"listener",e),Kr(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 t=this.tag.split(":");return"tx"!==t[0]?null:t[1]}get filter(){const t=this.tag.split(":");if("filter"!==t[0])return null;const e=t[1],r=""===(n=t[2])?[]:n.split(/&/g).map(t=>{if(""===t)return[];const e=t.split("|").map(t=>"null"===t?null:t);return 1===e.length?e[0]:e});var n;const i={};return r.length>0&&(i.topics=r),e&&"*"!==e&&(i.address=e),i}pollable(){return this.tag.indexOf(":")>=0||Pa.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 Oa(t){return xr(Fr.from(t).toHexString(),32)}function Ra(t){return mn.encode(Tr([t,Sr(as(as(t)),0,4)]))}const Ba=new RegExp("^(ipfs)://(.*)$","i"),Da=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Ba,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function La(t,e){try{return Mn(Ua(t,e))}catch(t){}return null}function Ua(t,e){if("0x"===t)return null;const r=Fr.from(Sr(t,e,e+32)).toNumber(),n=Fr.from(Sr(t,r,r+32)).toNumber();return Sr(t,r+32,r+32+n)}function Fa(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):Ia.throwArgumentError("unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}function qa(t){const e=Er(t);if(e.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(e,32-e.length),r}function Ga(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}function Ha(t){const e=[];let r=0;for(let n=0;n<t.length;n++)e.push(null),r+=32;for(let n=0;n<t.length;n++){const i=Er(t[n]);e[n]=qa(r),e.push(qa(i.length)),e.push(Ga(i)),r+=32+32*Math.ceil(i.length/32)}return Pr(e)}class za{constructor(t,e,r,n){Kr(this,"provider",t),Kr(this,"name",r),Kr(this,"address",t.formatter.address(e)),Kr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(t=>Fr.from(t).eq(1)).catch(t=>{if(t.code===mr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,t})),this._supportsEip2544}_fetch(t,e){return Ta(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Pr([t,Zn(this.name),e||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Pr(["0x9061b923",Ha([(i=this.name,kr(Tr(Xn(i).map(t=>{if(t.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e})))+"00"),r.data])]));try{let t=yield this.provider.call(r);return Er(t).length%32==4&&Ia.throwError("resolver threw error",mr.errors.CALL_EXCEPTION,{transaction:r,data:t}),n&&(t=Ua(t,0)),t}catch(t){if(t.code===mr.errors.CALL_EXCEPTION)return null;throw t}})}_fetchBytes(t,e){return Ta(this,void 0,void 0,function*(){const r=yield this._fetch(t,e);return null!=r?Ua(r,0):null})}_getAddress(t,e){const r=xa[String(t)];if(null==r&&Ia.throwError(`unsupported coin type: ${t}`,mr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`}),"eth"===r.ilk)return this.provider.formatter.address(e);const n=Er(e);if(null!=r.p2pkh){const t=e.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return Ra(Tr([[r.p2pkh],"0x"+t[2]]))}}if(null!=r.p2sh){const t=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return Ra(Tr([[r.p2sh],"0x"+t[2]]))}}if(null!=r.prefix){const t=n[1];let e=n[0];if(0===e?20!==t&&32!==t&&(e=-1):e=-1,e>=0&&n.length===2+t&&t>=1&&t<=75){const t=function(t){var e=function(t,e,r,n){for(var i=0,o=0,s=[],a=0;a<t.length;++a)for(i=i<<8|t[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(t);if(Array.isArray(e))return e;throw new Error(e)}(n.slice(2));return t.unshift(e),function(t,e,r){if(t.length+7+e.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(t){for(var e=1,r=0;r<t.length;++r){var n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=As(e)^n>>5}for(e=As(e),r=0;r<t.length;++r){var i=t.charCodeAt(r);e=As(e)^31&i}return e}(t=t.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=t+"1",o=0;o<e.length;++o){var s=e[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=As(n)^s,i+=ys.charAt(s)}for(o=0;o<6;++o)n=As(n);for(n^=1,o=0;o<6;++o)i+=ys.charAt(n>>5*(5-o)&31);return i}(r.prefix,t)}}return null}getAddress(t){return Ta(this,void 0,void 0,function*(){if(null==t&&(t=60),60===t)try{const t=yield this._fetch("0x3b3b57de");return"0x"===t||"0x0000000000000000000000000000000000000000000000000000000000000000"===t?null:this.provider.formatter.callAddress(t)}catch(t){if(t.code===mr.errors.CALL_EXCEPTION)return null;throw t}const e=yield this._fetchBytes("0xf1cb7e06",Oa(t));if(null==e||"0x"===e)return null;const r=this._getAddress(t,e);return null==r&&Ia.throwError("invalid or unsupported coin data",mr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`,coinType:t,data:e}),r})}getAvatar(){return Ta(this,void 0,void 0,function*(){const t=[{type:"name",content:this.name}];try{const e=yield this.getText("avatar");if(null==e)return null;for(let r=0;r<Da.length;r++){const n=e.match(Da[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return t.push({type:"url",content:e}),{linkage:t,url:e};case"data":return t.push({type:"data",content:e}),{linkage:t,url:e};case"ipfs":return t.push({type:"ipfs",content:e}),{linkage:t,url:Fa(e)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";t.push({type:i,content:e});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=xr(Fr.from(s[1]).toHexString(),32);if("erc721"===i){const e=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Pr(["0x6352211e",u])}));if(o!==e)return null;t.push({type:"owner",content:e})}else if("erc1155"===i){const e=Fr.from(yield this.provider.call({to:a,data:Pr(["0x00fdd58e",xr(o,32),u])}));if(e.isZero())return null;t.push({type:"balance",content:e.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Pr([r,u])};let h=La(yield this.provider.call(l),0);if(null==h)return null;t.push({type:"metadata-url-base",content:h}),"erc1155"===i&&(h=h.replace("{id}",u.substring(2)),t.push({type:"metadata-url-expanded",content:h})),h.match(/^ipfs:/i)&&(h=Fa(h)),t.push({type:"metadata-url",content:h});const c=yield ps(h);if(!c)return null;t.push({type:"metadata",content:JSON.stringify(c)});let f=c.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(Ba))return null;t.push({type:"url-ipfs",content:f}),f=Fa(f)}return t.push({type:"url",content:f}),{linkage:t,url:f}}}}}catch(t){}return null})}getContentHash(){return Ta(this,void 0,void 0,function*(){const t=yield this._fetchBytes("0xbc1c58d1");if(null==t||"0x"===t)return null;const e=t.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t=parseInt(e[3],16);if(e[4].length===2*t)return"ipfs://"+mn.encode("0x"+e[1])}const r=t.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const t=parseInt(r[3],16);if(r[4].length===2*t)return"ipns://"+mn.encode("0x"+r[1])}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=t.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const t={"=":"","+":"-","/":"_"};return"sia://"+dn("0x"+i[1]).replace(/[=+\/]/g,e=>t[e])}return Ia.throwError("invalid or unsupported content hash data",mr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:t})})}getText(t){return Ta(this,void 0,void 0,function*(){let e=Nn(t);e=Tr([Oa(64),Oa(e.length),e]),e.length%32!=0&&(e=Tr([e,xr("0x",32-t.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",kr(e));return null==r||"0x"===r?null:Mn(r)})}}let ja=null,Qa=1;class Ka extends nn{constructor(t){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Kr(this,"anyNetwork","any"===t),this.anyNetwork&&(t=this.detectNetwork()),t instanceof Promise)this._networkPromise=t,t.catch(t=>{}),this._ready().catch(t=>{});else{const e=Vr(new.target,"getNetwork")(t);e?(Kr(this,"_network",e),this.emit("network",e,null)):Ia.throwArgumentError("invalid network","network",t)}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 t=null;if(this._networkPromise)try{t=yield this._networkPromise}catch(t){}null==t&&(t=yield this.detectNetwork()),t||Ia.throwError("no network detected",mr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=t:Kr(this,"_network",t),this.emit("network",t,null))}return this._network})}get ready(){return ms(()=>this._ready().then(t=>t,t=>{if(t.code!==mr.errors.NETWORK_ERROR||"noNetwork"!==t.event)throw t}))}static getFormatter(){return null==ja&&(ja=new Ea),ja}static getNetwork(t){return function(t){if(null==t)return null;if("number"==typeof t){for(const e in cn){const r=cn[e];if(r.chainId===t)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:t,name:"unknown"}}if("string"==typeof t){const e=cn[t];return null==e?null:{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress,_defaultProvider:e._defaultProvider||null}}const e=cn[t.name];if(!e)return"number"!=typeof t.chainId&&on.throwArgumentError("invalid network chainId","network",t),t;0!==t.chainId&&t.chainId!==e.chainId&&on.throwArgumentError("network chainId mismatch","network",t);let r=t._defaultProvider||null;var n;return null==r&&e._defaultProvider&&(r=(n=e._defaultProvider)&&"function"==typeof n.renetwork?e._defaultProvider.renetwork(t):e._defaultProvider),{name:t.name,chainId:e.chainId,ensAddress:t.ensAddress||e.ensAddress||null,_defaultProvider:r}}(null==t?"homestead":t)}ccipReadFetch(t,e,r){return Ta(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=t.to.toLowerCase(),i=e.toLowerCase(),o=[];for(let t=0;t<r.length;t++){const e=r[t],s=e.replace("{sender}",n).replace("{data}",i),a=e.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield ps({url:s,errorPassThrough:!0},a,(t,e)=>(t.status=e.statusCode,t));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return Ia.throwError(`response not found during CCIP fetch: ${l}`,mr.errors.SERVER_ERROR,{url:e,errorMessage:l});o.push(l)}return Ia.throwError(`error encountered during CCIP fetch: ${o.map(t=>JSON.stringify(t)).join(", ")}`,mr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(t){return Ta(this,void 0,void 0,function*(){if(yield this._ready(),t>0)for(;this._internalBlockNumber;){const e=this._internalBlockNumber;try{const r=yield e;if(_a()-r.respTime<=t)return r.blockNumber;break}catch(t){if(this._internalBlockNumber===e)break}}const e=_a(),r=Jr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(t=>null,t=>t)}).then(({blockNumber:t,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=_a();return(t=Fr.from(t).toNumber())<this._maxInternalBlockNumber&&(t=this._maxInternalBlockNumber),this._maxInternalBlockNumber=t,this._setFastBlockNumber(t),{blockNumber:t,reqTime:e,respTime:i}});return this._internalBlockNumber=r,r.catch(t=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return Ta(this,void 0,void 0,function*(){const t=Qa++,e=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(t){return void this.emit("error",t)}if(this._setFastBlockNumber(r),this.emit("poll",t,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)Ia.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",Ia.makeError("network block skew detected",mr.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let t=this._emitted.block+1;t<=r;t++)this.emit("block",t);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(t=>{if("block"===t)return;const e=this._emitted[t];"pending"!==e&&r-e>12&&delete this._emitted[t]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(t=>{switch(t.type){case"tx":{const r=t.hash;let n=this.getTransactionReceipt(r).then(t=>t&&null!=t.blockNumber?(this._emitted["t:"+r]=t.blockNumber,this.emit(r,t),null):null).catch(t=>{this.emit("error",t)});e.push(n);break}case"filter":if(!t._inflight){t._inflight=!0,-2===t._lastBlockNumber&&(t._lastBlockNumber=r-1);const n=t.filter;n.fromBlock=t._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(e=>{t._inflight=!1,0!==e.length&&e.forEach(e=>{e.blockNumber>t._lastBlockNumber&&(t._lastBlockNumber=e.blockNumber),this._emitted["b:"+e.blockHash]=e.blockNumber,this._emitted["t:"+e.transactionHash]=e.blockNumber,this.emit(n,e)})}).catch(e=>{this.emit("error",e),t._inflight=!1});e.push(o)}}}),this._lastBlockNumber=r,Promise.all(e).then(()=>{this.emit("didPoll",t)}).catch(t=>{this.emit("error",t)})}else this.emit("didPoll",t)})}resetEventsBlock(t){this._lastBlockNumber=t-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Ta(this,void 0,void 0,function*(){return Ia.throwError("provider does not support network detection",mr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Ta(this,void 0,void 0,function*(){const t=yield this._ready(),e=yield this.detectNetwork();if(t.chainId!==e.chainId){if(this.anyNetwork)return this._network=e,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",e,t),yield Sa(0),this._network;const r=Ia.makeError("underlying network changed",mr.errors.NETWORK_ERROR,{event:"changed",network:t,detectedNetwork:e});throw this.emit("error",r),r}return t})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(t=>{this._setFastBlockNumber(t)},t=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(t){t&&!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))):!t&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(t){if("number"!=typeof t||t<=0||parseInt(String(t))!=t)throw new Error("invalid polling interval");this._pollingInterval=t,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const t=_a();return t-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=t,this._fastBlockNumberPromise=this.getBlockNumber().then(t=>((null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(t){null!=this._fastBlockNumber&&t<this._fastBlockNumber||(this._fastQueryDate=_a(),(null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t,this._fastBlockNumberPromise=Promise.resolve(t)))}waitForTransaction(t,e,r){return Ta(this,void 0,void 0,function*(){return this._waitForTransaction(t,null==e?1:e,r||0,null)})}_waitForTransaction(t,e,r,n){return Ta(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(t);return(i?i.confirmations:0)>=e?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(t=>{t()}),!1)},l=t=>{t.confirmations<e||u()||i(t)};if(this.on(t,l),s.push(()=>{this.removeListener(t,l)}),n){let r=n.startBlock,i=null;const l=s=>Ta(this,void 0,void 0,function*(){a||(yield Sa(1e3),this.getTransactionCount(n.from).then(h=>Ta(this,void 0,void 0,function*(){if(!a){if(h<=n.nonce)r=s;else{{const e=yield this.getTransaction(t);if(e&&null!=e.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===t)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,e);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(Ia.makeError("transaction was replaced",mr.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:t,receipt:r}))}}i++}}a||this.once("block",l)}}),t=>{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 t=setTimeout(()=>{u()||o(Ia.makeError("timeout exceeded",mr.errors.TIMEOUT,{timeout:r}))},r);t.unref&&t.unref(),s.push(()=>{clearTimeout(t)})}})})}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 t=yield this.perform("getGasPrice",{});try{return Fr.from(t)}catch(e){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getGasPrice",result:t,error:e})}})}getBalance(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getBalance",r);try{return Fr.from(n)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:t})}})}getTransactionCount(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getTransactionCount",r);try{return Fr.from(n).toNumber()}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:t})}})}getCode(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getCode",r);try{return kr(n)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:t})}})}getStorageAt(t,e,r){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Jr({address:this._getAddress(t),blockTag:this._getBlockTag(r),position:Promise.resolve(e).then(t=>Cr(t))}),i=yield this.perform("getStorageAt",n);try{return kr(i)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:t})}})}_wrapTransaction(t,e,r){if(null!=e&&32!==_r(e))throw new Error("invalid response - sendTransaction");const n=t;return null!=e&&t.hash!==e&&Ia.throwError("Transaction hash mismatch from Provider.sendTransaction.",mr.errors.UNKNOWN_ERROR,{expectedHash:t.hash,returnedHash:e}),n.wait=(e,n)=>Ta(this,void 0,void 0,function*(){let i;null==e&&(e=1),null==n&&(n=0),0!==e&&null!=r&&(i={data:t.data,from:t.from,nonce:t.nonce,to:t.to,value:t.value,startBlock:r});const o=yield this._waitForTransaction(t.hash,e,n,i);return null==o&&0===e?null:(this._emitted["t:"+t.hash]=o.blockNumber,0===o.status&&Ia.throwError("transaction failed",mr.errors.CALL_EXCEPTION,{transactionHash:t.hash,transaction:t,receipt:o}),o)}),n}sendTransaction(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Promise.resolve(t).then(t=>kr(t)),r=this.formatter.transaction(t);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const t=yield this.perform("sendTransaction",{signedTransaction:e});return this._wrapTransaction(r,t,n)}catch(t){throw t.transaction=r,t.transactionHash=r.hash,t}})}_getTransactionRequest(t){return Ta(this,void 0,void 0,function*(){const e=yield t,r={};return["from","to"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?this._getAddress(t):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?Fr.from(t):null))}),["type"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>null!=t?t:null))}),e.accessList&&(r.accessList=this.formatter.accessList(e.accessList)),["data"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?kr(t):null))}),this.formatter.transactionRequest(yield Jr(r))})}_getFilter(t){return Ta(this,void 0,void 0,function*(){t=yield t;const e={};return null!=t.address&&(e.address=this._getAddress(t.address)),["blockHash","topics"].forEach(r=>{null!=t[r]&&(e[r]=t[r])}),["fromBlock","toBlock"].forEach(r=>{null!=t[r]&&(e[r]=this._getBlockTag(t[r]))}),this.formatter.filter(yield Jr(e))})}_call(t,e,r){return Ta(this,void 0,void 0,function*(){r>=10&&Ia.throwError("CCIP read exceeded maximum redirections",mr.errors.SERVER_ERROR,{redirects:r,transaction:t});const n=t.to,i=yield this.perform("call",{transaction:t,blockTag:e});if(r>=0&&"latest"===e&&null!=n&&"0x556f1830"===i.substring(0,10)&&_r(i)%32==4)try{const o=Sr(i,4),s=Sr(o,0,32);Fr.from(s).eq(n)||Ia.throwError("CCIP Read sender did not match",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const a=[],u=Fr.from(Sr(o,32,64)).toNumber(),l=Fr.from(Sr(o,u,u+32)).toNumber(),h=Sr(o,u+32);for(let e=0;e<l;e++){const r=La(h,32*e);null==r&&Ia.throwError("CCIP Read contained corrupt URL string",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i}),a.push(r)}const c=Ua(o,64);Fr.from(Sr(o,100,128)).isZero()||Ia.throwError("CCIP Read callback selector included junk",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const f=Sr(o,96,100),d=Ua(o,128),p=yield this.ccipReadFetch(t,c,a);null==p&&Ia.throwError("CCIP Read disabled or provided no URLs",mr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const m={to:n,data:Pr([f,Ha([p,d])])};return this._call(m,e,r+1)}catch(t){if(t.code===mr.errors.SERVER_ERROR)throw t}try{return kr(i)}catch(r){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"call",params:{transaction:t,blockTag:e},result:i,error:r})}})}call(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Jr({transaction:this._getTransactionRequest(t),blockTag:this._getBlockTag(e),ccipReadEnabled:Promise.resolve(t.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Jr({transaction:this._getTransactionRequest(t)}),r=yield this.perform("estimateGas",e);try{return Fr.from(r)}catch(t){return Ia.throwError("bad result from backend",mr.errors.SERVER_ERROR,{method:"estimateGas",params:e,result:r,error:t})}})}_getAddress(t){return Ta(this,void 0,void 0,function*(){"string"!=typeof(t=yield t)&&Ia.throwArgumentError("invalid address or ENS name","name",t);const e=yield this.resolveName(t);return null==e&&Ia.throwError("ENS name not configured",mr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(t)})`}),e})}_getBlock(t,e){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;let r=-128;const n={includeTransactions:!!e};if(Nr(t,32))n.blockHash=t;else try{n.blockTag=yield this._getBlockTag(t),Nr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(e){Ia.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",t)}return ms(()=>Ta(this,void 0,void 0,function*(){const t=yield this.perform("getBlock",n);if(null==t)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(e){let e=null;for(let r=0;r<t.transactions.length;r++){const n=t.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==e&&(e=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let t=e-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}}const r=this.formatter.blockWithTransactions(t);return r.transactions=r.transactions.map(t=>this._wrapTransaction(t)),r}return this.formatter.block(t)}),{oncePoll:this})})}getBlock(t){return this._getBlock(t,!1)}getBlockWithTransactions(t){return this._getBlock(t,!0)}getTransaction(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ms(()=>Ta(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",e);if(null==r)return null==this._emitted["t:"+t]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ms(()=>Ta(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",e);if(null==r)return null==this._emitted["t:"+t]?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 t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return n}),{oncePoll:this})})}getLogs(t){return Ta(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Jr({filter:this._getFilter(t)}),r=yield this.perform("getLogs",e);return r.forEach(t=>{null==t.removed&&(t.removed=!1)}),Ea.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(t){return Ta(this,void 0,void 0,function*(){if("number"==typeof(t=yield t)&&t<0){t%1&&Ia.throwArgumentError("invalid BlockTag","blockTag",t);let e=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return e+=t,e<0&&(e=0),this.formatter.blockTag(e)}return this.formatter.blockTag(t)})}getResolver(t){return Ta(this,void 0,void 0,function*(){let e=t;for(;;){if(""===e||"."===e)return null;if("eth"!==t&&"eth"===e)return null;const r=yield this._getResolver(e,"getResolver");if(null!=r){const n=new za(this,r,t);return e===t||(yield n.supportsWildcard())?n:null}e=e.split(".").slice(1).join(".")}})}_getResolver(t,e){return Ta(this,void 0,void 0,function*(){null==e&&(e="ENS");const r=yield this.getNetwork();r.ensAddress||Ia.throwError("network does not support ENS",mr.errors.UNSUPPORTED_OPERATION,{operation:e,network:r.name});try{const e=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Zn(t).substring(2)});return this.formatter.callAddress(e)}catch(t){}return null})}resolveName(t){return Ta(this,void 0,void 0,function*(){t=yield t;try{return Promise.resolve(this.formatter.address(t))}catch(e){if(Nr(t))throw e}"string"!=typeof t&&Ia.throwArgumentError("invalid ENS name","name",t);const e=yield this.getResolver(t);return e?yield e.getAddress():null})}lookupAddress(t){return Ta(this,void 0,void 0,function*(){t=yield t;const e=(t=this.formatter.address(t)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(e,"lookupAddress");if(null==r)return null;const n=La(yield this.call({to:r,data:"0x691f3431"+Zn(e).substring(2)}),0);return(yield this.resolveName(n))!=t?null:n})}getAvatar(t){return Ta(this,void 0,void 0,function*(){let e=null;if(Nr(t)){const r=this.formatter.address(t).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;e=new za(this,n,r);try{const t=yield e.getAvatar();if(t)return t.url}catch(t){if(t.code!==mr.errors.CALL_EXCEPTION)throw t}try{const t=La(yield this.call({to:n,data:"0x691f3431"+Zn(r).substring(2)}),0);e=yield this.getResolver(t)}catch(t){if(t.code!==mr.errors.CALL_EXCEPTION)throw t;return null}}else if(e=yield this.getResolver(t),!e)return null;const r=yield e.getAvatar();return null==r?null:r.url})}perform(t,e){return Ia.throwError(t+" not implemented",mr.errors.NOT_IMPLEMENTED,{operation:t})}_startEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_stopEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_addEventListener(t,e,r){const n=new Ca(ka(t),e,r);return this._events.push(n),this._startEvent(n),this}on(t,e){return this._addEventListener(t,e,!1)}once(t,e){return this._addEventListener(t,e,!0)}emit(t,...e){let r=!1,n=[],i=ka(t);return this._events=this._events.filter(t=>t.tag!==i||(setTimeout(()=>{t.listener.apply(this,e)},0),r=!0,!t.once||(n.push(t),!1))),n.forEach(t=>{this._stopEvent(t)}),r}listenerCount(t){if(!t)return this._events.length;let e=ka(t);return this._events.filter(t=>t.tag===e).length}listeners(t){if(null==t)return this._events.map(t=>t.listener);let e=ka(t);return this._events.filter(t=>t.tag===e).map(t=>t.listener)}off(t,e){if(null==e)return this.removeAllListeners(t);const r=[];let n=!1,i=ka(t);return this._events=this._events.filter(t=>t.tag!==i||t.listener!=e||!!n||(n=!0,r.push(t),!1)),r.forEach(t=>{this._stopEvent(t)}),this}removeAllListeners(t){let e=[];if(null==t)e=this._events,this._events=[];else{const r=ka(t);this._events=this._events.filter(t=>t.tag!==r||(e.push(t),!1))}return e.forEach(t=>{this._stopEvent(t)}),this}}var Va=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Ja=new mr(ws),Ya=["call","estimateGas"];function Wa(t,e){if(null==t)return null;if("string"==typeof t.message&&t.message.match("reverted")){const r=Nr(t.data)?t.data:null;if(!e||r)return{message:t.message,data:r}}if("object"==typeof t){for(const r in t){const n=Wa(t[r],e);if(n)return n}return null}if("string"==typeof t)try{return Wa(JSON.parse(t),e)}catch(t){}return null}function Xa(t,e,r){const n=r.transaction||r.signedTransaction;if("call"===t){const t=Wa(e,!0);if(t)return t.data;Ja.throwError("missing revert data in call exception; Transaction reverted without a reason string",mr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:e})}if("estimateGas"===t){let r=Wa(e.body,!1);null==r&&(r=Wa(e,!1)),r&&Ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",mr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:t,transaction:n,error:e})}let i=e.message;throw e.code===mr.errors.SERVER_ERROR&&e.error&&"string"==typeof e.error.message?i=e.error.message:"string"==typeof e.body?i=e.body:"string"==typeof e.responseText&&(i=e.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ja.throwError("insufficient funds for intrinsic transaction cost",mr.errors.INSUFFICIENT_FUNDS,{error:e,method:t,transaction:n}),i.match(/nonce (is )?too low/i)&&Ja.throwError("nonce has already been used",mr.errors.NONCE_EXPIRED,{error:e,method:t,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ja.throwError("replacement fee too low",mr.errors.REPLACEMENT_UNDERPRICED,{error:e,method:t,transaction:n}),i.match(/only replay-protected/i)&&Ja.throwError("legacy pre-eip-155 transactions not supported",mr.errors.UNSUPPORTED_OPERATION,{error:e,method:t,transaction:n}),Ya.indexOf(t)>=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",mr.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:n}),e}function Za(t){return new Promise(function(e){setTimeout(e,t)})}function $a(t){if(t.error){const e=new Error(t.error.message);throw e.code=t.error.code,e.data=t.error.data,e}return t.result}function tu(t){return t?t.toLowerCase():t}const eu={};class ru extends I{constructor(t,e,r){if(super(),t!==eu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Kr(this,"provider",e),null==r&&(r=0),"string"==typeof r?(Kr(this,"_address",this.provider.formatter.address(r)),Kr(this,"_index",null)):"number"==typeof r?(Kr(this,"_index",r),Kr(this,"_address",null)):Ja.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(t){return Ja.throwError("cannot alter JSON-RPC Signer connection",mr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new nu(eu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(t=>(t.length<=this._index&&Ja.throwError("unknown account #"+this._index,mr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(t[this._index])))}sendUncheckedTransaction(t){t=Yr(t);const e=this.getAddress().then(t=>(t&&(t=t.toLowerCase()),t));if(null==t.gasLimit){const r=Yr(t);r.from=e,t.gasLimit=this.provider.estimateGas(r)}return null!=t.to&&(t.to=Promise.resolve(t.to).then(t=>Va(this,void 0,void 0,function*(){if(null==t)return null;const e=yield this.provider.resolveName(t);return null==e&&Ja.throwArgumentError("provided ENS name resolves to null","tx.to",t),e}))),Jr({tx:Jr(t),sender:e}).then(({tx:e,sender:r})=>{null!=e.from?e.from.toLowerCase()!==r&&Ja.throwArgumentError("from address mismatch","transaction",t):e.from=r;const n=this.provider.constructor.hexlifyTransaction(e,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(t=>t,t=>("string"==typeof t.message&&t.message.match(/user denied/i)&&Ja.throwError("user rejected transaction",mr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:e}),Xa("sendTransaction",t,n)))})}signTransaction(t){return Ja.throwError("signing transactions is unsupported",mr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(t){return Va(this,void 0,void 0,function*(){const e=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(t);try{return yield ms(()=>Va(this,void 0,void 0,function*(){const t=yield this.provider.getTransaction(r);if(null!==t)return this.provider._wrapTransaction(t,r,e)}),{oncePoll:this.provider})}catch(t){throw t.transactionHash=r,t}})}signMessage(t){return Va(this,void 0,void 0,function*(){const e="string"==typeof t?Nn(t):t,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[kr(e),r.toLowerCase()])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ja.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:t}),e}})}_legacySignMessage(t){return Va(this,void 0,void 0,function*(){const e="string"==typeof t?Nn(t):t,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),kr(e)])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ja.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:t}),e}})}_signTypedData(t,e,r){return Va(this,void 0,void 0,function*(){const n=yield Mi.resolveNames(t,e,r,t=>this.provider.resolveName(t)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Mi.getPayload(n.domain,e,n.value))])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ja.throwError("user rejected signing",mr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:e,value:n.value}}),t}})}unlock(t){return Va(this,void 0,void 0,function*(){const e=this.provider,r=yield this.getAddress();return e.send("personal_unlockAccount",[r.toLowerCase(),t,null])})}}class nu extends ru{sendTransaction(t){return this.sendUncheckedTransaction(t).then(t=>({hash:t,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:e=>this.provider.waitForTransaction(t,e)}))}}const iu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class ou extends Ka{constructor(t,e){let r=e;null==r&&(r=new Promise((t,e)=>{setTimeout(()=>{this.detectNetwork().then(e=>{t(e)},t=>{e(t)})},0)})),super(r),t||(t=Vr(this.constructor,"defaultUrl")()),Kr(this,"connection",Object.freeze("string"==typeof t?{url:t}:Yr(t))),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 Va(this,void 0,void 0,function*(){yield Za(0);let t=null;try{t=yield this.send("eth_chainId",[])}catch(e){try{t=yield this.send("net_version",[])}catch(t){}}if(null!=t){const e=Vr(this.constructor,"getNetwork");try{return e(Fr.from(t).toNumber())}catch(e){return Ja.throwError("could not detect network",mr.errors.NETWORK_ERROR,{chainId:t,event:"invalidNetwork",serverError:e})}}return Ja.throwError("could not detect network",mr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(t){return new ru(eu,this,t)}getUncheckedSigner(t){return this.getSigner(t).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(t=>t.map(t=>this.formatter.address(t)))}send(t,e){const r={method:t,params:e,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:$r(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(t)>=0;if(n&&this._cache[t])return this._cache[t];const i=ps(this.connection,JSON.stringify(r),$a).then(t=>(this.emit("debug",{action:"response",request:r,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",error:t,request:r,provider:this}),t});return n&&(this._cache[t]=i,setTimeout(()=>{this._cache[t]=null},0)),i}prepareRequest(t,e){switch(t){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[tu(e.address),e.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[tu(e.address),e.blockTag]];case"getCode":return["eth_getCode",[tu(e.address),e.blockTag]];case"getStorageAt":return["eth_getStorageAt",[tu(e.address),xr(e.position,32),e.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[e.signedTransaction]];case"getBlock":return e.blockTag?["eth_getBlockByNumber",[e.blockTag,!!e.includeTransactions]]:e.blockHash?["eth_getBlockByHash",[e.blockHash,!!e.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[e.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[e.transactionHash]];case"call":return["eth_call",[Vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0}),e.blockTag]];case"estimateGas":return["eth_estimateGas",[Vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0})]];case"getLogs":return e.filter&&null!=e.filter.address&&(e.filter.address=tu(e.filter.address)),["eth_getLogs",[e.filter]]}return null}perform(t,e){return Va(this,void 0,void 0,function*(){if("call"===t||"estimateGas"===t){const t=e.transaction;if(t&&null!=t.type&&Fr.from(t.type).isZero()&&null==t.maxFeePerGas&&null==t.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((e=Yr(e)).transaction=Yr(t),delete e.transaction.type)}}const r=this.prepareRequest(t,e);null==r&&Ja.throwError(t+" not implemented",mr.errors.NOT_IMPLEMENTED,{operation:t});try{return yield this.send(r[0],r[1])}catch(r){return Xa(t,r,e)}})}_startEvent(t){"pending"===t.tag&&this._startPending(),super._startEvent(t)}_startPending(){if(null!=this._pendingFilter)return;const t=this,e=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=e,e.then(function(r){return function n(){t.send("eth_getFilterChanges",[r]).then(function(r){if(t._pendingFilter!=e)return null;let n=Promise.resolve();return r.forEach(function(e){t._emitted["t:"+e.toLowerCase()]="pending",n=n.then(function(){return t.getTransaction(e).then(function(e){return t.emit("pending",e),null})})}),n.then(function(){return Za(1e3)})}).then(function(){if(t._pendingFilter==e)return setTimeout(function(){n()},0),null;t.send("eth_uninstallFilter",[r])}).catch(t=>{})}(),r}).catch(t=>{})}_stopEvent(t){"pending"===t.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(t)}static hexlifyTransaction(t,e){const r=Yr(iu);if(e)for(const t in e)e[t]&&(r[t]=!0);var n,i;i=r,(n=t)&&"object"==typeof n||Qr.throwArgumentError("invalid object","object",n),Object.keys(n).forEach(t=>{i[t]||Qr.throwArgumentError("invalid object key - "+t,"transaction:"+t,n)});const o={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(e){if(null==t[e])return;const r=Cr(Fr.from(t[e]));"gasLimit"===e&&(e="gas"),o[e]=r}),["from","to","data"].forEach(function(e){null!=t[e]&&(o[e]=kr(t[e]))}),t.accessList&&(o.accessList=ya(t.accessList)),o}}const su=new mr(ws);let au=1;function uu(t,e){const r="Web3LegacyFetcher";return function(t,n){const i={method:t,params:n,id:au++,jsonrpc:"2.0"};return new Promise((t,n)=>{this.emit("debug",{action:"request",fetcher:r,request:$r(i),provider:this}),e(i,(e,o)=>{if(e)return this.emit("debug",{action:"response",fetcher:r,error:e,request:i,provider:this}),n(e);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const t=new Error(o.error.message);return t.code=o.error.code,t.data=o.error.data,n(t)}t(o.result)})})}}class lu extends ou{constructor(t,e){null==t&&su.throwArgumentError("missing provider","provider",t);let r=null,n=null,i=null;"function"==typeof t?(r="unknown:",n=t):(r=t.host||t.path||"",!r&&t.isMetaMask&&(r="metamask"),i=t,t.request?(""===r&&(r="eip-1193:"),n=function(t){return function(e,r){null==r&&(r=[]);const n={method:e,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:$r(n),provider:this}),t.request(n).then(t=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:t,provider:this}),t})}}(t)):t.sendAsync?n=uu(0,t.sendAsync.bind(t)):t.send?n=uu(0,t.send.bind(t)):su.throwArgumentError("unsupported provider","provider",t),r||(r="unknown:")),super(r,e),Kr(this,"jsonRpcFetchFunc",n),Kr(this,"provider",i)}send(t,e){return this.jsonRpcFetchFunc(t,e)}}function hu(t,e){return{...t,quoteId:e.id,sellAmount:e.quote.sellAmount,buyAmount:e.quote.buyAmount}}function cu(t){return t.sellToken.toLowerCase()===R.toLowerCase()}function fu(t){return"string"==typeof t?new s.Wallet(t):"request"in t||"send"in t?new lu(t).getSigner():t}function du(t){return t+t*BigInt(20)/BigInt(100)}function pu(t,e){const{costs:{networkFee:r,partnerFee:n}}=t;function i(t){return{sellAmount:e(t.sellAmount),buyAmount:e(t.buyAmount)}}return{...t,costs:{...t.costs,networkFee:{...r,amountInSellCurrency:e(r.amountInSellCurrency),amountInBuyCurrency:e(r.amountInBuyCurrency)},partnerFee:{...n,amount:e(n.amount)}},beforeNetworkCosts:i(t.beforeNetworkCosts),afterNetworkCosts:i(t.afterNetworkCosts),afterPartnerFees:i(t.afterPartnerFees),afterSlippage:i(t.afterSlippage)}}function mu({quoteParameters:t,orderParameters:e}){return{...t,sellToken:e.sellToken}}new mr(ws);const yu=function(t,e,r,n,i="0",o){try{return Promise.resolve(t.getAddress()).then(function(s){const a={...r,sellToken:K[n]},{quoteId:u}=a,l=function(t,e,r){return Qt.connect(("staging"===r?W:Y)[t],e)}(n,t,a.env),h=tr({from:s,networkCostsAmount:i},a,e);return Promise.resolve(er(n,h,o,a.env)).then(function(t){const r={...h,quoteId:u,appData:e,validTo:h.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:h.sellAmount}).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),$e))).then(function(e){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:t,transaction:{data:n,gasLimit:"0x"+du(e).toString(16),to:l.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(t){return Promise.reject(t)}},gu=function(t,e,r,n,i="0",o){try{const{appDataKeccak256:s,fullAppData:a}=r;return Promise.resolve(yu(e,s,n,t.context.chainId,i,o)).then(function({orderId:r,transaction:n}){return Ye("Uploading app-data"),Promise.resolve(t.uploadAppData(s,a)).then(function(){return Ye("Sending on-chain order transaction"),Promise.resolve(e.sendTransaction(n)).then(function(t){return Ye(`On-chain order transaction sent, txHash: ${t.hash}, order: ${r}`),{txHash:t.hash,orderId:r}})})})}catch(t){return Promise.reject(t)}},vu=function(t,e,r,n,i="0",o){try{let a;function s(s){if(a)return s;const{quoteId:u=null}=n,{appDataKeccak256:l,fullAppData:h}=r,c=t.context.chainId;return Promise.resolve(e.getAddress()).then(function(s){const a=tr({from:s,networkCostsAmount:i},n,r.appDataKeccak256);return Ye("Signing order..."),Promise.resolve(function(){try{return o===Tt.PRESIGN?Promise.resolve({signature:s,signingScheme:Tt.PRESIGN}):Promise.resolve(Bt.signOrder(a,c,e)).then(function(t){return{signature:t.signature,signingScheme:Ze[t.signingScheme]}})}catch(t){return Promise.reject(t)}}()).then(function({signature:e,signingScheme:r}){const n={...a,from:s,signature:e,signingScheme:r,quoteId:u,appData:h,appDataHash:l};return Ye("Posting order..."),Promise.resolve(t.sendOrder(n)).then(function(t){return Ye(`Order created, id: ${t}`),t})})})}void 0===o&&(o=Tt.EIP712);const u=function(){if(cu(n)){const o=n.quoteId;if("number"==typeof o)return Promise.resolve(gu(t,e,r,{...n,quoteId:o},i)).then(function({orderId:t}){return a=1,t});throw new Error("quoteId is required for EthFlow orders")}}();return Promise.resolve(u&&u.then?u.then(s):s(u))}catch(l){return Promise.reject(l)}},bu=function(t){try{return Promise.resolve(N(t)).then(function(t){return{fullAppData:t,appDataKeccak256:E(T(t))}})}catch(t){return Promise.reject(t)}},Au=function({slippageBps:t,appCode:e,orderClass:r,partnerFee:n},i){try{const o=new M;return Promise.resolve(o.generateAppDataDoc({appCode:e,metadata:{quote:{slippageBips:t},orderClass:{orderClass:r},partnerFee:n},...i})).then(function(t){return Promise.resolve(bu(t)).then(function({fullAppData:e,appDataKeccak256:r}){return{doc:t,fullAppData:e,appDataKeccak256:r}})})}catch(t){return Promise.reject(t)}},wu=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Eu=function(t,e,r){try{const n=fu(t.signer),i=t.appCode,o=t.chainId;return Promise.resolve(n.getAddress()).then(function(s){return Promise.resolve(Tu(t,{chainId:o,appCode:i,account:s},e,r)).then(function(t){return{result:{...t.result,signer:n},orderBookApi:t.orderBookApi}})})}catch(t){return Promise.reject(t)}},Tu=function(t,e,r,n){try{const{appCode:i,chainId:o,account:s}=e,a=cu(t),u=a?{...t,sellToken:K[o]}:t,{sellToken:l,sellTokenDecimals:h,buyToken:c,buyTokenDecimals:f,amount:d,kind:m,partnerFee:y,validFor:g=We,slippageBps:v=Xe,env:b="prod"}=u;Ye(`Swap ${d} ${l} for ${c} on chain ${o}`);const A=n||new ut({chainId:o,env:b}),w=u.receiver||s,E="sell"===m;return Ye("Building app data..."),Promise.resolve(Au({slippageBps:v,orderClass:"market",appCode:i,partnerFee:y},r?.appData)).then(function(t){const{appDataKeccak256:e,fullAppData:n}=t,i={from:s,sellToken:l,buyToken:c,receiver:w,validFor:g,appData:n,appDataHash:e,priceQuality:wt.OPTIMAL,signingScheme:Tt.EIP712,...a?Iu:{},...E?{kind:vt.SELL,sellAmountBeforeFee:d}:{kind:gt.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return Ye("Getting quote..."),Promise.resolve(A.getQuote(i)).then(function(e){const r=Nt({orderParams:e.quote,slippagePercentBps:v,partnerFeeBps:y?.bps,sellDecimals:h,buyDecimals:f}),n=tr({from:s,networkCostsAmount:e.quote.feeAmount},hu(u,e),t.appDataKeccak256);return Promise.resolve(function(t,e){try{return Promise.resolve(Bt.getDomain(t)).then(function(t){return{domain:t,primaryType:Je,types:{[Je]:p,EIP712Domain:wu},message:e}})}catch(t){return Promise.reject(t)}}(o,n)).then(function(i){return{result:{tradeParameters:u,amountsAndCosts:r,orderToSign:n,quoteResponse:e,appDataInfo:t,orderTypedData:i},orderBookApi:A}})})})}catch(t){return Promise.reject(t)}},Iu={signingScheme:Tt.EIP1271,onchainOrder:!0,verificationGasLimit:0},Nu=function({orderBookApi:t,result:{signer:e,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{return Promise.resolve(vu(t,e,r,hu(i,n),n.quote.feeAmount,o?.quoteRequest?.signingScheme))}catch(t){return Promise.reject(t)}},Mu=function(t,e,r){try{return Promise.resolve(Eu(t,e,r)).then(function(t){return Nu(t,e)})}catch(t){return Promise.reject(t)}},ku=function(t,e,r){try{const{appCode:n,chainId:i,sellToken:o,buyToken:s,sellAmount:a,buyAmount:u,partnerFee:l,slippageBps:h=0,env:c="prod"}=t;Ye(`Limit order ${a} ${o} for ${u} ${s} on chain ${i}`);const f=fu(t.signer),d=r||new ut({chainId:i,env:c});return Ye("Building app data..."),Promise.resolve(Au({slippageBps:h,orderClass:"limit",appCode:n,partnerFee:l},e?.appData)).then(function(e){return vu(d,f,e,t)})}catch(t){return Promise.reject(t)}},_u=function(t,e,r,n){try{const i=Yt.connect(r,t),o=H[e],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),$e))).then(function(t){return{data:s,gasLimit:"0x"+du(t).toString(16),to:o,value:"0"}})}catch(t){return Promise.reject(t)}};class Su{constructor(t,e={enableLogging:!1}){this.traderParams=void 0,this.options=void 0,this.traderParams=t,this.options=e,e.enableLogging&&(Ye.enabled=!0)}getQuote(t,e){try{const r=this;return Promise.resolve(Eu(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){return{quoteResults:e.result,postSwapOrderFromQuote:()=>Nu({...e,result:{...e.result,tradeParameters:mu({quoteParameters:e.result.tradeParameters,orderParameters:t})}})}})}catch(t){return Promise.reject(t)}}postSwapOrder(t,e){try{const r=this;return Promise.resolve(Mu(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postLimitOrder(t,e){try{const r=this;return Promise.resolve(ku(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postSellNativeCurrencyOrder(t,e){try{const r=this;return Promise.resolve(Eu(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){const{tradeParameters:r,quoteResponse:n}=e.result;return gu(e.orderBookApi,e.result.signer,e.result.appDataInfo,hu(mu({quoteParameters:r,orderParameters:t}),n))})}catch(t){return Promise.reject(t)}}getPreSignTransaction(t){try{const e=this,r=fu(e.traderParams.signer);return Promise.resolve(_u(r,e.traderParams.chainId,t.account,t.orderId))}catch(t){return Promise.reject(t)}}mergeParams(t){return{...t,...this.traderParams}}}export{F as ALL_SUPPORTED_CHAIN_IDS,J as BARN_ETH_FLOW_ADDRESS,W as BARN_ETH_FLOW_ADDRESSES,lt as BuyTokenDestination,D as COMPOSABLE_COW,Q as COMPOSABLE_COW_CONTRACT_ADDRESS,ne as CONDITIONAL_ORDER_PARAMS_ABI,H as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,z as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,Fe as COW_SHED_712_TYPES,L as COW_SHED_FACTORY,U as COW_SHED_IMPLEMENTATION,je as COW_SHED_PROXY_INIT_CODE,Me as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,ht as CompetitionOrderStatus,Ae as ConditionalOrder,Ie as ConditionalOrderFactory,P as CowError,Ve as CowShedHooks,et as DEFAULT_BACKOFF_OPTIONS,Le as DEFAULT_CONDITIONAL_ORDER_REGISTRY,S as DEFAULT_COW_API_CONTEXT,x as DEFAULT_IPFS_READ_URI,O as DEFAULT_IPFS_WRITE_URI,rt as DEFAULT_LIMITER_OPTIONS,ie as DEFAULT_TOKEN_FORMATTER,Ue as DOMAIN_TYPE,Pe as DurationType,_ as ENVS_LIST,R as ETH_ADDRESS,V as ETH_FLOW_ADDRESS,Y as ETH_FLOW_ADDRESSES,B as EXTENSIBLE_FALLBACK_HANDLER,j as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,ct as EcdsaSigningScheme,_e as MAX_FREQUENCY,ke as MAX_UINT32,X as MAX_VALID_TO_EPOCH,Te as Multiplexer,ot as ORDER_BOOK_PROD_CONFIG,st as ORDER_BOOK_STAGING_CONFIG,Je as ORDER_PRIMARY_TYPE,ft as OnchainOrderData,ut as OrderBookApi,$ as OrderBookApiError,dt as OrderCancellationError,pt as OrderClass,mt as OrderKind,yt as OrderPostError,gt as OrderQuoteSideKindBuy,vt as OrderQuoteSideKindSell,Bt as OrderSigningUtils,bt as OrderStatus,Lt as PollResultCode,At as PriceEstimationError,wt as PriceQuality,Dt as ProofLocation,Ct as SUBGRAPH_PROD_CONFIG,xt as SUBGRAPH_STAGING_CONFIG,Et as SellTokenSource,Tt as SigningScheme,Ce as StartTimeValue,Ot as SubgraphApi,k as SupportedChainId,Ne as TWAP_ADDRESS,Su as TradingSdk,Re as Twap,K as WRAPPED_NATIVE_CURRENCIES,Au as buildAppData,er as calculateUniqueOrderId,ae as createSetDomainVerifierTx,le as decodeParams,ue as encodeParams,ce as formatEpoch,pe as fromStructToOrder,bu as generateAppDataFromDoc,Wt as getBlockInfo,ze as getCoWShedFactoryInterface,He as getCoWShedInterface,Xt as getDomainVerifier,yu as getEthFlowTransaction,me as getIsValidResult,tr as getOrderToSign,_u as getPreSignTransaction,Tu as getQuote,Nt as getQuoteAmountsAndCosts,Eu as getQuoteWithSigner,se as isComposableCow,oe as isExtensibleFallbackHandler,he as isValidAbi,C as logPrefix,G as mapAddressToSupportedNetworks,pu as mapQuoteAmountsAndCosts,q as mapSupportedNetworks,vu as postCoWProtocolTrade,ku as postLimitOrder,gu as postSellNativeCurrencyOrder,Mu as postSwapOrder,Nu as postSwapOrderFromQuote,Z as request,hu as swapParamsToLimitOrderParams,Be as transformDataToStruct,De as transformStructToData};
|
|
28
|
+
`,Zd="https://api.thegraph.com/subgraphs/name/cowprotocol",$d={[H.MAINNET]:Zd+"/cow",[H.GNOSIS_CHAIN]:Zd+"/cow-gc",[H.ARBITRUM_ONE]:null,[H.BASE]:null,[H.SEPOLIA]:null,[H.POLYGON]:null,[H.AVALANCHE]:null},eh={[H.MAINNET]:Zd+"/cow-staging",[H.GNOSIS_CHAIN]:Zd+"/cow-gc-staging",[H.ARBITRUM_ONE]:null,[H.BASE]:null,[H.SEPOLIA]:null,[H.POLYGON]:null,[H.AVALANCHE]:null};class th{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...We,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(Qd,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(Yd,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(Xd,{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(_(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 q(`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?$d:eh}}var rh,nh;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(rh||(rh={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(nh||(nh={}));const ih=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)}},oh=function(e,t,r,n){try{const i=Ut.connect(Be[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},sh=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],ah=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],uh=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],lh=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],ch=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],dh=["tuple(address handler, bytes32 salt, bytes staticInput)"],hh=(e,t)=>`${t}@${e}`;function ph(e,t){return e===Be[t]}function fh(e,t){return e===De[t]}function mh(e,t){return Ut.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function yh(e){return r.defaultAbiCoder.encode(dh,[e])}function gh(e){const{handler:t,salt:n,staticInput:i}=r.defaultAbiCoder.decode(dh,e)[0];return{handler:t,salt:n,staticInput:i}}function bh(e,t){try{r.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}function vh(e){return new Date(1e3*e).toISOString()}function Ah(e){if(sh.includes(e))return S.ERC20;if(ah.includes(e))return S.EXTERNAL;if(uh.includes(e))return S.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function wh(e){if(lh.includes(e))return A.SELL;if(ch.includes(e))return A.BUY;throw new Error(`Unknown kind: ${e}`)}function Th(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:wh(u.toString()),sellTokenBalance:Ah(s.toString()),buyTokenBalance:Ah(o.toString())}}function Eh(e){return e.isValid}let Sh,Ih;function kh(){return Sh||(Sh=Bt.createInterface()),Sh}function Ph(e,t){return Ih||(Ih=Bt.connect(De[e],t)),Ih}class Ch{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.keccak256(r.randomBytes(32)),data:o,hasOffChainInput:s=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(n)||32!==i.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=o,this.staticInput=this.transformDataToStruct(o),this.hasOffChainInput=s}get context(){}assertIsValid(){const e=this.isValid();if(!Eh(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=kh(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.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(),kh().encodeFunctionData("remove",[this.id])}get id(){return r.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.keccak256(yh(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Ph(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return Eh(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(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(xt.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,Th(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:nh.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){return e?(o=1,e):(o=1,{result:nh.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:nh.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:nh.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:nh.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Ph(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Ph(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=gh(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const xh=["address","bytes32","bytes"],_h=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Nh{constructor(e,t,r,n=rh.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(!Nh.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:n,location:i}=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(!Nh.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Nh.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?s.from(t):t}),o=new Nh(t,r,n);return o.location=i,o}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=N.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),xh)),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 rh.PRIVATE:return Promise.resolve("0x");case rh.EMITTED:return Promise.resolve(i.encodeToABI(t));case rh.SWARM:case rh.WAKU:case rh.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.hexlify(r.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=Ph(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.defaultAbiCoder.encode(_h,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Nh.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Nh.orderTypeRegistry={}}}Nh.orderTypeRegistry={};class Mh{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)}}const Rh="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Oh="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Bh=s.from(2).pow(32).sub(1),Dh=s.from(31536e3),Fh=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Lh,Uh;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(Lh||(Lh={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(Uh||(Uh={}));const Gh={startType:Uh.AT_MINING_TIME},Hh={durationType:Lh.AUTO};class jh extends Ch{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Rh)throw new Error(`InvalidHandler: Expected: ${Rh}, provided: ${t}`);super({handler:Rh,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new jh({handler:Rh,data:e,salt:t})}static fromParams(e){return jh.deserialize(yh(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Oh,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:r,buyAmount:n,startTime:i=Gh,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=Hh}=this.data;if(e==r)return"InvalidSameToken";if(e==o.AddressZero||r==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!n.gt(o.Zero))return"InvalidMinBuyAmount";if(i.startType===Uh.AT_EPOCH){const e=i.epoch;if(!e.gte(o.Zero)||!e.lt(Bh))return"InvalidStartTime"}return s.gt(o.One)&&s.lte(Bh)?a.gt(o.Zero)&&a.lte(Dh)?u.durationType!==Lh.LIMIT_DURATION||u.duration.lte(a)?bh(Fh,[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===Uh.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(Bh))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===Lh.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(ih(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:nh.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${vh(e)})`};const r=t.endTimestamp(e);return i>=r?{result:nh.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${vh(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:nh.DONT_TRY_AGAIN,reason:`${e?.message}. User likely removed the order.`}:e?.message?.includes("Cabinet epoch out of range")?{result:nh.DONT_TRY_AGAIN,reason:`${e?.message}`}:{result:nh.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(ih(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:nh.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${vh(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:nh.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${vh(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:nh.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:nh.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} (${vh(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return yh(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Fh,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Rh,Fh,(e,t)=>new jh({handler:Rh,salt:t,data:zh(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=Gh,timeBetweenParts:s,durationOfPart:a=Hh,receiver:u,appData:l}=this.data,c=o.startType===Uh.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===Lh.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 qh(e)}transformStructToData(e){return zh(e)}}function qh(e){const{sellAmount:t,buyAmount:r,numberOfParts:n,startTime:i=Gh,timeBetweenParts:s,durationOfPart:a=Hh,...u}=e,{partSellAmount:l,minPartLimit:c}=n&&!n.isZero()?{partSellAmount:t.div(n),minPartLimit:r.div(n)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:l,minPartLimit:c,t0:i.startType===Uh.AT_MINING_TIME?o.Zero:i.epoch,n:n,t:s,span:a.durationType===Lh.AUTO?o.Zero:a.duration,...u}}function zh(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:Lh.AUTO}:{durationType:Lh.LIMIT_DURATION,duration:s},h=o.isZero()?{startType:Uh.AT_MINING_TIME}:{startType:Uh.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 Vh={[Rh]:e=>jh.fromParams(e)};export{Ee as ADDITIONAL_TARGET_CHAINS_MAP,Se as ALL_CHAINS,Ie as ALL_CHAINS_IDS,we as ALL_SUPPORTED_CHAINS,Ae as ALL_SUPPORTED_CHAINS_MAP,Te as ALL_SUPPORTED_CHAIN_IDS,Jd as AcrossBridgeProvider,j as AdditionalTargetChainId,Le as BARN_ETH_FLOW_ADDRESS,Ge as BARN_ETH_FLOW_ADDRESSES,R as BridgeProviderQuoteError,M as BridgeStatus,ld as BridgingSdk,tt as BuyTokenDestination,_e as COMPOSABLE_COW,De as COMPOSABLE_COW_CONTRACT_ADDRESS,dh as CONDITIONAL_ORDER_PARAMS_ABI,Re as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,Oe as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,xd as COW_SHED_712_TYPES,Ne as COW_SHED_FACTORY,Me as COW_SHED_IMPLEMENTATION,Cd as COW_SHED_PROXY_INIT_CODE,Oh as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,rt as CompetitionOrderStatus,Ch as ConditionalOrder,Mh as ConditionalOrderFactory,q as CowError,_d as CowShedHooks,Md as CowShedSdk,W as DEFAULT_BACKOFF_OPTIONS,Vh as DEFAULT_CONDITIONAL_ORDER_REGISTRY,We as DEFAULT_COW_API_CONTEXT,Je as DEFAULT_IPFS_READ_URI,Qe as DEFAULT_IPFS_WRITE_URI,J as DEFAULT_LIMITER_OPTIONS,hh as DEFAULT_TOKEN_FORMATTER,Lh as DurationType,Ke as ENVS_LIST,Ce as ETH_ADDRESS,Fe as ETH_FLOW_ADDRESS,Ue as ETH_FLOW_ADDRESSES,xe as EXTENSIBLE_FALLBACK_HANDLER,Be as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,nt as EcdsaSigningScheme,Dh as MAX_FREQUENCY,Bh as MAX_UINT32,He as MAX_VALID_TO_EPOCH,fd as MockBridgeProvider,Nh as Multiplexer,Y as NATIVE_CURRENCY_ADDRESS,Xe as ORDER_BOOK_PROD_CONFIG,Ze as ORDER_BOOK_STAGING_CONFIG,G as ORDER_PRIMARY_TYPE,it as OnchainOrderData,et as OrderBookApi,V as OrderBookApiError,ot as OrderCancellationError,st as OrderClass,at as OrderKind,ut as OrderPostError,lt as OrderQuoteSideKindBuy,ct as OrderQuoteSideKindSell,xt as OrderSigningUtils,dt as OrderStatus,nh as PollResultCode,ht as PriceEstimationError,pt as PriceQuality,rh as ProofLocation,$d as SUBGRAPH_PROD_CONFIG,eh as SUBGRAPH_STAGING_CONFIG,ft as SellTokenSource,mt as SigningScheme,Uh as StartTimeValue,th as SubgraphApi,H as SupportedChainId,X as TOKEN_LIST_IMAGES_PATH,Rh as TWAP_ADDRESS,Hl as TradingSdk,jh as Twap,$ as WRAPPED_NATIVE_CURRENCIES,Bd as WeirollCommandFlags,zl as areHooksEqual,D as assertIsBridgeQuoteAndPost,F as assertIsQuoteAndPost,$t as buildAppData,Nt as calculateUniqueOrderId,mh as createSetDomainVerifierTx,Gd as createWeirollContract,Ud as createWeirollDelegateCall,Hd as createWeirollLibrary,gh as decodeParams,Ve as enableLogging,yh as encodeParams,vh as formatEpoch,Th as fromStructToOrder,Zt as generateAppDataFromDoc,bt as getBigNumber,ih as getBlockInfo,vt as getChainInfo,oh as getDomainVerifier,Jt as getEthFlowTransaction,ql as getHookMockForCostEstimation,Eh as getIsValidResult,_t as getOrderToSign,L as getPostHooks,Gl as getPreSignTransaction,Bl as getQuote,gt as getQuoteAmountsAndCosts,Ol as getQuoteWithSigner,wt as isAdditionalTargetChain,U as isAppDoc,O as isBridgeQuoteAndPost,fh as isComposableCow,ph as isExtensibleFallbackHandler,B as isQuoteAndPost,At as isSupportedChain,Tt as isTargetChainId,bh as isValidAbi,Pe as mapAddressToSupportedNetworks,Vt as mapQuoteAmountsAndCosts,ke as mapSupportedNetworks,Xt as mergeAppDataDoc,ee as nativeCurrencyTemplate,Yt as postCoWProtocolTrade,Ul as postLimitOrder,Qt as postSellNativeCurrencyOrder,Ll as postSwapOrder,Fl as postSwapOrderFromQuote,z as request,jt as swapParamsToLimitOrderParams,qh as transformDataToStruct,zh as transformStructToData};
|
|
29
29
|
//# sourceMappingURL=index.module.js.map
|