24 txs
25 calls
constructor
constructor(address _vusd, uint256 _maxMintLimit)
functions
availableMintage
viewfunction availableMintage() view returns (uint256 _mintage)
calculateMintage
viewfunction calculateMintage(address _token, uint256 _amountIn) view returns (uint256 _mintage)
cTokens
viewfunction cTokens(address) view returns (address)
governor
viewfunction governor() view returns (address)
isWhitelistedToken
viewfunction isWhitelistedToken(address _address) view returns (bool)
MAX_BPS
viewfunction MAX_BPS() view returns (uint256)
maxMintLimit
viewfunction maxMintLimit() view returns (uint256)
mintingFee
viewfunction mintingFee() view returns (uint256)
NAME
viewfunction NAME() view returns (string)
oracles
viewfunction oracles(address) view returns (address)
priceTolerance
viewfunction priceTolerance() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
VERSION
viewfunction VERSION() view returns (string)
vusd
viewfunction vusd() view returns (address)
whitelistedTokens
viewfunction whitelistedTokens() view returns (address[])
addWhitelistedToken
nonpayablefunction addWhitelistedToken(address _token, address _cToken, address _oracle)
mint
nonpayablefunction mint(address _token, uint256 _amountIn, address _receiver)
mint
nonpayablefunction mint(address _token, uint256 _amountIn)
mint
nonpayablefunction mint(uint256 _amount)
removeWhitelistedToken
nonpayablefunction removeWhitelistedToken(address _token)
updateMaxMintAmount
nonpayablefunction updateMaxMintAmount(uint256 _newMintLimit)
updateMintingFee
nonpayablefunction updateMintingFee(uint256 _newMintingFee)
updatePriceTolerance
nonpayablefunction updatePriceTolerance(uint256 _newPriceTolerance)
events
MintingLimitUpdated
event MintingLimitUpdated(uint256 previousMintLimit, uint256 newMintLimit)
UpdatedMintingFee
event UpdatedMintingFee(uint256 previousMintingFee, uint256 newMintingFee)
UpdatedPriceTolerance
event UpdatedPriceTolerance(uint256 previousPriceTolerance, uint256 newPriceTolerance)
errors
No errors.
creation bytecode
0x60a060405260646003553480156200001657600080fd5b5060405162004dd038038062004dd083398181016040528101906200003c919062000ad5565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ae9062000e5e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508060028190555062000144736b175474e89094c44da98b954eedeac495271d0f735d3a536e4d6dbd6114cc1ead35777bab948e364373aed0c38402a5d19df6e4c03f4e2dced6e29c1ee9620001ea60201b60201c565b6200019373a0b86991c6218b36c1d19d4a2e9eb0ce3606eb487339aa39c021dfbae8fac545936693ac917d5e7563738fffffd4afb6115b954bd326cbe7b4ba576818f6620001ea60201b60201c565b620001e273dac17f958d2ee523a2206206994597c13d831ec773f650c3d88d12db855b8bf7d11be6c55a4e07dcc9733e7d1eab13ad0104d2750b8863b489d65364e32d620001ea60201b60201c565b50506200159d565b620002058360066200056360201b620011941790919060201c565b62000247576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200023e9062000ea2565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029057600080fd5b505afa158015620002a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cb919062000bf0565b905060008273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156200031657600080fd5b505afa1580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000351919062000b6e565b5050509150506000819050600083600a6200036d91906200106e565b9050600061271060035483620003849190620011ab565b62000390919062000fdb565b905060008183620003a2919062000f7e565b905060008284620003b491906200120c565b9050818511158015620003c75750808510155b62000409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004009062000ec4565b60405180910390fd5b87600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000557897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c73ffffffffffffffffffffffffffffffffffffffff166200059b60201b620011c4179092919060201c565b50505050505050505050565b600062000593836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200070d60201b60201c565b905092915050565b60008114806200063b575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401620005e592919062000de0565b60206040518083038186803b158015620005fe57600080fd5b505afa15801562000613573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000639919062000b42565b145b6200067d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006749062000f2a565b60405180910390fd5b620007088363095ea7b360e01b84846040516024016200069f92919062000e0d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506200078760201b60201c565b505050565b60006200072183836200085b60201b60201c565b6200077c57826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000781565b600090505b92915050565b6000620007f0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166200087e60201b62001322179092919060201c565b905060008151111562000856578080602001905181019062000813919062000b16565b62000855576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084c9062000f08565b60405180910390fd5b5b505050565b600080836001016000848152602001908152602001600020541415905092915050565b60606200089584846000856200089e60201b60201c565b90509392505050565b606082471015620008e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008dd9062000e80565b60405180910390fd5b620008f785620009cc60201b60201c565b62000939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009309062000ee6565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405162000964919062000dc7565b60006040518083038185875af1925050503d8060008114620009a3576040519150601f19603f3d011682016040523d82523d6000602084013e620009a8565b606091505b5091509150620009c0828286620009df60201b60201c565b92505050949350505050565b600080823b905060008111915050919050565b60608315620009f15782905062000a44565b60008351111562000a055782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a3b919062000e3a565b60405180910390fd5b9392505050565b60008151905062000a5c8162001501565b92915050565b60008151905062000a73816200151b565b92915050565b60008151905062000a8a8162001535565b92915050565b60008151905062000aa1816200154f565b92915050565b60008151905062000ab88162001583565b92915050565b60008151905062000acf8162001569565b92915050565b6000806040838503121562000ae957600080fd5b600062000af98582860162000a4b565b925050602062000b0c8582860162000a90565b9150509250929050565b60006020828403121562000b2957600080fd5b600062000b398482850162000a62565b91505092915050565b60006020828403121562000b5557600080fd5b600062000b658482850162000a90565b91505092915050565b600080600080600060a0868803121562000b8757600080fd5b600062000b978882890162000aa7565b955050602062000baa8882890162000a79565b945050604062000bbd8882890162000a90565b935050606062000bd08882890162000a90565b925050608062000be38882890162000aa7565b9150509295509295909350565b60006020828403121562000c0357600080fd5b600062000c138482850162000abe565b91505092915050565b62000c278162001247565b82525050565b600062000c3a8262000f4c565b62000c46818562000f62565b935062000c58818560208601620012be565b80840191505092915050565b600062000c718262000f57565b62000c7d818562000f6d565b935062000c8f818560208601620012be565b62000c9a8162001352565b840191505092915050565b600062000cb460148362000f6d565b915062000cc18262001370565b602082019050919050565b600062000cdb60268362000f6d565b915062000ce88262001399565b604082019050919050565b600062000d0260128362000f6d565b915062000d0f82620013e8565b602082019050919050565b600062000d2960108362000f6d565b915062000d368262001411565b602082019050919050565b600062000d50601d8362000f6d565b915062000d5d826200143a565b602082019050919050565b600062000d77602a8362000f6d565b915062000d848262001463565b604082019050919050565b600062000d9e60368362000f6d565b915062000dab82620014b2565b604082019050919050565b62000dc18162001291565b82525050565b600062000dd5828462000c2d565b915081905092915050565b600060408201905062000df7600083018562000c1c565b62000e06602083018462000c1c565b9392505050565b600060408201905062000e24600083018562000c1c565b62000e33602083018462000db6565b9392505050565b6000602082019050818103600083015262000e56818462000c64565b905092915050565b6000602082019050818103600083015262000e798162000ca5565b9050919050565b6000602082019050818103600083015262000e9b8162000ccc565b9050919050565b6000602082019050818103600083015262000ebd8162000cf3565b9050919050565b6000602082019050818103600083015262000edf8162000d1a565b9050919050565b6000602082019050818103600083015262000f018162000d41565b9050919050565b6000602082019050818103600083015262000f238162000d68565b9050919050565b6000602082019050818103600083015262000f458162000d8f565b9050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600062000f8b8262001291565b915062000f988362001291565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000fd05762000fcf620012f4565b5b828201905092915050565b600062000fe88262001291565b915062000ff58362001291565b92508262001008576200100762001323565b5b828204905092915050565b6000808291508390505b600185111562001065578086048111156200103d576200103c620012f4565b5b60018516156200104d5780820291505b80810290506200105d8562001363565b94506200101d565b94509492505050565b60006200107b8262001291565b915062001088836200129b565b9250620010b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010bf565b905092915050565b600082620010d15760019050620011a4565b81620010e15760009050620011a4565b8160018114620010fa576002811462001105576200113b565b6001915050620011a4565b60ff8411156200111a5762001119620012f4565b5b8360020a915084821115620011345762001133620012f4565b5b50620011a4565b5060208310610133831016604e8410600b8410161715620011755782820a9050838111156200116f576200116e620012f4565b5b620011a4565b62001184848484600162001013565b925090508184048111156200119e576200119d620012f4565b5b81810290505b9392505050565b6000620011b88262001291565b9150620011c58362001291565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620012015762001200620012f4565b5b828202905092915050565b6000620012198262001291565b9150620012268362001291565b9250828210156200123c576200123b620012f4565b5b828203905092915050565b6000620012548262001271565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600069ffffffffffffffffffff82169050919050565b60005b83811015620012de578082015181840152602081019050620012c1565b83811115620012ee576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f767573642d616464726573732d69732d7a65726f000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6164642d696e2d6c6973742d6661696c65640000000000000000000000000000600082015250565b7f70726963652d69732d696e76616c696400000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6200150c8162001247565b81146200151857600080fd5b50565b62001526816200125b565b81146200153257600080fd5b50565b620015408162001267565b81146200154c57600080fd5b50565b6200155a8162001291565b81146200156657600080fd5b50565b62001574816200129b565b81146200158057600080fd5b50565b6200158e81620012a8565b81146200159a57600080fd5b50565b60805160601c6137f1620015df6000396000818161044001528181610aef01528181610bd101528181610d7801528181611133015261164401526137f16000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806361d027b3116100c3578063addd50991161007c578063addd50991461037a578063c0275a25146103aa578063c760af5c146103c6578063edac5203146103e2578063fd967f4714610400578063ffa1ad741461041e5761014d565b806361d027b3146102a457806370e2f827146102c25780638c0b09d0146102e0578063a0712d6814610310578063a3f4df7e1461032c578063ab37f4861461034a5761014d565b806340c10f191161011557806340c10f19146101e0578063482b6014146101fc5780635166c96a1461022c57806359011cd11461024a5780635a64ad95146102685780635e1762a0146102865761014d565b80630c340a24146101525780630d4d1513146101705780631c88705d1461018c57806320ab954e146101a8578063380a0df2146101c4575b600080fd5b61015a61043c565b6040516101679190612af3565b60405180910390f35b61018a60048036038101906101859190612568565b6104e1565b005b6101a660048036038101906101a1919061248b565b610548565b005b6101c260048036038101906101bd91906124dd565b610769565b005b6101de60048036038101906101d991906125e0565b610945565b005b6101fa60048036038101906101f5919061252c565b610a4f565b005b6102166004803603810190610211919061252c565b610abc565b6040516102239190612eb1565b60405180910390f35b610234610aea565b6040516102419190612eb1565b60405180910390f35b610252610bb0565b60405161025f9190612eb1565b60405180910390f35b610270610bb6565b60405161027d9190612eb1565b60405180910390f35b61028e610bbc565b60405161029b9190612b97565b60405180910390f35b6102ac610bcd565b6040516102b99190612af3565b60405180910390f35b6102ca610c72565b6040516102d79190612eb1565b60405180910390f35b6102fa60048036038101906102f5919061248b565b610c78565b6040516103079190612af3565b60405180910390f35b61032a600480360381019061032591906125e0565b610cab565b005b610334610e0e565b6040516103419190612bef565b60405180910390f35b610364600480360381019061035f919061248b565b610e47565b6040516103719190612bb9565b60405180910390f35b610394600480360381019061038f919061248b565b610e64565b6040516103a19190612af3565b60405180910390f35b6103c460048036038101906103bf91906125e0565b610e97565b005b6103e060048036038101906103db91906125e0565b610fe2565b005b6103ea611131565b6040516103f79190612bd4565b60405180910390f35b610408611155565b6040516104159190612eb1565b60405180910390f35b61042661115b565b6040516104339190612bef565b60405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a457600080fd5b505afa1580156104b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104dc91906124b4565b905090565b60026000541415610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051e90612e71565b60405180910390fd5b600260008190555061053a83838361133a565b506001600081905550505050565b61055061043c565b73ffffffffffffffffffffffffffffffffffffffff1661056e6116d7565b73ffffffffffffffffffffffffffffffffffffffff16146105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb90612c71565b60405180910390fd5b6105d88160066116df90919063ffffffff16565b610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90612d11565b60405180910390fd5b6106a2600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008373ffffffffffffffffffffffffffffffffffffffff166111c49092919063ffffffff16565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b61077161043c565b73ffffffffffffffffffffffffffffffffffffffff1661078f6116d7565b73ffffffffffffffffffffffffffffffffffffffff16146107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc90612c71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c90612c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc90612c11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90612d71565b60405180910390fd5b61094083838361170f565b505050565b61094d61043c565b73ffffffffffffffffffffffffffffffffffffffff1661096b6116d7565b73ffffffffffffffffffffffffffffffffffffffff16146109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b890612c71565b60405180910390fd5b6000600254905081811415610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0290612c31565b60405180910390fd5b7f8353d6f6057b53994c31faf6112674bd84b37caab3af81c269080ae9904ebbeb8183604051610a3c929190612ecc565b60405180910390a1816002819055505050565b60026000541415610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612e71565b60405180910390fd5b6002600081905550610aaf8282610aaa6116d7565b61133a565b5060016000819055505050565b6000610ad2836006611a6190919063ffffffff16565b15610ae457610ae18383611a91565b90505b92915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5357600080fd5b505afa158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190612609565b90506000600254905081811115610bab578181610ba891906131b2565b92505b505090565b60035481565b60015481565b6060610bc86006611de9565b905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d91906124b4565b905090565b60025481565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cb361043c565b73ffffffffffffffffffffffffffffffffffffffff16610cd16116d7565b73ffffffffffffffffffffffffffffffffffffffff1614610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90612c71565b60405180910390fd5b6000610d31610aea565b905081811015610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612d91565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f19610dba6116d7565b846040518363ffffffff1660e01b8152600401610dd8929190612b6e565b600060405180830381600087803b158015610df257600080fd5b505af1158015610e06573d6000803e3d6000fd5b505050505050565b6040518060400160405280600b81526020017f565553442d4d696e74657200000000000000000000000000000000000000000081525081565b6000610e5d826006611a6190919063ffffffff16565b9050919050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e9f61043c565b73ffffffffffffffffffffffffffffffffffffffff16610ebd6116d7565b73ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a90612c71565b60405180910390fd5b612710811115610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612db1565b60405180910390fd5b806001541415610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490612e51565b60405180910390fd5b7f85735a3ef929fdaaf946ddf4b97deec396e7347cbb47fea3d6a8f3934e1b02e360015482604051610fd0929190612ecc565b60405180910390a18060018190555050565b610fea61043c565b73ffffffffffffffffffffffffffffffffffffffff166110086116d7565b73ffffffffffffffffffffffffffffffffffffffff161461105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590612c71565b60405180910390fd5b6127108111156110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a90612d51565b60405180910390fd5b60006003549050818114156110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490612dd1565b60405180910390fd5b7f3cb23ae97dcd603618548f333b96dbb9e41059b6fd0eb7face59058c5ac3b11b818360405161111e929190612ecc565b60405180910390a1816003819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61271081565b6040518060400160405280600581526020017f312e342e3000000000000000000000000000000000000000000000000000000081525081565b60006111bc836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611e0a565b905092915050565b600081148061125d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161120b929190612b0e565b60206040518083038186803b15801561122357600080fd5b505afa158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190612609565b145b61129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612e91565b60405180910390fd5b61131d8363095ea7b360e01b84846040516024016112bb929190612b6e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611e7a565b505050565b60606113318484600085611f41565b90509392505050565b6000611350846006611a6190919063ffffffff16565b61138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690612cb1565b60405180910390fd5b6113998484611a91565b90506113cf6113a66116d7565b30858773ffffffffffffffffffffffffffffffffffffffff16612055909392919063ffffffff16565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663a0712d688773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161148a9190612af3565b60206040518083038186803b1580156114a257600080fd5b505afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612609565b6040518263ffffffff1660e01b81526004016114f69190612eb1565b602060405180830381600087803b15801561151057600080fd5b505af1158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190612609565b14611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612e31565b60405180910390fd5b611642611593610bcd565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115cc9190612af3565b60206040518083038186803b1580156115e457600080fd5b505afa1580156115f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161c9190612609565b8373ffffffffffffffffffffffffffffffffffffffff166120de9092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1984846040518363ffffffff1660e01b815260040161169d929190612b6e565b600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b50505050509392505050565b600033905090565b6000611707836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612164565b905092915050565b61172383600661119490919063ffffffff16565b611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990612cf1565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156117aa57600080fd5b505afa1580156117be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e291906126a9565b905060008273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561182c57600080fd5b505afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118649190612632565b5050509150506000819050600083600a61187e919061303a565b90506000612710600354836118939190613158565b61189d9190612fb6565b9050600081836118ad9190612f60565b9050600082846118bd91906131b2565b90508185111580156118cf5750808510155b61190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190590612d31565b60405180910390fd5b87600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a55897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c73ffffffffffffffffffffffffffffffffffffffff166111c49092919063ffffffff16565b50505050505050505050565b6000611a89836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6122ea565b905092915050565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3e57600080fd5b505afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7691906126a9565b905060008273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015611bc057600080fd5b505afa158015611bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf89190612632565b5050509150506000819050600083600a611c12919061303a565b9050600061271060035483611c279190613158565b611c319190612fb6565b905060008183611c419190612f60565b905060008284611c5191906131b2565b9050818511158015611c635750808510155b611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9990612cd1565b60405180910390fd5b6000612710600154612710611cb791906131b2565b8c611cc29190613158565b611ccc9190612fb6565b9050848682611cdb9190613158565b611ce59190612fb6565b99508b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2d57600080fd5b505afa158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6591906126a9565b6012611d7191906131e6565b600a611d7d919061303a565b8a611d889190613158565b99506000611d94610aea565b90508a811015611dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd090612d91565b60405180910390fd5b5050505050505050505092915050565b60606000611df98360000161230d565b905060608190508092505050919050565b6000611e1683836122ea565b611e6f578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611e74565b600090505b92915050565b6000611edc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113229092919063ffffffff16565b9050600081511115611f3c5780806020019051810190611efc91906125b7565b611f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3290612e11565b60405180910390fd5b5b505050565b606082471015611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90612c51565b60405180910390fd5b611f8f85612369565b611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc590612df1565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611ff79190612adc565b60006040518083038185875af1925050503d8060008114612034576040519150601f19603f3d011682016040523d82523d6000602084013e612039565b606091505b509150915061204982828661237c565b92505050949350505050565b6120d8846323b872dd60e01b85858560405160240161207693929190612b37565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611e7a565b50505050565b61215f8363a9059cbb60e01b84846040516024016120fd929190612b6e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611e7a565b505050565b600080836001016000848152602001908152602001600020549050600081146122de57600060018261219691906131b2565b90506000600186600001805490506121ae91906131b2565b90508181146122695760008660000182815481106121f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508087600001848154811061223f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806122a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506122e4565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561235d57602002820191906000526020600020905b815481526020019060010190808311612349575b50505050509050919050565b600080823b905060008111915050919050565b6060831561238c578290506123dc565b60008351111561239f5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d39190612bef565b60405180910390fd5b9392505050565b6000813590506123f281613731565b92915050565b60008151905061240781613731565b92915050565b60008151905061241c81613748565b92915050565b6000815190506124318161375f565b92915050565b60008135905061244681613776565b92915050565b60008151905061245b81613776565b92915050565b600081519050612470816137a4565b92915050565b6000815190506124858161378d565b92915050565b60006020828403121561249d57600080fd5b60006124ab848285016123e3565b91505092915050565b6000602082840312156124c657600080fd5b60006124d4848285016123f8565b91505092915050565b6000806000606084860312156124f257600080fd5b6000612500868287016123e3565b9350506020612511868287016123e3565b9250506040612522868287016123e3565b9150509250925092565b6000806040838503121561253f57600080fd5b600061254d858286016123e3565b925050602061255e85828601612437565b9150509250929050565b60008060006060848603121561257d57600080fd5b600061258b868287016123e3565b935050602061259c86828701612437565b92505060406125ad868287016123e3565b9150509250925092565b6000602082840312156125c957600080fd5b60006125d78482850161240d565b91505092915050565b6000602082840312156125f257600080fd5b600061260084828501612437565b91505092915050565b60006020828403121561261b57600080fd5b60006126298482850161244c565b91505092915050565b600080600080600060a0868803121561264a57600080fd5b600061265888828901612461565b955050602061266988828901612422565b945050604061267a8882890161244c565b935050606061268b8882890161244c565b925050608061269c88828901612461565b9150509295509295909350565b6000602082840312156126bb57600080fd5b60006126c984828501612476565b91505092915050565b60006126de83836126ea565b60208301905092915050565b6126f38161321a565b82525050565b6127028161321a565b82525050565b600061271382612f05565b61271d8185612f33565b935061272883612ef5565b8060005b8381101561275957815161274088826126d2565b975061274b83612f26565b92505060018101905061272c565b5085935050505092915050565b61276f8161322c565b82525050565b600061278082612f10565b61278a8185612f44565b935061279a8185602086016132b3565b80840191505092915050565b6127af8161328f565b82525050565b60006127c082612f1b565b6127ca8185612f4f565b93506127da8185602086016132b3565b6127e381613344565b840191505092915050565b60006127fb601683612f4f565b915061280682613362565b602082019050919050565b600061281e600f83612f4f565b91506128298261338b565b602082019050919050565b6000612841602683612f4f565b915061284c826133b4565b604082019050919050565b6000612864601a83612f4f565b915061286f82613403565b602082019050919050565b6000612887601583612f4f565b91506128928261342c565b602082019050919050565b60006128aa601683612f4f565b91506128b582613455565b602082019050919050565b60006128cd601d83612f4f565b91506128d88261347e565b602082019050919050565b60006128f0601283612f4f565b91506128fb826134a7565b602082019050919050565b6000612913601783612f4f565b915061291e826134d0565b602082019050919050565b6000612936601083612f4f565b9150612941826134f9565b602082019050919050565b6000612959601a83612f4f565b915061296482613522565b602082019050919050565b600061297c601683612f4f565b91506129878261354b565b602082019050919050565b600061299f601283612f4f565b91506129aa82613574565b602082019050919050565b60006129c2601983612f4f565b91506129cd8261359d565b602082019050919050565b60006129e5601a83612f4f565b91506129f0826135c6565b602082019050919050565b6000612a08601d83612f4f565b9150612a13826135ef565b602082019050919050565b6000612a2b602a83612f4f565b9150612a3682613618565b604082019050919050565b6000612a4e601283612f4f565b9150612a5982613667565b602082019050919050565b6000612a71601083612f4f565b9150612a7c82613690565b602082019050919050565b6000612a94601f83612f4f565b9150612a9f826136b9565b602082019050919050565b6000612ab7603683612f4f565b9150612ac2826136e2565b604082019050919050565b612ad681613262565b82525050565b6000612ae88284612775565b915081905092915050565b6000602082019050612b0860008301846126f9565b92915050565b6000604082019050612b2360008301856126f9565b612b3060208301846126f9565b9392505050565b6000606082019050612b4c60008301866126f9565b612b5960208301856126f9565b612b666040830184612acd565b949350505050565b6000604082019050612b8360008301856126f9565b612b906020830184612acd565b9392505050565b60006020820190508181036000830152612bb18184612708565b905092915050565b6000602082019050612bce6000830184612766565b92915050565b6000602082019050612be960008301846127a6565b92915050565b60006020820190508181036000830152612c0981846127b5565b905092915050565b60006020820190508181036000830152612c2a816127ee565b9050919050565b60006020820190508181036000830152612c4a81612811565b9050919050565b60006020820190508181036000830152612c6a81612834565b9050919050565b60006020820190508181036000830152612c8a81612857565b9050919050565b60006020820190508181036000830152612caa8161287a565b9050919050565b60006020820190508181036000830152612cca8161289d565b9050919050565b60006020820190508181036000830152612cea816128c0565b9050919050565b60006020820190508181036000830152612d0a816128e3565b9050919050565b60006020820190508181036000830152612d2a81612906565b9050919050565b60006020820190508181036000830152612d4a81612929565b9050919050565b60006020820190508181036000830152612d6a8161294c565b9050919050565b60006020820190508181036000830152612d8a8161296f565b9050919050565b60006020820190508181036000830152612daa81612992565b9050919050565b60006020820190508181036000830152612dca816129b5565b9050919050565b60006020820190508181036000830152612dea816129d8565b9050919050565b60006020820190508181036000830152612e0a816129fb565b9050919050565b60006020820190508181036000830152612e2a81612a1e565b9050919050565b60006020820190508181036000830152612e4a81612a41565b9050919050565b60006020820190508181036000830152612e6a81612a64565b9050919050565b60006020820190508181036000830152612e8a81612a87565b9050919050565b60006020820190508181036000830152612eaa81612aaa565b9050919050565b6000602082019050612ec66000830184612acd565b92915050565b6000604082019050612ee16000830185612acd565b612eee6020830184612acd565b9392505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612f6b82613262565b9150612f7683613262565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fab57612faa6132e6565b5b828201905092915050565b6000612fc182613262565b9150612fcc83613262565b925082612fdc57612fdb613315565b5b828204905092915050565b6000808291508390505b60018511156130315780860481111561300d5761300c6132e6565b5b600185161561301c5780820291505b808102905061302a85613355565b9450612ff1565b94509492505050565b600061304582613262565b91506130508361326c565b925061307d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613085565b905092915050565b6000826130955760019050613151565b816130a35760009050613151565b81600181146130b957600281146130c3576130f2565b6001915050613151565b60ff8411156130d5576130d46132e6565b5b8360020a9150848211156130ec576130eb6132e6565b5b50613151565b5060208310610133831016604e8410600b84101617156131275782820a905083811115613122576131216132e6565b5b613151565b6131348484846001612fe7565b9250905081840481111561314b5761314a6132e6565b5b81810290505b9392505050565b600061316382613262565b915061316e83613262565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131a7576131a66132e6565b5b828202905092915050565b60006131bd82613262565b91506131c883613262565b9250828210156131db576131da6132e6565b5b828203905092915050565b60006131f18261326c565b91506131fc8361326c565b92508282101561320f5761320e6132e6565b5b828203905092915050565b600061322582613242565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600069ffffffffffffffffffff82169050919050565b600061329a826132a1565b9050919050565b60006132ac82613242565b9050919050565b60005b838110156132d15780820151818401526020810190506132b6565b838111156132e0576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f63546f6b656e2d616464726573732d69732d7a65726f00000000000000000000600082015250565b7f73616d652d6d696e742d6c696d69740000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000600082015250565b7f746f6b656e2d616464726573732d69732d7a65726f0000000000000000000000600082015250565b7f746f6b656e2d69732d6e6f742d737570706f7274656400000000000000000000600082015250565b7f6f7261636c652d70726963652d6578636565642d746f6c6572616e6365000000600082015250565b7f6164642d696e2d6c6973742d6661696c65640000000000000000000000000000600082015250565b7f72656d6f76652d66726f6d2d6c6973742d6661696c6564000000000000000000600082015250565b7f70726963652d69732d696e76616c696400000000000000000000000000000000600082015250565b7f70726963652d646576696174696f6e2d69732d696e76616c6964000000000000600082015250565b7f6f7261636c652d616464726573732d69732d7a65726f00000000000000000000600082015250565b7f6d696e742d6c696d69742d726561636865640000000000000000000000000000600082015250565b7f6d696e74696e672d6665652d6c696d69742d7265616368656400000000000000600082015250565b7f73616d652d70726963652d646576696174696f6e2d6c696d6974000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f63546f6b656e2d6d696e742d6661696c65640000000000000000000000000000600082015250565b7f73616d652d6d696e74696e672d66656500000000000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61373a8161321a565b811461374557600080fd5b50565b6137518161322c565b811461375c57600080fd5b50565b61376881613238565b811461377357600080fd5b50565b61377f81613262565b811461378a57600080fd5b50565b6137968161326c565b81146137a157600080fd5b50565b6137ad81613279565b81146137b857600080fd5b5056fea264697066735822122047a21de23d571ebf2c2460cee857fb759a814aa8036632c875a02ccfa8ead05664736f6c63430008030033000000000000000000000000677ddbd918637e5f2c79e164d402454de7da86190000000000000000000000000000000000000000019d971e4fe8401e74000000