445 txs
450 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
Mint
event Mint(address indexed tokenIn, uint256 amountIn, uint256 amountInAfterTransferFee, uint256 mintage, address receiver)
MintingLimitUpdated
event MintingLimitUpdated(uint256 previousMintLimit, uint256 newMintLimit)
UpdatedMintingFee
event UpdatedMintingFee(uint256 previousMintingFee, uint256 newMintingFee)
UpdatedPriceTolerance
event UpdatedPriceTolerance(uint256 previousPriceTolerance, uint256 newPriceTolerance)
WhitelistedTokenAdded
event WhitelistedTokenAdded(address indexed token, address cToken, address oracle)
WhitelistedTokenRemoved
event WhitelistedTokenRemoved(address indexed token)
errors
No errors.
creation bytecode
0x60a060405260646003553480156200001657600080fd5b5060405162004ff338038062004ff383398181016040528101906200003c919062000b27565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ae9062000eb0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508060028190555062000144736b175474e89094c44da98b954eedeac495271d0f735d3a536e4d6dbd6114cc1ead35777bab948e364373aed0c38402a5d19df6e4c03f4e2dced6e29c1ee9620001ea60201b60201c565b6200019373a0b86991c6218b36c1d19d4a2e9eb0ce3606eb487339aa39c021dfbae8fac545936693ac917d5e7563738fffffd4afb6115b954bd326cbe7b4ba576818f6620001ea60201b60201c565b620001e273dac17f958d2ee523a2206206994597c13d831ec773f650c3d88d12db855b8bf7d11be6c55a4e07dcc9733e7d1eab13ad0104d2750b8863b489d65364e32d620001ea60201b60201c565b5050620015ef565b62000205836006620005b560201b620011d71790919060201c565b62000247576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200023e9062000ef4565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029057600080fd5b505afa158015620002a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cb919062000c42565b905060008273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156200031657600080fd5b505afa1580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000351919062000bc0565b5050509150506000819050600083600a6200036d9190620010c0565b9050600061271060035483620003849190620011fd565b6200039091906200102d565b905060008183620003a2919062000fd0565b905060008284620003b491906200125e565b9050818511158015620003c75750808510155b62000409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004009062000f16565b60405180910390fd5b87600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000557897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c73ffffffffffffffffffffffffffffffffffffffff16620005ed60201b62001207179092919060201c565b8973ffffffffffffffffffffffffffffffffffffffff167ff264178f70a222c6991bf4849b98c3722e9f54b6e89d1fb550509113e60ae0b78a8a604051620005a192919062000e32565b60405180910390a250505050505050505050565b6000620005e5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200075f60201b60201c565b905092915050565b60008114806200068d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016200063792919062000e32565b60206040518083038186803b1580156200065057600080fd5b505afa15801562000665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200068b919062000b94565b145b620006cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c69062000f7c565b60405180910390fd5b6200075a8363095ea7b360e01b8484604051602401620006f192919062000e5f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050620007d960201b60201c565b505050565b6000620007738383620008ad60201b60201c565b620007ce578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620007d3565b600090505b92915050565b600062000842826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620008d060201b62001365179092919060201c565b9050600081511115620008a8578080602001905181019062000865919062000b68565b620008a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089e9062000f5a565b60405180910390fd5b5b505050565b600080836001016000848152602001908152602001600020541415905092915050565b6060620008e78484600085620008f060201b60201c565b90509392505050565b60608247101562000938576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092f9062000ed2565b60405180910390fd5b620009498562000a1e60201b60201c565b6200098b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009829062000f38565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051620009b6919062000e19565b60006040518083038185875af1925050503d8060008114620009f5576040519150601f19603f3d011682016040523d82523d6000602084013e620009fa565b606091505b509150915062000a1282828662000a3160201b60201c565b92505050949350505050565b600080823b905060008111915050919050565b6060831562000a435782905062000a96565b60008351111562000a575782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a8d919062000e8c565b60405180910390fd5b9392505050565b60008151905062000aae8162001553565b92915050565b60008151905062000ac5816200156d565b92915050565b60008151905062000adc8162001587565b92915050565b60008151905062000af381620015a1565b92915050565b60008151905062000b0a81620015d5565b92915050565b60008151905062000b2181620015bb565b92915050565b6000806040838503121562000b3b57600080fd5b600062000b4b8582860162000a9d565b925050602062000b5e8582860162000ae2565b9150509250929050565b60006020828403121562000b7b57600080fd5b600062000b8b8482850162000ab4565b91505092915050565b60006020828403121562000ba757600080fd5b600062000bb78482850162000ae2565b91505092915050565b600080600080600060a0868803121562000bd957600080fd5b600062000be98882890162000af9565b955050602062000bfc8882890162000acb565b945050604062000c0f8882890162000ae2565b935050606062000c228882890162000ae2565b925050608062000c358882890162000af9565b9150509295509295909350565b60006020828403121562000c5557600080fd5b600062000c658482850162000b10565b91505092915050565b62000c798162001299565b82525050565b600062000c8c8262000f9e565b62000c98818562000fb4565b935062000caa81856020860162001310565b80840191505092915050565b600062000cc38262000fa9565b62000ccf818562000fbf565b935062000ce181856020860162001310565b62000cec81620013a4565b840191505092915050565b600062000d0660148362000fbf565b915062000d1382620013c2565b602082019050919050565b600062000d2d60268362000fbf565b915062000d3a82620013eb565b604082019050919050565b600062000d5460128362000fbf565b915062000d61826200143a565b602082019050919050565b600062000d7b60108362000fbf565b915062000d888262001463565b602082019050919050565b600062000da2601d8362000fbf565b915062000daf826200148c565b602082019050919050565b600062000dc9602a8362000fbf565b915062000dd682620014b5565b604082019050919050565b600062000df060368362000fbf565b915062000dfd8262001504565b604082019050919050565b62000e1381620012e3565b82525050565b600062000e27828462000c7f565b915081905092915050565b600060408201905062000e49600083018562000c6e565b62000e58602083018462000c6e565b9392505050565b600060408201905062000e76600083018562000c6e565b62000e85602083018462000e08565b9392505050565b6000602082019050818103600083015262000ea8818462000cb6565b905092915050565b6000602082019050818103600083015262000ecb8162000cf7565b9050919050565b6000602082019050818103600083015262000eed8162000d1e565b9050919050565b6000602082019050818103600083015262000f0f8162000d45565b9050919050565b6000602082019050818103600083015262000f318162000d6c565b9050919050565b6000602082019050818103600083015262000f538162000d93565b9050919050565b6000602082019050818103600083015262000f758162000dba565b9050919050565b6000602082019050818103600083015262000f978162000de1565b9050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600062000fdd82620012e3565b915062000fea83620012e3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001022576200102162001346565b5b828201905092915050565b60006200103a82620012e3565b91506200104783620012e3565b9250826200105a576200105962001375565b5b828204905092915050565b6000808291508390505b6001851115620010b7578086048111156200108f576200108e62001346565b5b60018516156200109f5780820291505b8081029050620010af85620013b5565b94506200106f565b94509492505050565b6000620010cd82620012e3565b9150620010da83620012ed565b9250620011097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001111565b905092915050565b600082620011235760019050620011f6565b81620011335760009050620011f6565b81600181146200114c576002811462001157576200118d565b6001915050620011f6565b60ff8411156200116c576200116b62001346565b5b8360020a91508482111562001186576200118562001346565b5b50620011f6565b5060208310610133831016604e8410600b8410161715620011c75782820a905083811115620011c157620011c062001346565b5b620011f6565b620011d6848484600162001065565b92509050818404811115620011f057620011ef62001346565b5b81810290505b9392505050565b60006200120a82620012e3565b91506200121783620012e3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001253576200125262001346565b5b828202905092915050565b60006200126b82620012e3565b91506200127883620012e3565b9250828210156200128e576200128d62001346565b5b828203905092915050565b6000620012a682620012c3565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600069ffffffffffffffffffff82169050919050565b60005b838110156200133057808201518184015260208101905062001313565b8381111562001340576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f767573642d616464726573732d69732d7a65726f000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6164642d696e2d6c6973742d6661696c65640000000000000000000000000000600082015250565b7f70726963652d69732d696e76616c696400000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6200155e8162001299565b81146200156a57600080fd5b50565b6200157881620012ad565b81146200158457600080fd5b50565b6200159281620012b9565b81146200159e57600080fd5b50565b620015ac81620012e3565b8114620015b857600080fd5b50565b620015c681620012ed565b8114620015d257600080fd5b50565b620015e081620012fa565b8114620015ec57600080fd5b50565b60805160601c6139c2620016316000396000818161044001528181610b3201528181610c1401528181610dbb01528181611176015261172901526139c26000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806361d027b3116100c3578063addd50991161007c578063addd50991461037a578063c0275a25146103aa578063c760af5c146103c6578063edac5203146103e2578063fd967f4714610400578063ffa1ad741461041e5761014d565b806361d027b3146102a457806370e2f827146102c25780638c0b09d0146102e0578063a0712d6814610310578063a3f4df7e1461032c578063ab37f4861461034a5761014d565b806340c10f191161011557806340c10f19146101e0578063482b6014146101fc5780635166c96a1461022c57806359011cd11461024a5780635a64ad95146102685780635e1762a0146102865761014d565b80630c340a24146101525780630d4d1513146101705780631c88705d1461018c57806320ab954e146101a8578063380a0df2146101c4575b600080fd5b61015a61043c565b6040516101679190612c7f565b60405180910390f35b61018a600480360381019061018591906126f4565b6104e1565b005b6101a660048036038101906101a19190612617565b610548565b005b6101c260048036038101906101bd9190612669565b6107ac565b005b6101de60048036038101906101d9919061276c565b610988565b005b6101fa60048036038101906101f591906126b8565b610a92565b005b610216600480360381019061021191906126b8565b610aff565b604051610223919061303d565b60405180910390f35b610234610b2d565b604051610241919061303d565b60405180910390f35b610252610bf3565b60405161025f919061303d565b60405180910390f35b610270610bf9565b60405161027d919061303d565b60405180910390f35b61028e610bff565b60405161029b9190612d23565b60405180910390f35b6102ac610c10565b6040516102b99190612c7f565b60405180910390f35b6102ca610cb5565b6040516102d7919061303d565b60405180910390f35b6102fa60048036038101906102f59190612617565b610cbb565b6040516103079190612c7f565b60405180910390f35b61032a6004803603810190610325919061276c565b610cee565b005b610334610e51565b6040516103419190612d7b565b60405180910390f35b610364600480360381019061035f9190612617565b610e8a565b6040516103719190612d45565b60405180910390f35b610394600480360381019061038f9190612617565b610ea7565b6040516103a19190612c7f565b60405180910390f35b6103c460048036038101906103bf919061276c565b610eda565b005b6103e060048036038101906103db919061276c565b611025565b005b6103ea611174565b6040516103f79190612d60565b60405180910390f35b610408611198565b604051610415919061303d565b60405180910390f35b61042661119e565b6040516104339190612d7b565b60405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a457600080fd5b505afa1580156104b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104dc9190612640565b905090565b60026000541415610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051e90612ffd565b60405180910390fd5b600260008190555061053a83838361137d565b506001600081905550505050565b61055061043c565b73ffffffffffffffffffffffffffffffffffffffff1661056e611813565b73ffffffffffffffffffffffffffffffffffffffff16146105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb90612dfd565b60405180910390fd5b6105d881600661181b90919063ffffffff16565b610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90612e9d565b60405180910390fd5b6106a2600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008373ffffffffffffffffffffffffffffffffffffffff166112079092919063ffffffff16565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558073ffffffffffffffffffffffffffffffffffffffff167f3e4130008265a57fa3e4f3cc37bc1d691652b77b4407bd08ddea997b2eda436760405160405180910390a250565b6107b461043c565b73ffffffffffffffffffffffffffffffffffffffff166107d2611813565b73ffffffffffffffffffffffffffffffffffffffff1614610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081f90612dfd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f90612e1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff90612d9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f90612efd565b60405180910390fd5b61098383838361184b565b505050565b61099061043c565b73ffffffffffffffffffffffffffffffffffffffff166109ae611813565b73ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90612dfd565b60405180910390fd5b6000600254905081811415610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590612dbd565b60405180910390fd5b7f8353d6f6057b53994c31faf6112674bd84b37caab3af81c269080ae9904ebbeb8183604051610a7f929190613058565b60405180910390a1816002819055505050565b60026000541415610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612ffd565b60405180910390fd5b6002600081905550610af28282610aed611813565b61137d565b5060016000819055505050565b6000610b15836006611bed90919063ffffffff16565b15610b2757610b248383611c1d565b90505b92915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190612795565b90506000600254905081811115610bee578181610beb9190613383565b92505b505090565b60035481565b60015481565b6060610c0b6006611f75565b905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb09190612640565b905090565b60025481565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cf661043c565b73ffffffffffffffffffffffffffffffffffffffff16610d14611813565b73ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6190612dfd565b60405180910390fd5b6000610d74610b2d565b905081811015610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090612f1d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f19610dfd611813565b846040518363ffffffff1660e01b8152600401610e1b929190612cfa565b600060405180830381600087803b158015610e3557600080fd5b505af1158015610e49573d6000803e3d6000fd5b505050505050565b6040518060400160405280600b81526020017f565553442d4d696e74657200000000000000000000000000000000000000000081525081565b6000610ea0826006611bed90919063ffffffff16565b9050919050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ee261043c565b73ffffffffffffffffffffffffffffffffffffffff16610f00611813565b73ffffffffffffffffffffffffffffffffffffffff1614610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d90612dfd565b60405180910390fd5b612710811115610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9290612f3d565b60405180910390fd5b806001541415610fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd790612fdd565b60405180910390fd5b7f85735a3ef929fdaaf946ddf4b97deec396e7347cbb47fea3d6a8f3934e1b02e360015482604051611013929190613058565b60405180910390a18060018190555050565b61102d61043c565b73ffffffffffffffffffffffffffffffffffffffff1661104b611813565b73ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890612dfd565b60405180910390fd5b6127108111156110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612edd565b60405180910390fd5b6000600354905081811415611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612f5d565b60405180910390fd5b7f3cb23ae97dcd603618548f333b96dbb9e41059b6fd0eb7face59058c5ac3b11b8183604051611161929190613058565b60405180910390a1816003819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61271081565b6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b60006111ff836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611f96565b905092915050565b60008114806112a0575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161124e929190612c9a565b60206040518083038186803b15801561126657600080fd5b505afa15801561127a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129e9190612795565b145b6112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d69061301d565b60405180910390fd5b6113608363095ea7b360e01b84846040516024016112fe929190612cfa565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612006565b505050565b606061137484846000856120cd565b90509392505050565b6000611393846006611bed90919063ffffffff16565b6113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612e3d565b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161140d9190612c7f565b60206040518083038186803b15801561142557600080fd5b505afa158015611439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145d9190612795565b905061149361146a611813565b30868873ffffffffffffffffffffffffffffffffffffffff166121e1909392919063ffffffff16565b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114ce9190612c7f565b60206040518083038186803b1580156114e657600080fd5b505afa1580156114fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151e9190612795565b90506000828261152e9190613383565b905061153a8782611c1d565b93506000600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663a0712d68856040518263ffffffff1660e01b81526004016115db919061303d565b602060405180830381600087803b1580156115f557600080fd5b505af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d9190612795565b1461166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490612fbd565b60405180910390fd5b611727611678610c10565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116b19190612c7f565b60206040518083038186803b1580156116c957600080fd5b505afa1580156116dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117019190612795565b8373ffffffffffffffffffffffffffffffffffffffff1661226a9092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1987876040518363ffffffff1660e01b8152600401611782929190612cfa565b600060405180830381600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff167fa8137fff86647d8a402117b9c5dbda627f721d3773338fb9678c83e54ed390808884888a6040516118009493929190613081565b60405180910390a2505050509392505050565b600033905090565b6000611843836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6122f0565b905092915050565b61185f8360066111d790919063ffffffff16565b61189e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189590612e7d565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e657600080fd5b505afa1580156118fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191e9190612835565b905060008273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561196857600080fd5b505afa15801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a091906127be565b5050509150506000819050600083600a6119ba919061320b565b90506000612710600354836119cf9190613329565b6119d99190613187565b9050600081836119e99190613131565b9050600082846119f99190613383565b9050818511158015611a0b5750808510155b611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190612ebd565b60405180910390fd5b87600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b91897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c73ffffffffffffffffffffffffffffffffffffffff166112079092919063ffffffff16565b8973ffffffffffffffffffffffffffffffffffffffff167ff264178f70a222c6991bf4849b98c3722e9f54b6e89d1fb550509113e60ae0b78a8a604051611bd9929190612c9a565b60405180910390a250505050505050505050565b6000611c15836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612476565b905092915050565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611cca57600080fd5b505afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d029190612835565b905060008273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015611d4c57600080fd5b505afa158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8491906127be565b5050509150506000819050600083600a611d9e919061320b565b9050600061271060035483611db39190613329565b611dbd9190613187565b905060008183611dcd9190613131565b905060008284611ddd9190613383565b9050818511158015611def5750808510155b611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590612e5d565b60405180910390fd5b6000612710600154612710611e439190613383565b8c611e4e9190613329565b611e589190613187565b9050848682611e679190613329565b611e719190613187565b99508b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb957600080fd5b505afa158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef19190612835565b6012611efd91906133b7565b600a611f09919061320b565b8a611f149190613329565b99506000611f20610b2d565b90508a811015611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c90612f1d565b60405180910390fd5b5050505050505050505092915050565b60606000611f8583600001612499565b905060608190508092505050919050565b6000611fa28383612476565b611ffb578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612000565b600090505b92915050565b6000612068826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113659092919063ffffffff16565b90506000815111156120c857808060200190518101906120889190612743565b6120c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120be90612f9d565b60405180910390fd5b5b505050565b606082471015612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990612ddd565b60405180910390fd5b61211b856124f5565b61215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190612f7d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516121839190612c68565b60006040518083038185875af1925050503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121d5828286612508565b92505050949350505050565b612264846323b872dd60e01b85858560405160240161220293929190612cc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612006565b50505050565b6122eb8363a9059cbb60e01b8484604051602401612289929190612cfa565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612006565b505050565b6000808360010160008481526020019081526020016000205490506000811461246a5760006001826123229190613383565b905060006001866000018054905061233a9190613383565b90508181146123f5576000866000018281548110612381577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050808760000184815481106123cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061242f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612470565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156124e957602002820191906000526020600020905b8154815260200190600101908083116124d5575b50505050509050919050565b600080823b905060008111915050919050565b6060831561251857829050612568565b60008351111561252b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f9190612d7b565b60405180910390fd5b9392505050565b60008135905061257e81613902565b92915050565b60008151905061259381613902565b92915050565b6000815190506125a881613919565b92915050565b6000815190506125bd81613930565b92915050565b6000813590506125d281613947565b92915050565b6000815190506125e781613947565b92915050565b6000815190506125fc81613975565b92915050565b6000815190506126118161395e565b92915050565b60006020828403121561262957600080fd5b60006126378482850161256f565b91505092915050565b60006020828403121561265257600080fd5b600061266084828501612584565b91505092915050565b60008060006060848603121561267e57600080fd5b600061268c8682870161256f565b935050602061269d8682870161256f565b92505060406126ae8682870161256f565b9150509250925092565b600080604083850312156126cb57600080fd5b60006126d98582860161256f565b92505060206126ea858286016125c3565b9150509250929050565b60008060006060848603121561270957600080fd5b60006127178682870161256f565b9350506020612728868287016125c3565b92505060406127398682870161256f565b9150509250925092565b60006020828403121561275557600080fd5b600061276384828501612599565b91505092915050565b60006020828403121561277e57600080fd5b600061278c848285016125c3565b91505092915050565b6000602082840312156127a757600080fd5b60006127b5848285016125d8565b91505092915050565b600080600080600060a086880312156127d657600080fd5b60006127e4888289016125ed565b95505060206127f5888289016125ae565b9450506040612806888289016125d8565b9350506060612817888289016125d8565b9250506080612828888289016125ed565b9150509295509295909350565b60006020828403121561284757600080fd5b600061285584828501612602565b91505092915050565b600061286a8383612876565b60208301905092915050565b61287f816133eb565b82525050565b61288e816133eb565b82525050565b600061289f826130d6565b6128a98185613104565b93506128b4836130c6565b8060005b838110156128e55781516128cc888261285e565b97506128d7836130f7565b9250506001810190506128b8565b5085935050505092915050565b6128fb816133fd565b82525050565b600061290c826130e1565b6129168185613115565b9350612926818560208601613484565b80840191505092915050565b61293b81613460565b82525050565b600061294c826130ec565b6129568185613120565b9350612966818560208601613484565b61296f81613515565b840191505092915050565b6000612987601683613120565b915061299282613533565b602082019050919050565b60006129aa600f83613120565b91506129b58261355c565b602082019050919050565b60006129cd602683613120565b91506129d882613585565b604082019050919050565b60006129f0601a83613120565b91506129fb826135d4565b602082019050919050565b6000612a13601583613120565b9150612a1e826135fd565b602082019050919050565b6000612a36601683613120565b9150612a4182613626565b602082019050919050565b6000612a59601d83613120565b9150612a648261364f565b602082019050919050565b6000612a7c601283613120565b9150612a8782613678565b602082019050919050565b6000612a9f601783613120565b9150612aaa826136a1565b602082019050919050565b6000612ac2601083613120565b9150612acd826136ca565b602082019050919050565b6000612ae5601a83613120565b9150612af0826136f3565b602082019050919050565b6000612b08601683613120565b9150612b138261371c565b602082019050919050565b6000612b2b601283613120565b9150612b3682613745565b602082019050919050565b6000612b4e601983613120565b9150612b598261376e565b602082019050919050565b6000612b71601a83613120565b9150612b7c82613797565b602082019050919050565b6000612b94601d83613120565b9150612b9f826137c0565b602082019050919050565b6000612bb7602a83613120565b9150612bc2826137e9565b604082019050919050565b6000612bda601283613120565b9150612be582613838565b602082019050919050565b6000612bfd601083613120565b9150612c0882613861565b602082019050919050565b6000612c20601f83613120565b9150612c2b8261388a565b602082019050919050565b6000612c43603683613120565b9150612c4e826138b3565b604082019050919050565b612c6281613433565b82525050565b6000612c748284612901565b915081905092915050565b6000602082019050612c946000830184612885565b92915050565b6000604082019050612caf6000830185612885565b612cbc6020830184612885565b9392505050565b6000606082019050612cd86000830186612885565b612ce56020830185612885565b612cf26040830184612c59565b949350505050565b6000604082019050612d0f6000830185612885565b612d1c6020830184612c59565b9392505050565b60006020820190508181036000830152612d3d8184612894565b905092915050565b6000602082019050612d5a60008301846128f2565b92915050565b6000602082019050612d756000830184612932565b92915050565b60006020820190508181036000830152612d958184612941565b905092915050565b60006020820190508181036000830152612db68161297a565b9050919050565b60006020820190508181036000830152612dd68161299d565b9050919050565b60006020820190508181036000830152612df6816129c0565b9050919050565b60006020820190508181036000830152612e16816129e3565b9050919050565b60006020820190508181036000830152612e3681612a06565b9050919050565b60006020820190508181036000830152612e5681612a29565b9050919050565b60006020820190508181036000830152612e7681612a4c565b9050919050565b60006020820190508181036000830152612e9681612a6f565b9050919050565b60006020820190508181036000830152612eb681612a92565b9050919050565b60006020820190508181036000830152612ed681612ab5565b9050919050565b60006020820190508181036000830152612ef681612ad8565b9050919050565b60006020820190508181036000830152612f1681612afb565b9050919050565b60006020820190508181036000830152612f3681612b1e565b9050919050565b60006020820190508181036000830152612f5681612b41565b9050919050565b60006020820190508181036000830152612f7681612b64565b9050919050565b60006020820190508181036000830152612f9681612b87565b9050919050565b60006020820190508181036000830152612fb681612baa565b9050919050565b60006020820190508181036000830152612fd681612bcd565b9050919050565b60006020820190508181036000830152612ff681612bf0565b9050919050565b6000602082019050818103600083015261301681612c13565b9050919050565b6000602082019050818103600083015261303681612c36565b9050919050565b60006020820190506130526000830184612c59565b92915050565b600060408201905061306d6000830185612c59565b61307a6020830184612c59565b9392505050565b60006080820190506130966000830187612c59565b6130a36020830186612c59565b6130b06040830185612c59565b6130bd6060830184612885565b95945050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061313c82613433565b915061314783613433565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561317c5761317b6134b7565b5b828201905092915050565b600061319282613433565b915061319d83613433565b9250826131ad576131ac6134e6565b5b828204905092915050565b6000808291508390505b6001851115613202578086048111156131de576131dd6134b7565b5b60018516156131ed5780820291505b80810290506131fb85613526565b94506131c2565b94509492505050565b600061321682613433565b91506132218361343d565b925061324e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613256565b905092915050565b6000826132665760019050613322565b816132745760009050613322565b816001811461328a5760028114613294576132c3565b6001915050613322565b60ff8411156132a6576132a56134b7565b5b8360020a9150848211156132bd576132bc6134b7565b5b50613322565b5060208310610133831016604e8410600b84101617156132f85782820a9050838111156132f3576132f26134b7565b5b613322565b61330584848460016131b8565b9250905081840481111561331c5761331b6134b7565b5b81810290505b9392505050565b600061333482613433565b915061333f83613433565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613378576133776134b7565b5b828202905092915050565b600061338e82613433565b915061339983613433565b9250828210156133ac576133ab6134b7565b5b828203905092915050565b60006133c28261343d565b91506133cd8361343d565b9250828210156133e0576133df6134b7565b5b828203905092915050565b60006133f682613413565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600069ffffffffffffffffffff82169050919050565b600061346b82613472565b9050919050565b600061347d82613413565b9050919050565b60005b838110156134a2578082015181840152602081019050613487565b838111156134b1576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f63546f6b656e2d616464726573732d69732d7a65726f00000000000000000000600082015250565b7f73616d652d6d696e742d6c696d69740000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000600082015250565b7f746f6b656e2d616464726573732d69732d7a65726f0000000000000000000000600082015250565b7f746f6b656e2d69732d6e6f742d737570706f7274656400000000000000000000600082015250565b7f6f7261636c652d70726963652d6578636565642d746f6c6572616e6365000000600082015250565b7f6164642d696e2d6c6973742d6661696c65640000000000000000000000000000600082015250565b7f72656d6f76652d66726f6d2d6c6973742d6661696c6564000000000000000000600082015250565b7f70726963652d69732d696e76616c696400000000000000000000000000000000600082015250565b7f70726963652d646576696174696f6e2d69732d696e76616c6964000000000000600082015250565b7f6f7261636c652d616464726573732d69732d7a65726f00000000000000000000600082015250565b7f6d696e742d6c696d69742d726561636865640000000000000000000000000000600082015250565b7f6d696e74696e672d6665652d6c696d69742d7265616368656400000000000000600082015250565b7f73616d652d70726963652d646576696174696f6e2d6c696d6974000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f63546f6b656e2d6d696e742d6661696c65640000000000000000000000000000600082015250565b7f73616d652d6d696e74696e672d66656500000000000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61390b816133eb565b811461391657600080fd5b50565b613922816133fd565b811461392d57600080fd5b50565b61393981613409565b811461394457600080fd5b50565b61395081613433565b811461395b57600080fd5b50565b6139678161343d565b811461397257600080fd5b50565b61397e8161344a565b811461398957600080fd5b5056fea26469706673582212200701d8b53b06f2ad1de75cbb72b6f6e02905d9bbaabf68703e204ce82ba51fea64736f6c63430008030033000000000000000000000000677ddbd918637e5f2c79e164d402454de7da86190000000000000000000000000000000000000000019d971e4fe8401e74000000