902 txs
2k calls
constructor
constructor(address w, address fwd)
functions
BASIS_POINTS
viewfunction BASIS_POINTS() view returns (uint256)
burnFee
viewfunction burnFee() view returns (uint256)
burnReceiver
viewfunction burnReceiver() view returns (address)
convertFee
viewfunction convertFee() view returns (uint256)
democrit
viewfunction democrit() view returns (address)
ETH_TOKEN
viewfunction ETH_TOKEN() view returns (address)
feeReceiver
viewfunction feeReceiver() view returns (address)
isReady
viewfunction isReady() view returns (bool)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
MAX_FEE
viewfunction MAX_FEE() view returns (uint256)
owner
viewfunction owner() view returns (address)
quoteMarketBuy
viewfunction quoteMarketBuy(address inputToken, uint256 wchiRequired, bytes swapData) view returns (uint256)
quoteMarketSell
viewfunction quoteMarketSell(address outputToken, uint256 wchiReceived, bytes swapData) view returns (uint256)
slippageTolerance
viewfunction slippageTolerance() view returns (uint256)
swapper
viewfunction swapper() view returns (address)
wchi
viewfunction wchi() view returns (address)
weth
viewfunction weth() view returns (address)
configure
nonpayablefunction configure(address sw, uint256 bf, address burnRecv, uint256 cf, address feeRecv, uint256 s)
linkDemocrit
nonpayablefunction linkDemocrit(address dem)
marketBuy
payablefunction marketBuy(address inputToken, uint256 inputAmount, uint256 wchiAmount, bytes swapData, tuple[] orders) payable
marketSell
nonpayablefunction marketSell(address outputToken, uint256 outputAmount, uint256 wchiAmount, bytes swapData, tuple[] orders)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Configured
event Configured(address swapper, uint256 burnFee, address burnReceiver, uint256 convertFee, address feeReceiver, uint256 slippageTolerance)
DemocritLinked
event DemocritLinked(address democrit, address wchi)
MarketBuy
event MarketBuy(address inputToken, uint256 inputAmount, uint256 wchiAmount, uint256 actualBurn, uint256 actualFee)
MarketSell
event MarketSell(address outputToken, uint256 outputAmount, uint256 wchiAmount, uint256 actualBurn, uint256 actualFee)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x60c060405234801561001057600080fd5b50604051612d75380380612d7583398101604081905261002f916100fc565b6001600160a01b03811660805261004c61004761005e565b61006d565b506001600160a01b031660a052610136565b60006100686100bd565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6080516000906001600160a01b031633036100df575060131936013560601c90565b503390565b6001600160a01b03811681146100f957600080fd5b50565b6000806040838503121561010f57600080fd5b825161011a816100e4565b602084015190925061012b816100e4565b809150509250929050565b60805160a051612be961018c60003960008181610194015281816102a00152818161096601528181610f4a015281816116f10152818161171401526117c501526000818161031f01526124b50152612be96000f3fe6080604052600436106101845760003560e01c8063a094a031116100d6578063da1a7be91161007f578063f60a121011610059578063f60a1210146104d0578063fce589d8146104e3578063ffa18b4d146104f957600080fd5b8063da1a7be91461047a578063e1f1c4a71461049a578063f2fde38b146104b057600080fd5b8063bc063e1a116100b0578063bc063e1a1461042f578063cf65a69714610444578063d03153aa1461046457600080fd5b8063a094a031146103da578063b3f00674146103ef578063ba4fd8cc1461040f57600080fd5b8063439a7da711610138578063715018a611610112578063715018a61461038757806385b4478f1461039c5780638da5cb5b146103bc57600080fd5b8063439a7da7146102e2578063572b6c051461030257806358bc83371461035f57600080fd5b80632fd1db25116101695780632fd1db251461026a5780633fc8cef31461028e578063416d982f146102c257600080fd5b80631a9c7f861461020d5780632b3297f91461022d57600080fd5b3661020857336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102065760405162461bcd60e51b815260206004820152601d60248201527f7061796d656e74206973206e6f742045544820756e7772617070696e6700000060448201526064015b60405180910390fd5b005b600080fd5b34801561021957600080fd5b5061020661022836600461250a565b610519565b34801561023957600080fd5b5060035461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027657600080fd5b5061028060065481565b604051908152602001610261565b34801561029a57600080fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ce57600080fd5b506102066102dd3660046125ff565b6108de565b3480156102ee57600080fd5b5060025461024d906001600160a01b031681565b34801561030e57600080fd5b5061034f61031d36600461269a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6040519015158152602001610261565b34801561036b57600080fd5b5061024d73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561039357600080fd5b506102066112ce565b3480156103a857600080fd5b5060015461024d906001600160a01b031681565b3480156103c857600080fd5b506000546001600160a01b031661024d565b3480156103e657600080fd5b5061034f6112e2565b3480156103fb57600080fd5b5060075461024d906001600160a01b031681565b34801561041b57600080fd5b5061028061042a3660046126be565b611317565b34801561043b57600080fd5b50610280611436565b34801561045057600080fd5b5061028061045f3660046126be565b611446565b34801561047057600080fd5b5061028060085481565b34801561048657600080fd5b5060055461024d906001600160a01b031681565b3480156104a657600080fd5b5061028061271081565b3480156104bc57600080fd5b506102066104cb36600461269a565b61155a565b6102066104de3660046125ff565b6115ea565b3480156104ef57600080fd5b5061028060045481565b34801561050557600080fd5b5061020661051436600461269a565b611faf565b610521612391565b6001546001600160a01b03166105795760405162461bcd60e51b815260206004820152601a60248201527f44656d6f63726974206973206e6f74206c696e6b65642079657400000000000060448201526064016101fd565b6001600160a01b0386161561066757600254604080517f439a7da700000000000000000000000000000000000000000000000000000000815290516001600160a01b039283169289169163439a7da79160048083019260209291908290030181865afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610611919061271a565b6001600160a01b0316146106675760405162461bcd60e51b815260206004820152601460248201527f5743484920746f6b656e73206d69736d6174636800000000000000000000000060448201526064016101fd565b610674601461271061274d565b8511156106c35760405162461bcd60e51b815260206004820152601160248201527f6275726e2066656520746f6f206869676800000000000000000000000000000060448201526064016101fd565b6106d0601461271061274d565b83111561071f5760405162461bcd60e51b815260206004820152601460248201527f636f6e766572742066656520746f6f206869676800000000000000000000000060448201526064016101fd565b8281111561076f5760405162461bcd60e51b815260206004820152601b60248201527f736c69707061676520746f6c6572616e636520746f6f2068696768000000000060448201526064016101fd565b84156107cb576001600160a01b0384166107cb5760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f7669646564000000000000000000000060448201526064016101fd565b8215610827576001600160a01b0382166108275760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f7669646564000000000000000000000060448201526064016101fd565b600380546001600160a01b0388811673ffffffffffffffffffffffffffffffffffffffff19928316811790935560048890556005805488831690841681179091556006879055600780549287169290931682179092556008849055604080519384526020840189905283019190915260608201859052608082015260a081018290527f2fa1bb711daeebf886723d8e045546d6b9da0357d50fd7309b816f47d59ea5f49060c00160405180910390a1505050505050565b6108e66112e2565b61093e5760405162461bcd60e51b815260206004820152602360248201527f74686520636f6e7472616374206973206e6f7420726561647920666f7220737760448201526261707360e81b60648201526084016101fd565b6001600160a01b03871673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015610988577f000000000000000000000000000000000000000000000000000000000000000097505b600061099261240a565b6002546040516370a0823160e01b81526001600160a01b038084166004830152929350600092909116906370a0823190602401602060405180830381865afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a06919061276f565b60015460405191925060009182916001600160a01b0316907fec3459080000000000000000000000000000000000000000000000000000000090610a50908a908a906020016127f7565b60408051601f1981840301815290829052610a70929188906020016128cf565b60408051601f1981840301815290829052610a8a91612935565b6000604051808303816000865af19150503d8060008114610ac7576040519150601f19603f3d011682016040523d82523d6000602084013e610acc565b606091505b50915091508181604051602001610ae39190612951565b60405160208183030381529060405290610b105760405162461bcd60e51b81526004016101fd91906129bc565b506002546040516370a0823160e01b81526001600160a01b03868116600483015260009216906370a0823190602401602060405180830381865afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b80919061276f565b9050610b8c8b856129ef565b8114610c005760405162461bcd60e51b815260206004820152602d60248201527f756e6578706563746564205743484920616d6f756e742072656365697665642060448201527f66726f6d2044656d6f637269740000000000000000000000000000000000000060648201526084016101fd565b5050600554600092506001600160a01b0316159050610d295761271060045489610c2a9190612a02565b610c34919061274d565b6002546005546040516323b872dd60e01b81526001600160a01b03868116600483015291821660248201526044810184905292935016906323b872dd906064016020604051808303816000875af1158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb79190612a19565b610d295760405162461bcd60e51b815260206004820152602860248201527f6661696c656420746f207472616e73666572205743484920746f206275726e2060448201527f726563656976657200000000000000000000000000000000000000000000000060648201526084016101fd565b6000610d35828a612a3b565b6002546003546040516323b872dd60e01b81526001600160a01b03878116600483015291821660248201526044810184905292935016906323b872dd906064016020604051808303816000875af1158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db89190612a19565b610e2a5760405162461bcd60e51b815260206004820152602b60248201527f6661696c656420746f207472616e73666572205743484920746f20737761707060448201527f657220636f6e747261637400000000000000000000000000000000000000000060648201526084016101fd565b6003546040517f27a3267c0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906327a3267c90610e799084908f908d908d90600401612a4e565b600060405180830381600087803b158015610e9357600080fd5b505af1158015610ea7573d6000803e3d6000fd5b50505050831561104f57600354604051631ec81aa160e31b81526001600160a01b038d81166004830152602482018d90523060448301529091169063f640d50890606401600060405180830381600087803b158015610f0557600080fd5b505af1158015610f19573d6000803e3d6000fd5b50506040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018d90527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250632e1a7d4d9150602401600060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b50505050600080846001600160a01b03168c60405160006040518083038185875af1925050503d8060008114610ffe576040519150601f19603f3d011682016040523d82523d6000602084013e611003565b606091505b5091509150818160405160200161101a9190612a81565b604051602081830303815290604052906110475760405162461bcd60e51b81526004016101fd91906129bc565b5050506110be565b600354604051631ec81aa160e31b81526001600160a01b038d81166004830152602482018d905285811660448301529091169063f640d50890606401600060405180830381600087803b1580156110a557600080fd5b505af11580156110b9573d6000803e3d6000fd5b505050505b6007546000906001600160a01b031615611268576003546040516370a0823160e01b81526001600160a01b039182166004820152908d16906370a0823190602401602060405180830381865afa15801561111c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611140919061276f565b905060006008546006546111549190612a3b565b9050612710611163828e612a02565b61116d919061274d565b8210156111bc5760405162461bcd60e51b815260206004820152601160248201527f736c69707061676520746f6f206869676800000000000000000000000000000060448201526064016101fd565b600360009054906101000a90046001600160a01b03166001600160a01b031663f640d5088e84600760009054906101000a90046001600160a01b03166040518463ffffffff1660e01b8152600401611234939291906001600160a01b0393841681526020810192909252909116604082015260600190565b600060405180830381600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b50505050505b604080516001600160a01b038e168152602081018d90529081018b905260608101849052608081018290527f8a1803c0a32b41d1d2a9785c1a8de11944f9e36ef08771f3e37cace86625942a9060a00160405180910390a1505050505050505050505050565b6112d6612391565b6112e06000612419565b565b6001546000906001600160a01b03166112fb5750600090565b6003546001600160a01b03166113115750600090565b50600190565b60006113216112e2565b6113795760405162461bcd60e51b815260206004820152602360248201527f74686520636f6e7472616374206973206e6f7420726561647920666f7220737760448201526261707360e81b60648201526084016101fd565b600061138785600454612476565b6003546040517ffda1c5e70000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b039091169063fda1c5e7906113dc908a9086908a908a90600401612aec565b602060405180830381865afa1580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d919061276f565b905061142b81600654612476565b979650505050505050565b611443601461271061274d565b81565b60006114506112e2565b6114a85760405162461bcd60e51b815260206004820152602360248201527f74686520636f6e7472616374206973206e6f7420726561647920666f7220737760448201526261707360e81b60648201526084016101fd565b60006114b6856004546124a2565b6003546040517fd278d7310000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b039091169063d278d7319061150b9085908b908a908a90600401612a4e565b602060405180830381865afa158015611528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154c919061276f565b905061142b816006546124a2565b611562612391565b6001600160a01b0381166115de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101fd565b6115e781612419565b50565b6115f26112e2565b61164a5760405162461bcd60e51b815260206004820152602360248201527f74686520636f6e7472616374206973206e6f7420726561647920666f7220737760448201526261707360e81b60648201526084016101fd565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b038816016118af578534146116ef5760405162461bcd60e51b815260206004820152602360248201527f7061796d656e7420646f6573206e6f74206d6174636820696e70757420616d6f60448201527f756e74000000000000000000000000000000000000000000000000000000000060648201526084016101fd565b7f000000000000000000000000000000000000000000000000000000000000000096507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b15801561176d57600080fd5b505af1158015611781573d6000803e3d6000fd5b50506003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018b90527f0000000000000000000000000000000000000000000000000000000000000000909116935063a9059cbb925060440190506020604051808303816000875af1158015611814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118389190612a19565b6118aa5760405162461bcd60e51b815260206004820152602260248201527f6661696c656420746f207472616e73666572205745544820746f20737761707060448201527f657200000000000000000000000000000000000000000000000000000000000060648201526084016101fd565b611a3e565b34156119235760405162461bcd60e51b815260206004820152602960248201527f7061796d656e74206f6e6c7920616c6c6f77656420666f72206e61746976652060448201527f45544820696e707574000000000000000000000000000000000000000000000060648201526084016101fd565b866001600160a01b03166323b872dd61193a61240a565b60035460405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03928316600482015291166024820152604481018990526064016020604051808303816000875af11580156119a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cd9190612a19565b611a3e5760405162461bcd60e51b8152602060048201526024808201527f7472616e7366657272696e672074686520696e70757420746f6b656e7320666160448201527f696c65640000000000000000000000000000000000000000000000000000000060648201526084016101fd565b6000611a4c86600454612476565b90506000611a5a8783612a3b565b6003546040517fe2367e9f0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e2367e9f90611aaa908c9086908b908b90600401612aec565b600060405180830381600087803b158015611ac457600080fd5b505af1158015611ad8573d6000803e3d6000fd5b5050600354600254604051631ec81aa160e31b81526001600160a01b039182166004820152602481018c90523060448201529116925063f640d5089150606401600060405180830381600087803b158015611b3257600080fd5b505af1158015611b46573d6000803e3d6000fd5b5050600154604051600093508392506001600160a01b03909116907f40b29e380000000000000000000000000000000000000000000000000000000090611b939089908990602001612b15565b60408051601f1981840301815290829052611bb3929130906020016128cf565b60408051601f1981840301815290829052611bcd91612935565b6000604051808303816000865af19150503d8060008114611c0a576040519150601f19603f3d011682016040523d82523d6000602084013e611c0f565b606091505b50915091508181604051602001611c269190612951565b60405160208183030381529060405290611c535760405162461bcd60e51b81526004016101fd91906129bc565b506005546000906001600160a01b031615611d9e576002546003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd8919061276f565b905083811015611d2a5760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820574348492066656520617661696c61626c6500000060448201526064016101fd565b600354600254600554604051631ec81aa160e31b81526001600160a01b03928316600482015260248101859052908216604482015291169063f640d50890606401600060405180830381600087803b158015611d8557600080fd5b505af1158015611d99573d6000803e3d6000fd5b505050505b6007546000906001600160a01b031615611f48576003546040516370a0823160e01b81526001600160a01b039182166004820152908e16906370a0823190602401602060405180830381865afa158015611dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e20919061276f565b90506000600854600654611e349190612a3b565b9050612710611e43828f612a02565b611e4d919061274d565b821015611e9c5760405162461bcd60e51b815260206004820152601160248201527f736c69707061676520746f6f206869676800000000000000000000000000000060448201526064016101fd565b600360009054906101000a90046001600160a01b03166001600160a01b031663f640d5088f84600760009054906101000a90046001600160a01b03166040518463ffffffff1660e01b8152600401611f14939291906001600160a01b0393841681526020810192909252909116604082015260600190565b600060405180830381600087803b158015611f2e57600080fd5b505af1158015611f42573d6000803e3d6000fd5b50505050505b604080516001600160a01b038f168152602081018e90529081018c905260608101839052608081018290527f64cc4fe16c02ad83cc7cef979438c326a32c6984201d43cc67efb86ba07c7e8b9060a00160405180910390a150505050505050505050505050565b611fb7612391565b6001600160a01b03811661200d5760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f7669646564000000000000000000000060448201526064016101fd565b6001546001600160a01b0316156120665760405162461bcd60e51b815260206004820152601a60248201527f44656d6f6372697420697320616c7265616479206c696e6b656400000000000060448201526064016101fd565b306001600160a01b0316816001600160a01b03166387b709956040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d2919061271a565b6001600160a01b03161461214e5760405162461bcd60e51b815260206004820152602b60248201527f44656d6f6372697420697320736574207570207769746820616e6f746865722060448201527f4175746f436f6e7665727400000000000000000000000000000000000000000060648201526084016101fd565b6000816001600160a01b0316633a7684636040518163ffffffff1660e01b8152600401602060405180830381865afa15801561218e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b2919061271a565b6001600160a01b031663439a7da76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612213919061271a565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260001960248301529192509082169063095ea7b3906044016020604051808303816000875af1158015612280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a49190612a19565b6123165760405162461bcd60e51b815260206004820152602260248201527f6661696c656420746f20617070726f76652057434849206f6e2044656d6f637260448201527f697400000000000000000000000000000000000000000000000000000000000060648201526084016101fd565b600280546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283168117909355600180549186169190921681179091556040805191825260208201929092527ffc3b05c7ae4ec140123d829a292ae5b8926252a7881566b29c0c7850d5deb694910160405180910390a15050565b61239961240a565b6001600160a01b03166123b46000546001600160a01b031690565b6001600160a01b0316146112e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101fd565b60006124146124b1565b905090565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061271061248583826129ef565b61248f9085612a02565b612499919061274d565b90505b92915050565b60006127106124858382612a3b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036124f0575060131936013560601c90565b503390565b6001600160a01b03811681146115e757600080fd5b60008060008060008060c0878903121561252357600080fd5b863561252e816124f5565b9550602087013594506040870135612545816124f5565b935060608701359250608087013561255c816124f5565b9598949750929591949360a090920135925050565b60008083601f84011261258357600080fd5b50813567ffffffffffffffff81111561259b57600080fd5b6020830191508360208285010111156125b357600080fd5b9250929050565b60008083601f8401126125cc57600080fd5b50813567ffffffffffffffff8111156125e457600080fd5b6020830191508360208260051b85010111156125b357600080fd5b600080600080600080600060a0888a03121561261a57600080fd5b8735612625816124f5565b96506020880135955060408801359450606088013567ffffffffffffffff81111561264f57600080fd5b61265b8a828b01612571565b909550935050608088013567ffffffffffffffff81111561267b57600080fd5b6126878a828b016125ba565b989b979a50959850939692959293505050565b6000602082840312156126ac57600080fd5b81356126b7816124f5565b9392505050565b600080600080606085870312156126d457600080fd5b84356126df816124f5565b935060208501359250604085013567ffffffffffffffff81111561270257600080fd5b61270e87828801612571565b95989497509550505050565b60006020828403121561272c57600080fd5b81516126b7816124f5565b634e487b7160e01b600052601160045260246000fd5b60008261276a57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561278157600080fd5b5051919050565b6000808335601e1984360301811261279f57600080fd5b830160208101925035905067ffffffffffffffff8111156127bf57600080fd5b8036038213156125b357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561289e57868503603f19018452823581811261283b57600080fd5b89018035865260208082013590870152604080820135908701526060808201359087015261286c6080820182612788565b915060a0608088015261288360a0880183836127ce565b9650505060208301925060208401935060018201915061281c565b5092979650505050505050565b60005b838110156128c65781810151838201526020016128ae565b50506000910152565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152600083516129098160048501602088016128ab565b60609390931b6bffffffffffffffffffffffff1916600492909301918201929092526018019392505050565b600082516129478184602087016128ab565b9190910192915050565b7f6661696c656420746f20657865637574652044656d6f637269742063616c6c3a81527f20000000000000000000000000000000000000000000000000000000000000006020820152600082516129af8160218501602087016128ab565b9190910160210192915050565b60208152600082518060208401526129db8160408501602087016128ab565b601f01601f19169190910160400192915050565b8082018082111561249c5761249c612737565b808202811582820484141761249c5761249c612737565b600060208284031215612a2b57600080fd5b815180151581146126b757600080fd5b8181038181111561249c5761249c612737565b8481526001600160a01b0384166020820152606060408201526000612a776060830184866127ce565b9695505050505050565b7f6661696c656420746f2070617920756e777261707065642045544820746f207381527f656c6c65723a2000000000000000000000000000000000000000000000000000602082015260008251612adf8160278501602087016128ab565b9190910160270192915050565b6001600160a01b0385168152836020820152606060408201526000612a776060830184866127ce565b6020808252810182905260006040600584901b830181019083018583607e1936839003015b8782101561289e57868503603f190184528235818112612b5957600080fd5b89018035865260208082013590870152612b766040820182612788565b60806040890152612b8b6080890182846127ce565b6060938401359890930197909752509450602093840193929092019160019190910190612b3a56fea26469706673582212206832285ddecf41f45fe92be04ed2d7e4a1327214f9caf6a12f66f0013d0a515164736f6c634300081c00330000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270000000000000000000000000f0511f123164602042ab2bcf02111fa5d3fe97cd