0 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
0x60a06040526001805561012c60045561012c6005553480156200002157600080fd5b5060405162003db938038062003db983398101604081905262000044916200027b565b6200004f336200020e565b6001600160a01b038216620000955760405162461bcd60e51b8152602060048201526007602482015266054524956493d360cc1b60448201526064015b60405180910390fd5b6001600160a01b038116620000da5760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b60448201526064016200008c565b6001600160a01b03828116608052600280546001600160a01b031916918316919091179055604080516315ab88c960e31b8152905173420000000000000000000000000000000000000691734752ba5dbc23f44d87826276bf6fd6b1c372ad249163ad5c4648916004808201926020929091908290030181865afa15801562000167573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018d9190620002b3565b6001600160a01b031614620001d25760405162461bcd60e51b815260206004820152600a6024820152690aee4dedcce40ae8aa8960b31b60448201526064016200008c565b6040516001600160a01b038216907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050620002d8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200027657600080fd5b919050565b600080604083850312156200028f57600080fd5b6200029a836200025e565b9150620002aa602084016200025e565b90509250929050565b600060208284031215620002c657600080fd5b620002d1826200025e565b9392505050565b6080516139d0620003e96000396000818161047301528181610a0f01528181610a9101528181610adb01528181610b9301528181610d7201528181610df401528181610e3e01528181610ef601528181611264015281816112e601528181611330015281816113e8015281816117890152818161180b015281816118550152818161190d01528181611cd101528181611e2601528181612002015281816120f5015281816122f2015281816125150152818161254e015281816125a7015281816126ae015281816127050152818161281e0152818161290e0152818161296701528181612ab101528181612b9701528181612e6801528181612fc601528181613104015261315d01526139d06000f3fe6080604052600436106101c65760003560e01c806394dc9cf3116100f7578063e062d56711610095578063f2fde38b11610064578063f2fde38b14610517578063f73f518e14610537578063fa56927414610557578063fd2ae5901461057f57600080fd5b8063e062d56714610495578063e5bdb858146104b5578063ec17afd0146104d7578063f0f44260146104f757600080fd5b8063bf333f2c116100d1578063bf333f2c14610414578063c28399ef14610429578063d82649201461043f578063dba597111461046157600080fd5b806394dc9cf3146103c15780639e252f00146103d4578063b116b42f146103f457600080fd5b806337d277d41161016457806361d027b31161013e57806361d027b31461034657806368f4a786146103665780637b3c3fb41461037b5780638da5cb5b146103a357600080fd5b806337d277d4146102dd5780634012c7fd1461031057806360c6d8ae1461033057600080fd5b80631a895884116101a05780631a89588414610259578063249d39e91461027957806330f530571461029d57806333f3d628146102bd57600080fd5b8063093b9ee1146101d2578063110eb107146101f4578063166e11b71461023957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed36600461354e565b610595565b005b34801561020057600080fd5b5061021461020f366004613570565b6106ea565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561024557600080fd5b506101f261025436600461354e565b61076f565b34801561026557600080fd5b506101f261027436600461354e565b6108ac565b34801561028557600080fd5b5061028f61271081565b604051908152602001610230565b3480156102a957600080fd5b506101f26102b836600461354e565b6109b3565b3480156102c957600080fd5b506101f26102d83660046135a5565b610cc2565b3480156102e957600080fd5b506102f86006602160991b0181565b6040516001600160a01b039091168152602001610230565b34801561031c57600080fd5b506101f261032b36600461354e565b610d16565b34801561033c57600080fd5b5061028f60035481565b34801561035257600080fd5b506002546102f8906001600160a01b031681565b34801561037257600080fd5b5061028f606481565b34801561038757600080fd5b506102f873cbb7c0000ab88b473b1f5afd9ef808440eed33bf81565b3480156103af57600080fd5b506000546001600160a01b03166102f8565b6101f26103cf366004613570565b610fa7565b3480156103e057600080fd5b506101f26103ef366004613570565b611147565b34801561040057600080fd5b506101f261040f36600461354e565b611208565b34801561042057600080fd5b5061028f601981565b34801561043557600080fd5b5061028f60055481565b34801561044b57600080fd5b506102f860008051602061397b83398151915281565b34801561046d57600080fd5b506102f87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a157600080fd5b506101f26104b036600461354e565b61148e565b3480156104c157600080fd5b506102f860008051602061395b83398151915281565b3480156104e357600080fd5b506102146104f2366004613570565b6115b9565b34801561050357600080fd5b506101f26105123660046135cf565b6115f2565b34801561052357600080fd5b506101f26105323660046135cf565b6116a9565b34801561054357600080fd5b506101f261055236600461354e565b61172d565b34801561056357600080fd5b506102f873833589fcd6edb6e08f4c7c32d4f71b54bda0291381565b34801561058b57600080fd5b5061028f60045481565b6002600154036105c05760405162461bcd60e51b81526004016105b7906135f1565b60405180910390fd5b6002600155816105e25760405162461bcd60e51b81526004016105b790613628565b61060273cbb7c0000ab88b473b1f5afd9ef808440eed33bf3330856119b3565b6000612710610612601985613660565b61061c9190613677565b9050600061062a8285613699565b905081156106765760025461065e9073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906001600160a01b031684611aba565b816003600082825461067091906136ac565b90915550505b60006106828285611bb8565b604080518781526020810183905290810185905290915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060015b60405180910390a3505060018055505050565b6000808080806127106106fe606488613660565b6107089190613677565b6107129087613699565b90506000612710610724601984613660565b61072e9190613677565b6107389083613699565b905061074381611def565b955061074e81611fcb565b9450610759816120be565b9350610764816122bd565b925050509193509193565b6002600154036107915760405162461bcd60e51b81526004016105b7906135f1565b6002600155816107b35760405162461bcd60e51b81526004016105b790613628565b6107d373833589fcd6edb6e08f4c7c32d4f71b54bda029133330856119b3565b60006127106107e3601985613660565b6107ed9190613677565b905060006107fb8285613699565b905081156108475760025461082f9073833589fcd6edb6e08f4c7c32d4f71b54bda02913906001600160a01b031684611aba565b816003600082825461084191906136ac565b90915550505b60006108538285612437565b604080518781526020810183905290810185905290915073833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060016106d7565b6000546001600160a01b031633146108d65760405162461bcd60e51b81526004016105b7906136bf565b6107d082111561091a5760405162461bcd60e51b815260206004820152600f60248201526e0c4eacccccae440e8dede40d0d2ced608b1b60448201526064016105b7565b603c811015801561092d5750610e108111155b61096c5760405162461bcd60e51b815260206004820152601060248201526f191958591b1a5b99481a5b9d985b1a5960821b60448201526064016105b7565b6004829055600581905560408051838152602081018390527f14045f4a3d16cb34daef42e409444e1d49619beb63723564f273e85dd7601892910160405180910390a15050565b6002600154036109d55760405162461bcd60e51b81526004016105b7906135f1565b6002600155816109f75760405162461bcd60e51b81526004016105b790613628565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8291906136f4565b9050610ab96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866119b3565b6040516370a0823160e01b815230600482015260009082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906136f4565b610b509190613699565b90506000612710610b62601984613660565b610b6c9190613677565b90506000610b7a8284613699565b90508115610bd457600254610bbc906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684611aba565b8160036000828254610bce91906136ac565b90915550505b6000610be08287612547565b604051909150600090339083908381818185875af1925050503d8060008114610c25576040519150601f19603f3d011682016040523d82523d6000602084013e610c2a565b606091505b5050905080610c715760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016105b7565b604080518981526020810184905290810185905233907fb956d99dd0c259c3d9d420a89b7dfe23069187ea2a91ed70412f4788a52d77b29060600160405180910390a2505060018055505050505050565b6000546001600160a01b03163314610cec5760405162461bcd60e51b81526004016105b7906136bf565b610d12610d016000546001600160a01b031690565b6001600160a01b0384169083611aba565b5050565b600260015403610d385760405162461bcd60e51b81526004016105b7906135f1565b600260015581610d5a5760405162461bcd60e51b81526004016105b790613628565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de591906136f4565b9050610e1c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866119b3565b6040516370a0823160e01b815230600482015260009082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea991906136f4565b610eb39190613699565b90506000612710610ec5601984613660565b610ecf9190613677565b90506000610edd8284613699565b90508115610f3757600254610f1f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684611aba565b8160036000828254610f3191906136ac565b90915550505b6000610f4382876126a7565b604080518981526020810183905290810185905290915060008051602061395b8339815191529033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b3240906060015b60405180910390a35050600180555050505050565b600260015403610fc95760405162461bcd60e51b81526004016105b7906135f1565b6002600155346110095760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016105b7565b6000612710611019601934613660565b6110239190613677565b905060006110318234613699565b905081156110eb576002546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611086576040519150601f19603f3d011682016040523d82523d6000602084013e61108b565b606091505b50509050806110d25760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b60448201526064016105b7565b82600360008282546110e491906136ac565b9091555050505b60006110f78285612779565b604080513481526020810183905290810185905290915033907f8e3075c3ab83d55decf7f0bcc1b3893764b4bb37388fdd5d217991eb056bf0e29060600160405180910390a25050600180555050565b6000546001600160a01b031633146111715760405162461bcd60e51b81526004016105b7906136bf565b600080546040516001600160a01b039091169083908381818185875af1925050503d80600081146111be576040519150601f19603f3d011682016040523d82523d6000602084013e6111c3565b606091505b5050905080610d125760405162461bcd60e51b8152602060048201526011602482015270115512081c995cd8dd594819985a5b1959607a1b60448201526064016105b7565b60026001540361122a5760405162461bcd60e51b81526004016105b7906135f1565b60026001558161124c5760405162461bcd60e51b81526004016105b790613628565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d791906136f4565b905061130e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866119b3565b6040516370a0823160e01b815230600482015260009082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b91906136f4565b6113a59190613699565b905060006127106113b7601984613660565b6113c19190613677565b905060006113cf8284613699565b9050811561142957600254611411906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684611aba565b816003600082825461142391906136ac565b90915550505b60006114358287612907565b604080518981526020810183905290810185905290915073833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b324090606001610f92565b6002600154036114b05760405162461bcd60e51b81526004016105b7906135f1565b6002600155816114d25760405162461bcd60e51b81526004016105b790613628565b6114ec60008051602061395b8339815191523330856119b3565b60006127106114fc601985613660565b6115069190613677565b905060006115148285613699565b9050811561155a576002546115429060008051602061395b833981519152906001600160a01b031684611aba565b816003600082825461155491906136ac565b90915550505b60006115668285612a23565b604080518781526020810183905290810185905290915060008051602061395b8339815191529033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060016106d7565b6000806000806115c885612ae3565b93506115d385612d0f565b92506115de85612d6c565b91506115e985612f4f565b90509193509193565b6000546001600160a01b0316331461161c5760405162461bcd60e51b81526004016105b7906136bf565b6001600160a01b03811661165f5760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b60448201526064016105b7565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b6000546001600160a01b031633146116d35760405162461bcd60e51b81526004016105b7906136bf565b6001600160a01b0381166117215760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016105b7565b61172a816130ad565b50565b60026001540361174f5760405162461bcd60e51b81526004016105b7906135f1565b6002600155816117715760405162461bcd60e51b81526004016105b790613628565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156117d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fc91906136f4565b90506118336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866119b3565b6040516370a0823160e01b815230600482015260009082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561189c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c091906136f4565b6118ca9190613699565b905060006127106118dc601984613660565b6118e69190613677565b905060006118f48284613699565b9050811561194e57600254611936906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684611aba565b816003600082825461194891906136ac565b90915550505b600061195a82876130fd565b604080518981526020810183905290810185905290915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b324090606001610f92565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092018352602080830180516001600160e01b03166323b872dd60e01b1790528351808501909452601e84527f5361666545524332303a207472616e7366657246726f6d206661696c65640000908401529091600091611a4891908816908490613254565b805190915015611ab25780806020019051810190611a66919061370d565b611ab25760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c6564000060448201526064016105b7565b505050505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b1790528351808501909452601a84527f5361666545524332303a207472616e73666572206661696c6564000000000000908401529091600091611b4791908716908490613254565b805190915015611bb15780806020019051810190611b65919061370d565b611bb15760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c656400000000000060448201526064016105b7565b5050505050565b6000611be773cbb7c0000ab88b473b1f5afd9ef808440eed33bf60008051602061397b833981519152856132c4565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600081518110611c3257611c32613745565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600181518110611c6d57611c6d613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b83398151915281600281518110611caf57611caf613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110611d0357611d03613745565b60200260200101906001600160a01b031690816001600160a01b031681525050600060008051602061397b8339815191526001600160a01b03166338ed17398686853360055442611d5491906136ac565b6040518663ffffffff1660e01b8152600401611d7495949392919061379f565b6000604051808303816000875af1158015611d93573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dbb91908101906137db565b90508060018251611dcc9190613699565b81518110611ddc57611ddc613745565b6020026020010151925050505b92915050565b600081600003611e0157506000919050565b60408051600380825260808201909252600091602082016060803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e5857611e58613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b83398151915281600181518110611e9a57611e9a613745565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110611ed557611ed5613745565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b815260008051602061397b8339815191529063d06ca61f90611f209086908590600401613899565b600060405180830381865afa925050508015611f5e57506040513d6000823e601f3d908101601f19168201604052611f5b91908101906137db565b60015b611f6b5750600092915050565b8051600314611f7e575060009392505050565b6000612710600454612710611f939190613699565b83600281518110611fa657611fa6613745565b6020026020010151611fb89190613660565b611fc29190613677565b95945050505050565b600081600003611fdd57506000919050565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061203457612034613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b8339815191528160018151811061207657612076613745565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600281518110611ed557611ed5613745565b6000816000036120d057506000919050565b60408051600480825260a08201909252600091602082016080803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061212757612127613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b8339815191528160018151811061216957612169613745565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b01816002815181106121a4576121a4613745565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf816003815181106121ec576121ec613745565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b815260008051602061397b8339815191529063d06ca61f906122379086908590600401613899565b600060405180830381865afa92505050801561227557506040513d6000823e601f3d908101601f1916820160405261227291908101906137db565b60015b6122825750600092915050565b8051600414612295575060009392505050565b60006127106004546127106122aa9190613699565b83600381518110611fa657611fa6613745565b6000816000036122cf57506000919050565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061232457612324613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b8339815191528160018151811061236657612366613745565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b815260008051602061397b8339815191529063d06ca61f906123b19086908590600401613899565b600060405180830381865afa9250505080156123ef57506040513d6000823e601f3d908101601f191682016040526123ec91908101906137db565b60015b6123fc5750600092915050565b805160021461240f575060009392505050565b60006127106004546127106124249190613699565b83600181518110611fa657611fa6613745565b600061246673833589fcd6edb6e08f4c7c32d4f71b54bda0291360008051602061397b833981519152856132c4565b604080516003808252608082019092526000916020820160608036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda02913816000815181106124b1576124b1613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b833981519152816001815181106124f3576124f3613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611d0357611d03613745565b60006125827f000000000000000000000000000000000000000000000000000000000000000060008051602061397b833981519152856132c4565b60408051600380825260808201909252600091602082016060803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106125d9576125d9613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b8339815191528160018151811061261b5761261b613745565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160028151811061265657612656613745565b60200260200101906001600160a01b031690816001600160a01b031681525050600060008051602061397b8339815191526001600160a01b03166318cbafe58686853060055442611d5491906136ac565b60006126e27f000000000000000000000000000000000000000000000000000000000000000060008051602061397b833981519152856132c4565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061273757612737613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b83398151915281600181518110611d0357611d03613745565b60408051600380825260808201909252600091829190602082016060803683370190505090506006602160991b01816000815181106127ba576127ba613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b833981519152816001815181106127fc576127fc613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061285057612850613745565b60200260200101906001600160a01b031690816001600160a01b031681525050600060008051602061397b8339815191526001600160a01b0316637ff36ab586868533600554426128a191906136ac565b6040518663ffffffff1660e01b81526004016128c094939291906138b2565b60006040518083038185885af11580156128de573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611dbb91908101906137db565b60006129427f000000000000000000000000000000000000000000000000000000000000000060008051602061397b833981519152856132c4565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061299957612999613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b833981519152816001815181106129db576129db613745565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600281518110611d0357611d03613745565b6000612a4c60008051602061395b83398151915260008051602061397b833981519152856132c4565b60408051600280825260608201835260009260208301908036833701905050905060008051602061395b83398151915281600081518110612a8f57612a8f613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611d0357611d03613745565b600081600003612af557506000919050565b60408051600380825260808201909252600091602082016060803683370190505090506006602160991b0181600081518110612b3357612b33613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b83398151915281600181518110612b7557612b75613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110612bc957612bc9613745565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b815260008051602061397b83398151915290631f00ca7490612c149086908590600401613899565b600060405180830381865afa925050508015612c5257506040513d6000823e601f3d908101601f19168201604052612c4f91908101906137db565b60015b612c5f5750600092915050565b80516003141580612c8a575080600081518110612c7e57612c7e613745565b60200260200101516000145b15612c99575060009392505050565b6000612ca86019612710613699565b61271083600081518110612cbe57612cbe613745565b6020026020010151612cd09190613660565b612cda9190613677565b90506000612710600454612710612cf191906136ac565b612cfb9084613660565b612d059190613677565b9695505050505050565b600081600003612d2157506000919050565b604080516003808252608082019092526000916020820160608036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600081518110612b3357612b33613745565b600081600003612d7e57506000919050565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600081518110612dc957612dc9613745565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600181518110612e0457612e04613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b83398151915281600281518110612e4657612e46613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110612e9a57612e9a613745565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b815260008051602061397b83398151915290631f00ca7490612ee59086908590600401613899565b600060405180830381865afa925050508015612f2357506040513d6000823e601f3d908101601f19168201604052612f2091908101906137db565b60015b612f305750600092915050565b80516004141580612c8a575080600081518110612c7e57612c7e613745565b600081600003612f6157506000919050565b60408051600280825260608201835260009260208301908036833701905050905060008051602061395b83398151915281600081518110612fa457612fa4613745565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612ff857612ff8613745565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b815260008051602061397b83398151915290631f00ca74906130439086908590600401613899565b600060405180830381865afa92505050801561308157506040513d6000823e601f3d908101601f1916820160405261307e91908101906137db565b60015b61308e5750600092915050565b80516002141580612c8a575080600081518110612c7e57612c7e613745565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006131387f000000000000000000000000000000000000000000000000000000000000000060008051602061397b833981519152856132c4565b60408051600480825260a08201909252600091602082016080803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061318f5761318f613745565b60200260200101906001600160a01b031690816001600160a01b03168152505060008051602061395b833981519152816001815181106131d1576131d1613745565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160028151811061320c5761320c613745565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600381518110611d0357611d03613745565b6060600080856001600160a01b031685604051613271919061390b565b6000604051808303816000865af19150503d80600081146132ae576040519150601f19603f3d011682016040523d82523d6000602084013e6132b3565b606091505b5091509150612d05868383876134ad565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291519091600091829187169061332290859061390b565b6000604051808303816000865af19150503d806000811461335f576040519150601f19603f3d011682016040523d82523d6000602084013e613364565b606091505b509150915081801561338e57508051158061338e57508080602001905181019061338e919061370d565b611ab257604080516001600160a01b03878116602483015260006044808401919091528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601f84527f5361666545524332303a20726573657420617070726f7665206661696c6564009084015261341c929089169190613254565b50604080516001600160a01b03878116602483015260448083018890528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601c84527f5361666545524332303a2072652d617070726f7665206661696c656400000000908401526134a4929089169190613254565b50505050505050565b6060831561351c578251600003613515576001600160a01b0385163b6135155760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105b7565b5081613546565b82511561352c5782518084602001fd5b8160405162461bcd60e51b81526004016105b79190613927565b949350505050565b6000806040838503121561356157600080fd5b50508035926020909101359150565b60006020828403121561358257600080fd5b5035919050565b80356001600160a01b03811681146135a057600080fd5b919050565b600080604083850312156135b857600080fd5b6135c183613589565b946020939093013593505050565b6000602082840312156135e157600080fd5b6135ea82613589565b9392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600890820152670416d6f756e743d360c41b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611de957611de961364a565b60008261369457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115611de957611de961364a565b80820180821115611de957611de961364a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561370657600080fd5b5051919050565b60006020828403121561371f57600080fd5b815180151581146135ea57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156137945781516001600160a01b03168752958201959082019060010161376f565b509495945050505050565b85815284602082015260a0604082015260006137be60a083018661375b565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156137ee57600080fd5b825167ffffffffffffffff8082111561380657600080fd5b818501915085601f83011261381a57600080fd5b81518181111561382c5761382c61372f565b8060051b604051601f19603f830116810181811085821117156138515761385161372f565b60405291825284820192508381018501918883111561386f57600080fd5b938501935b8285101561388d57845184529385019392850192613874565b98975050505050505050565b828152604060208201526000613546604083018461375b565b8481526080602082015260006138cb608083018661375b565b6001600160a01b03949094166040830152506060015292915050565b60005b838110156139025781810151838201526020016138ea565b50506000910152565b6000825161391d8184602087016138e7565b9190910192915050565b60208152600082518060208401526139468160408501602087016138e7565b601f01601f1916919091016040019291505056fe0000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24a2646970667358221220a8335825d0292d8e98e18b32ec733f3a79a17f595e772691efdcb2e19667468564736f6c634300081300330000000000000000000000000e6214f42992683a9177ce65d022f163d7bbd1d2000000000000000000000000ee0b91a41eb1faef101cc4ce3722499a7276f6bd