2 txs
0 calls
constructor
constructor(address _triviToken, address _treasury)
functions
BPS
viewfunction BPS() view returns (uint256)
CBBTC_TOKEN
viewfunction CBBTC_TOKEN() view returns (address)
deadlineWindow
viewfunction deadlineWindow() view returns (uint256)
FEE_BPS
viewfunction FEE_BPS() view returns (uint256)
getBuyQuotes
viewfunction getBuyQuotes(uint256 triviAmount) view returns (uint256 ethRequired, uint256 usdcRequired, uint256 cbbtcRequired, uint256 virtualRequired)
getSellQuotes
viewfunction getSellQuotes(uint256 triviAmount) view returns (uint256 ethOut, uint256 usdcOut, uint256 cbbtcOut, uint256 virtualOut)
owner
viewfunction owner() view returns (address)
quoteBufferBps
viewfunction quoteBufferBps() view returns (uint256)
TAX_BPS
viewfunction TAX_BPS() view returns (uint256)
totalFeesCollected
viewfunction totalFeesCollected() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
TRIVI
viewfunction TRIVI() view returns (address)
UNISWAP_ROUTER
viewfunction UNISWAP_ROUTER() view returns (address)
USDC_TOKEN
viewfunction USDC_TOKEN() view returns (address)
VIRTUAL_TOKEN
viewfunction VIRTUAL_TOKEN() view returns (address)
WETH_TOKEN
viewfunction WETH_TOKEN() view returns (address)
buyWithCBBTC
nonpayablefunction buyWithCBBTC(uint256 cbbtcAmount, uint256 minTriviOut)
buyWithETH
payablefunction buyWithETH(uint256 minTriviOut) payable
buyWithUSDC
nonpayablefunction buyWithUSDC(uint256 usdcAmount, uint256 minTriviOut)
buyWithVIRTUAL
nonpayablefunction buyWithVIRTUAL(uint256 virtualAmount, uint256 minTriviOut)
rescueETH
nonpayablefunction rescueETH(uint256 amount)
rescueToken
nonpayablefunction rescueToken(address token, uint256 amount)
sellForCBBTC
nonpayablefunction sellForCBBTC(uint256 triviAmount, uint256 minCBBTCOut)
sellForETH
nonpayablefunction sellForETH(uint256 triviAmount, uint256 minETHOut)
sellForUSDC
nonpayablefunction sellForUSDC(uint256 triviAmount, uint256 minUSDCOut)
sellForVIRTUAL
nonpayablefunction sellForVIRTUAL(uint256 triviAmount, uint256 minVIRTUALOut)
setQuoteConfig
nonpayablefunction setQuoteConfig(uint256 newBufferBps, uint256 newDeadlineWindow)
setTreasury
nonpayablefunction setTreasury(address newTreasury)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BoughtWithETH
event BoughtWithETH(address indexed buyer, uint256 ethIn, uint256 triviOut, uint256 feeAmount)
BoughtWithToken
event BoughtWithToken(address indexed buyer, address indexed tokenIn, uint256 amountIn, uint256 triviOut, uint256 feeAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
QuoteConfigUpdated
event QuoteConfigUpdated(uint256 bufferBps, uint256 deadlineWindow)
SoldForETH
event SoldForETH(address indexed seller, uint256 triviIn, uint256 ethOut, uint256 feeAmount)
SoldForToken
event SoldForToken(address indexed seller, uint256 triviIn, address indexed tokenOut, uint256 amountOut, uint256 feeAmount)
TreasuryUpdated
event TreasuryUpdated(address indexed newTreasury)
errors
No errors.
creation bytecode
0x60a06040526001805561012c60045561012c6005553480156200002157600080fd5b50604051620040ba380380620040ba83398101604081905262000044916200027b565b6200004f336200020e565b6001600160a01b038216620000955760405162461bcd60e51b8152602060048201526007602482015266054524956493d360cc1b60448201526064015b60405180910390fd5b6001600160a01b038116620000da5760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b60448201526064016200008c565b6001600160a01b03828116608052600280546001600160a01b031916918316919091179055604080516315ab88c960e31b8152905173420000000000000000000000000000000000000691734752ba5dbc23f44d87826276bf6fd6b1c372ad249163ad5c4648916004808201926020929091908290030181865afa15801562000167573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018d9190620002b3565b6001600160a01b031614620001d25760405162461bcd60e51b815260206004820152600a6024820152690aee4dedcce40ae8aa8960b31b60448201526064016200008c565b6040516001600160a01b038216907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050620002d8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200027657600080fd5b919050565b600080604083850312156200028f57600080fd5b6200029a836200025e565b9150620002aa602084016200025e565b90509250929050565b600060208284031215620002c657600080fd5b620002d1826200025e565b9392505050565b608051613ced620003cd6000396000818161047301528181610a0401528181610a4401528181610afa01528181610b4001528181610b9901528181610ea301528181610ee301528181610f9901528181610fdf0152818161103601528181611568015281816115a80152818161165e015281816116a4015281816116fd01528181611cb501528181611cf501528181611dab01528181611df101528181611e4a0152818161246b015281816125c00152818161279c0152818161288f01528181612a8c01528181612caf01528181612f6f015281816130e6015281816131cc0152818161349d01526135fb0152613ced6000f3fe6080604052600436106101c65760003560e01c806394dc9cf3116100f7578063e062d56711610095578063f2fde38b11610064578063f2fde38b14610517578063f73f518e14610537578063fa56927414610557578063fd2ae5901461057f57600080fd5b8063e062d56714610495578063e5bdb858146104b5578063ec17afd0146104d7578063f0f44260146104f757600080fd5b8063bf333f2c116100d1578063bf333f2c14610414578063c28399ef14610429578063d82649201461043f578063dba597111461046157600080fd5b806394dc9cf3146103c15780639e252f00146103d4578063b116b42f146103f457600080fd5b806337d277d41161016457806361d027b31161013e57806361d027b31461034657806368f4a786146103665780637b3c3fb41461037b5780638da5cb5b146103a357600080fd5b806337d277d4146102dd5780634012c7fd1461031057806360c6d8ae1461033057600080fd5b80631a895884116101a05780631a89588414610259578063249d39e91461027957806330f530571461029d57806333f3d628146102bd57600080fd5b8063093b9ee1146101d2578063110eb107146101f4578063166e11b71461023957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed36600461383e565b610595565b005b34801561020057600080fd5b5061021461020f366004613860565b6106ea565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561024557600080fd5b506101f261025436600461383e565b61076f565b34801561026557600080fd5b506101f261027436600461383e565b6108ac565b34801561028557600080fd5b5061028f61271081565b604051908152602001610230565b3480156102a957600080fd5b506101f26102b836600461383e565b6109b3565b3480156102c957600080fd5b506101f26102d8366004613895565b610dfe565b3480156102e957600080fd5b506102f86006602160991b0181565b6040516001600160a01b039091168152602001610230565b34801561031c57600080fd5b506101f261032b36600461383e565b610e52565b34801561033c57600080fd5b5061028f60035481565b34801561035257600080fd5b506002546102f8906001600160a01b031681565b34801561037257600080fd5b5061028f606481565b34801561038757600080fd5b506102f873cbb7c0000ab88b473b1f5afd9ef808440eed33bf81565b3480156103af57600080fd5b506000546001600160a01b03166102f8565b6101f26103cf366004613860565b6112b6565b3480156103e057600080fd5b506101f26103ef366004613860565b611456565b34801561040057600080fd5b506101f261040f36600461383e565b611517565b34801561042057600080fd5b5061028f601981565b34801561043557600080fd5b5061028f60055481565b34801561044b57600080fd5b506102f8600080516020613c9883398151915281565b34801561046d57600080fd5b506102f87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a157600080fd5b506101f26104b036600461383e565b6119c5565b3480156104c157600080fd5b506102f8600080516020613c7883398151915281565b3480156104e357600080fd5b506102146104f2366004613860565b611af0565b34801561050357600080fd5b506101f26105123660046138bf565b611b29565b34801561052357600080fd5b506101f26105323660046138bf565b611be0565b34801561054357600080fd5b506101f261055236600461383e565b611c64565b34801561056357600080fd5b506102f873833589fcd6edb6e08f4c7c32d4f71b54bda0291381565b34801561058b57600080fd5b5061028f60045481565b6002600154036105c05760405162461bcd60e51b81526004016105b7906138e1565b60405180910390fd5b6002600155816105e25760405162461bcd60e51b81526004016105b790613918565b61060273cbb7c0000ab88b473b1f5afd9ef808440eed33bf33308561214d565b6000612710610612601985613950565b61061c9190613967565b9050600061062a8285613989565b905081156106765760025461065e9073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906001600160a01b031684612254565b8160036000828254610670919061399c565b90915550505b60006106828285612352565b604080518781526020810183905290810185905290915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060015b60405180910390a3505060018055505050565b6000808080806127106106fe606488613950565b6107089190613967565b6107129087613989565b90506000612710610724601984613950565b61072e9190613967565b6107389083613989565b905061074381612589565b955061074e81612765565b945061075981612858565b935061076481612a57565b925050509193509193565b6002600154036107915760405162461bcd60e51b81526004016105b7906138e1565b6002600155816107b35760405162461bcd60e51b81526004016105b790613918565b6107d373833589fcd6edb6e08f4c7c32d4f71b54bda0291333308561214d565b60006127106107e3601985613950565b6107ed9190613967565b905060006107fb8285613989565b905081156108475760025461082f9073833589fcd6edb6e08f4c7c32d4f71b54bda02913906001600160a01b031684612254565b8160036000828254610841919061399c565b90915550505b60006108538285612bd1565b604080518781526020810183905290810185905290915073833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060016106d7565b6000546001600160a01b031633146108d65760405162461bcd60e51b81526004016105b7906139af565b6107d082111561091a5760405162461bcd60e51b815260206004820152600f60248201526e0c4eacccccae440e8dede40d0d2ced608b1b60448201526064016105b7565b603c811015801561092d5750610e108111155b61096c5760405162461bcd60e51b815260206004820152601060248201526f191958591b1a5b99481a5b9d985b1a5960821b60448201526064016105b7565b6004829055600581905560408051838152602081018390527f14045f4a3d16cb34daef42e409444e1d49619beb63723564f273e85dd7601892910160405180910390a15050565b6002600154036109d55760405162461bcd60e51b81526004016105b7906138e1565b6002600155816109f75760405162461bcd60e51b81526004016105b790613918565b610a2c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561214d565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab791906139e4565b90506000612710610ac9601984613950565b610ad39190613967565b90506000610ae18284613989565b90508115610b3b57600254610b23906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684612254565b8160036000828254610b35919061399c565b90915550505b610b747f0000000000000000000000000000000000000000000000000000000000000000600080516020613c9883398151915283612ce1565b60408051600380825260808201909252600091602082016060803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610bcb57610bcb613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c7883398151915281600181518110610c0d57610c0d613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110610c4857610c48613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506000479050600080516020613c988339815191526001600160a01b031663791ac9478488853060055442610c9c919061399c565b6040518663ffffffff1660e01b8152600401610cbc959493929190613a6d565b600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b5050505060008147610cfc9190613989565b905086811015610d1e5760405162461bcd60e51b81526004016105b790613aa9565b604051600090339083908381818185875af1925050503d8060008114610d60576040519150601f19603f3d011682016040523d82523d6000602084013e610d65565b606091505b5050905080610dac5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016105b7565b604080518a81526020810184905290810187905233907fb956d99dd0c259c3d9d420a89b7dfe23069187ea2a91ed70412f4788a52d77b29060600160405180910390a250506001805550505050505050565b6000546001600160a01b03163314610e285760405162461bcd60e51b81526004016105b7906139af565b610e4e610e3d6000546001600160a01b031690565b6001600160a01b0384169083612254565b5050565b600260015403610e745760405162461bcd60e51b81526004016105b7906138e1565b600260015581610e965760405162461bcd60e51b81526004016105b790613918565b610ecb6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561214d565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5691906139e4565b90506000612710610f68601984613950565b610f729190613967565b90506000610f808284613989565b90508115610fda57600254610fc2906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684612254565b8160036000828254610fd4919061399c565b90915550505b6110137f0000000000000000000000000000000000000000000000000000000000000000600080516020613c9883398151915283612ce1565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061106857611068613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c78833981519152816001815181106110aa576110aa613a13565b6001600160a01b0392909216602092830291909101909101526040516370a0823160e01b8152336004820152600090600080516020613c78833981519152906370a0823190602401602060405180830381865afa15801561110f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113391906139e4565b9050600080516020613c988339815191526001600160a01b0316635c11d7958488853360055442611164919061399c565b6040518663ffffffff1660e01b8152600401611184959493929190613a6d565b600060405180830381600087803b15801561119e57600080fd5b505af11580156111b2573d6000803e3d6000fd5b50506040516370a0823160e01b815233600482015260009250839150600080516020613c78833981519152906370a0823190602401602060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122891906139e4565b6112329190613989565b9050868110156112545760405162461bcd60e51b81526004016105b790613aa9565b6040805189815260208101839052908101869052600080516020613c788339815191529033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b3240906060015b60405180910390a3505060018055505050505050565b6002600154036112d85760405162461bcd60e51b81526004016105b7906138e1565b6002600155346113185760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016105b7565b6000612710611328601934613950565b6113329190613967565b905060006113408234613989565b905081156113fa576002546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611395576040519150601f19603f3d011682016040523d82523d6000602084013e61139a565b606091505b50509050806113e15760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b60448201526064016105b7565b82600360008282546113f3919061399c565b9091555050505b60006114068285612eca565b604080513481526020810183905290810185905290915033907f8e3075c3ab83d55decf7f0bcc1b3893764b4bb37388fdd5d217991eb056bf0e29060600160405180910390a25050600180555050565b6000546001600160a01b031633146114805760405162461bcd60e51b81526004016105b7906139af565b600080546040516001600160a01b039091169083908381818185875af1925050503d80600081146114cd576040519150601f19603f3d011682016040523d82523d6000602084013e6114d2565b606091505b5050905080610e4e5760405162461bcd60e51b8152602060048201526011602482015270115512081c995cd8dd594819985a5b1959607a1b60448201526064016105b7565b6002600154036115395760405162461bcd60e51b81526004016105b7906138e1565b60026001558161155b5760405162461bcd60e51b81526004016105b790613918565b6115906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561214d565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b91906139e4565b9050600061271061162d601984613950565b6116379190613967565b905060006116458284613989565b9050811561169f57600254611687906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684612254565b8160036000828254611699919061399c565b90915550505b6116d87f0000000000000000000000000000000000000000000000000000000000000000600080516020613c9883398151915283612ce1565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061172f5761172f613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c788339815191528160018151811061177157611771613a13565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda02913816002815181106117b9576117b9613a13565b6001600160a01b0392909216602092830291909101909101526040516370a0823160e01b815233600482015260009073833589fcd6edb6e08f4c7c32d4f71b54bda02913906370a0823190602401602060405180830381865afa158015611824573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184891906139e4565b9050600080516020613c988339815191526001600160a01b0316635c11d7958488853360055442611879919061399c565b6040518663ffffffff1660e01b8152600401611899959493929190613a6d565b600060405180830381600087803b1580156118b357600080fd5b505af11580156118c7573d6000803e3d6000fd5b50506040516370a0823160e01b81523360048201526000925083915073833589fcd6edb6e08f4c7c32d4f71b54bda02913906370a0823190602401602060405180830381865afa15801561191f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194391906139e4565b61194d9190613989565b90508681101561196f5760405162461bcd60e51b81526004016105b790613aa9565b604080518981526020810183905290810186905273833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b3240906060016112a0565b6002600154036119e75760405162461bcd60e51b81526004016105b7906138e1565b600260015581611a095760405162461bcd60e51b81526004016105b790613918565b611a23600080516020613c7883398151915233308561214d565b6000612710611a33601985613950565b611a3d9190613967565b90506000611a4b8285613989565b90508115611a9157600254611a7990600080516020613c78833981519152906001600160a01b031684612254565b8160036000828254611a8b919061399c565b90915550505b6000611a9d8285613058565b6040805187815260208101839052908101859052909150600080516020613c788339815191529033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060016106d7565b600080600080611aff85613118565b9350611b0a85613344565b9250611b15856133a1565b9150611b2085613584565b90509193509193565b6000546001600160a01b03163314611b535760405162461bcd60e51b81526004016105b7906139af565b6001600160a01b038116611b965760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b60448201526064016105b7565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b6000546001600160a01b03163314611c0a5760405162461bcd60e51b81526004016105b7906139af565b6001600160a01b038116611c585760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016105b7565b611c61816136e2565b50565b600260015403611c865760405162461bcd60e51b81526004016105b7906138e1565b600260015581611ca85760405162461bcd60e51b81526004016105b790613918565b611cdd6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561214d565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6891906139e4565b90506000612710611d7a601984613950565b611d849190613967565b90506000611d928284613989565b90508115611dec57600254611dd4906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684612254565b8160036000828254611de6919061399c565b90915550505b611e257f0000000000000000000000000000000000000000000000000000000000000000600080516020613c9883398151915283612ce1565b60408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e7c57611e7c613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c7883398151915281600181518110611ebe57611ebe613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110611ef957611ef9613a13565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600381518110611f4157611f41613a13565b6001600160a01b0392909216602092830291909101909101526040516370a0823160e01b815233600482015260009073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906370a0823190602401602060405180830381865afa158015611fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd091906139e4565b9050600080516020613c988339815191526001600160a01b0316635c11d7958488853360055442612001919061399c565b6040518663ffffffff1660e01b8152600401612021959493929190613a6d565b600060405180830381600087803b15801561203b57600080fd5b505af115801561204f573d6000803e3d6000fd5b50506040516370a0823160e01b81523360048201526000925083915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906370a0823190602401602060405180830381865afa1580156120a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cb91906139e4565b6120d59190613989565b9050868110156120f75760405162461bcd60e51b81526004016105b790613aa9565b604080518981526020810183905290810186905273cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b3240906060016112a0565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092018352602080830180516001600160e01b03166323b872dd60e01b1790528351808501909452601e84527f5361666545524332303a207472616e7366657246726f6d206661696c656400009084015290916000916121e291908816908490613732565b80519091501561224c57808060200190518101906122009190613ad6565b61224c5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c6564000060448201526064016105b7565b505050505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b1790528351808501909452601a84527f5361666545524332303a207472616e73666572206661696c65640000000000009084015290916000916122e191908716908490613732565b80519091501561234b57808060200190518101906122ff9190613ad6565b61234b5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c656400000000000060448201526064016105b7565b5050505050565b600061238173cbb7c0000ab88b473b1f5afd9ef808440eed33bf600080516020613c9883398151915285612ce1565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf816000815181106123cc576123cc613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160018151811061240757612407613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c788339815191528160028151811061244957612449613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160038151811061249d5761249d613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506000600080516020613c988339815191526001600160a01b03166338ed173986868533600554426124ee919061399c565b6040518663ffffffff1660e01b815260040161250e959493929190613a6d565b6000604051808303816000875af115801561252d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125559190810190613af8565b905080600182516125669190613989565b8151811061257657612576613a13565b6020026020010151925050505b92915050565b60008160000361259b57506000919050565b60408051600380825260808201909252600091602082016060803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106125f2576125f2613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c788339815191528160018151811061263457612634613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160028151811061266f5761266f613a13565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020613c988339815191529063d06ca61f906126ba9086908590600401613bb6565b600060405180830381865afa9250505080156126f857506040513d6000823e601f3d908101601f191682016040526126f59190810190613af8565b60015b6127055750600092915050565b8051600314612718575060009392505050565b600061271060045461271061272d9190613989565b8360028151811061274057612740613a13565b60200260200101516127529190613950565b61275c9190613967565b95945050505050565b60008160000361277757506000919050565b60408051600380825260808201909252600091602082016060803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106127ce576127ce613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c788339815191528160018151811061281057612810613a13565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda029138160028151811061266f5761266f613a13565b60008160000361286a57506000919050565b60408051600480825260a08201909252600091602082016080803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106128c1576128c1613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c788339815191528160018151811061290357612903613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160028151811061293e5761293e613a13565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf8160038151811061298657612986613a13565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020613c988339815191529063d06ca61f906129d19086908590600401613bb6565b600060405180830381865afa925050508015612a0f57506040513d6000823e601f3d908101601f19168201604052612a0c9190810190613af8565b60015b612a1c5750600092915050565b8051600414612a2f575060009392505050565b6000612710600454612710612a449190613989565b8360038151811061274057612740613a13565b600081600003612a6957506000919050565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110612abe57612abe613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c7883398151915281600181518110612b0057612b00613a13565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020613c988339815191529063d06ca61f90612b4b9086908590600401613bb6565b600060405180830381865afa925050508015612b8957506040513d6000823e601f3d908101601f19168201604052612b869190810190613af8565b60015b612b965750600092915050565b8051600214612ba9575060009392505050565b6000612710600454612710612bbe9190613989565b8360018151811061274057612740613a13565b6000612c0073833589fcd6edb6e08f4c7c32d4f71b54bda02913600080516020613c9883398151915285612ce1565b604080516003808252608082019092526000916020820160608036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600081518110612c4b57612c4b613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c7883398151915281600181518110612c8d57612c8d613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061249d5761249d613a13565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915190916000918291871690612d3f908590613bf3565b6000604051808303816000865af19150503d8060008114612d7c576040519150601f19603f3d011682016040523d82523d6000602084013e612d81565b606091505b5091509150818015612dab575080511580612dab575080806020019051810190612dab9190613ad6565b61224c57604080516001600160a01b03878116602483015260006044808401919091528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601f84527f5361666545524332303a20726573657420617070726f7665206661696c65640090840152612e39929089169190613732565b50604080516001600160a01b03878116602483015260448083018890528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601c84527f5361666545524332303a2072652d617070726f7665206661696c65640000000090840152612ec1929089169190613732565b50505050505050565b60408051600380825260808201909252600091829190602082016060803683370190505090506006602160991b0181600081518110612f0b57612f0b613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c7883398151915281600181518110612f4d57612f4d613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110612fa157612fa1613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506000600080516020613c988339815191526001600160a01b0316637ff36ab58686853360055442612ff2919061399c565b6040518663ffffffff1660e01b81526004016130119493929190613c0f565b60006040518083038185885af115801561302f573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526125559190810190613af8565b6000613081600080516020613c78833981519152600080516020613c9883398151915285612ce1565b604080516002808252606082018352600092602083019080368337019050509050600080516020613c78833981519152816000815181106130c4576130c4613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061249d5761249d613a13565b60008160000361312a57506000919050565b60408051600380825260808201909252600091602082016060803683370190505090506006602160991b018160008151811061316857613168613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c78833981519152816001815181106131aa576131aa613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106131fe576131fe613a13565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b8152600080516020613c9883398151915290631f00ca74906132499086908590600401613bb6565b600060405180830381865afa92505050801561328757506040513d6000823e601f3d908101601f191682016040526132849190810190613af8565b60015b6132945750600092915050565b805160031415806132bf5750806000815181106132b3576132b3613a13565b60200260200101516000145b156132ce575060009392505050565b60006132dd6019612710613989565b612710836000815181106132f3576132f3613a13565b60200260200101516133059190613950565b61330f9190613967565b90506000612710600454612710613326919061399c565b6133309084613950565b61333a9190613967565b9695505050505050565b60008160000361335657506000919050565b604080516003808252608082019092526000916020820160608036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda029138160008151811061316857613168613a13565b6000816000036133b357506000919050565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf816000815181106133fe576133fe613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160018151811061343957613439613a13565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020613c788339815191528160028151811061347b5761347b613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816003815181106134cf576134cf613a13565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b8152600080516020613c9883398151915290631f00ca749061351a9086908590600401613bb6565b600060405180830381865afa92505050801561355857506040513d6000823e601f3d908101601f191682016040526135559190810190613af8565b60015b6135655750600092915050565b805160041415806132bf5750806000815181106132b3576132b3613a13565b60008160000361359657506000919050565b604080516002808252606082018352600092602083019080368337019050509050600080516020613c78833981519152816000815181106135d9576135d9613a13565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061362d5761362d613a13565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b8152600080516020613c9883398151915290631f00ca74906136789086908590600401613bb6565b600060405180830381865afa9250505080156136b657506040513d6000823e601f3d908101601f191682016040526136b39190810190613af8565b60015b6136c35750600092915050565b805160021415806132bf5750806000815181106132b3576132b3613a13565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600080856001600160a01b03168560405161374f9190613bf3565b6000604051808303816000865af19150503d806000811461378c576040519150601f19603f3d011682016040523d82523d6000602084013e613791565b606091505b509150915061333a868383876060831561380c578251600003613805576001600160a01b0385163b6138055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105b7565b5081613836565b82511561381c5782518084602001fd5b8160405162461bcd60e51b81526004016105b79190613c44565b949350505050565b6000806040838503121561385157600080fd5b50508035926020909101359150565b60006020828403121561387257600080fd5b5035919050565b80356001600160a01b038116811461389057600080fd5b919050565b600080604083850312156138a857600080fd5b6138b183613879565b946020939093013593505050565b6000602082840312156138d157600080fd5b6138da82613879565b9392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600890820152670416d6f756e743d360c41b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176125835761258361393a565b60008261398457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156125835761258361393a565b808201808211156125835761258361393a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156139f657600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015613a625781516001600160a01b031687529582019590820190600101613a3d565b509495945050505050565b85815284602082015260a060408201526000613a8c60a0830186613a29565b6001600160a01b0394909416606083015250608001529392505050565b602080825260139082015272125b9cdd59999a58da595b9d081bdd5d1c1d5d606a1b604082015260600190565b600060208284031215613ae857600080fd5b815180151581146138da57600080fd5b60006020808385031215613b0b57600080fd5b825167ffffffffffffffff80821115613b2357600080fd5b818501915085601f830112613b3757600080fd5b815181811115613b4957613b496139fd565b8060051b604051601f19603f83011681018181108582111715613b6e57613b6e6139fd565b604052918252848201925083810185019188831115613b8c57600080fd5b938501935b82851015613baa57845184529385019392850192613b91565b98975050505050505050565b8281526040602082015260006138366040830184613a29565b60005b83811015613bea578181015183820152602001613bd2565b50506000910152565b60008251613c05818460208701613bcf565b9190910192915050565b848152608060208201526000613c286080830186613a29565b6001600160a01b03949094166040830152506060015292915050565b6020815260008251806020840152613c63816040850160208701613bcf565b601f01601f1916919091016040019291505056fe0000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24a2646970667358221220e367f128102b75e6b70474fa75deb12ed98be0d0cf4f91ba1e4560c63170752264736f6c634300081300330000000000000000000000000e6214f42992683a9177ce65d022f163d7bbd1d2000000000000000000000000ee0b91a41eb1faef101cc4ce3722499a7276f6bd