[ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "mintTokens", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "NewAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract KineControllerInterface", "name": "oldController", "type": "address" }, { "indexed": false, "internalType": "contract KineControllerInterface", "name": "newController", "type": "address" } ], "name": "NewController", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldPendingAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newPendingAdmin", "type": "address" } ], "name": "NewPendingAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "redeemer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "redeemTokens", "type": "uint256" } ], "name": "Redeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "constant": false, "inputs": [], "name": "_acceptAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "_becomeImplementation", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "_resignImplementation", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "contract KineControllerInterface", "name": "newController", "type": "address" } ], "name": "_setController", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address payable", "name": "newPendingAdmin", "type": "address" } ], "name": "_setPendingAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "admin", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "controller", "outputs": [ { "internalType": "contract KineControllerInterface", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountSnapshot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getCash", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "underlying_", "type": "address" }, { "internalType": "contract KineControllerInterface", "name": "controller_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "contract KineControllerInterface", "name": "controller_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "initialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isKToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "mintAmount", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "pendingAdmin", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "redeemTokens", "type": "uint256" } ], "name": "redeem", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "liquidator", "type": "address" }, { "internalType": "address", "name": "borrower", "type": "address" }, { "internalType": "uint256", "name": "seizeTokens", "type": "uint256" } ], "name": "seize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b506129e3806100206000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806383de424e116100f9578063c37f68e211610097578063e9c714f211610071578063e9c714f2146106b8578063f6d2ee86146106c0578063f77c4791146107fe578063f851a44014610806576101c4565b8063c37f68e21461062e578063db006a751461066d578063dd62ed3e1461068a576101c4565b8063a0712d68116100d3578063a0712d6814610589578063a9059cbb146105a6578063b2a02ff1146105d2578063b71d1a0c14610608576101c4565b806383de424e146104145780638420ce991461043a57806395d89b4114610581576101c4565b806329d9109c1161016657806356e677281161014057806356e677281461033a5780635c60da1b146103de5780636f307dc3146103e657806370a08231146103ee576101c4565b806329d9109c1461030c578063313ce567146103145780633b1d21a214610332576101c4565b8063158ef93e116101a2578063158ef93e1461029057806318160ddd1461029857806323b872dd146102b257806326782247146102e8576101c4565b806306fdde03146101c9578063095ea7b314610246578063153ab50514610286575b600080fd5b6101d161080e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102726004803603604081101561025c57600080fd5b506001600160a01b03813516906020013561089b565b604080519115158252519081900360200190f35b61028e610906565b005b610272610956565b6102a0610964565b60408051918252519081900360200190f35b610272600480360360608110156102c857600080fd5b506001600160a01b0381358116916020810135909116906040013561096a565b6102f06109dc565b604080516001600160a01b039092168252519081900360200190f35b6102726109eb565b61031c6109f0565b6040805160ff9092168252519081900360200190f35b6102a06109f9565b61028e6004803603602081101561035057600080fd5b810190602081018135600160201b81111561036a57600080fd5b82018360208201111561037c57600080fd5b803590602001918460018302840111600160201b8311171561039d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a09945050505050565b6102f0610a5a565b6102f0610a69565b6102a06004803603602081101561040457600080fd5b50356001600160a01b0316610a78565b61028e6004803603602081101561042a57600080fd5b50356001600160a01b0316610a93565b61028e600480360360a081101561045057600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561048357600080fd5b82018360208201111561049557600080fd5b803590602001918460018302840111600160201b831117156104b657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff169150610c059050565b6101d1610ca0565b6102a06004803603602081101561059f57600080fd5b5035610cf8565b610272600480360360408110156105bc57600080fd5b506001600160a01b038135169060200135610d09565b61028e600480360360608110156105e857600080fd5b506001600160a01b03813581169160208101359091169060400135610d7a565b61028e6004803603602081101561061e57600080fd5b50356001600160a01b0316610de6565b6106546004803603602081101561064457600080fd5b50356001600160a01b0316610e97565b6040805192835260208301919091528051918290030190f35b61028e6004803603602081101561068357600080fd5b5035610eb2565b6102a0600480360360408110156106a057600080fd5b506001600160a01b0381358116916020013516610ebb565b61028e610ee6565b61028e600480360360808110156106d657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561070057600080fd5b82018360208201111561071257600080fd5b803590602001918460018302840111600160201b8311171561073357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561078557600080fd5b82018360208201111561079757600080fd5b803590602001918460018302840111600160201b831117156107b857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061100a9050565b6102f06110fe565b6102f061110d565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108935780601f1061086857610100808354040283529160200191610893565b820191906000526020600020905b81548152906001019060200180831161087657829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b03871680855290835281842086905581518681529151939493909284927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060019392505050565b60035461010090046001600160a01b031633146109545760405162461bcd60e51b815260040180806020018281038252602d815260200180612892602d913960400191505060405180910390fd5b565b600054610100900460ff1681565b60065481565b6000805460ff166109af576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191690556109c533858585611121565b5060016000805460ff191660011790559392505050565b6004546001600160a01b031681565b600181565b60035460ff1681565b6000610a036115e5565b90505b90565b60035461010090046001600160a01b03163314610a575760405162461bcd60e51b815260040180806020018281038252602d81526020018061295a602d913960400191505060405180910390fd5b50565b600a546001600160a01b031681565b6009546001600160a01b031681565b6001600160a01b031660009081526007602052604090205490565b60035461010090046001600160a01b03163314610ae15760405162461bcd60e51b81526004018080602001828103825260218152602001806127d36021913960400191505060405180910390fd5b60055460408051634e1647fb60e01b815290516001600160a01b0392831692841691634e1647fb916004808301926020929190829003018186803b158015610b2857600080fd5b505afa158015610b3c573d6000803e3d6000fd5b505050506040513d6020811015610b5257600080fd5b5051610ba5576040805162461bcd60e51b815260206004820152601c60248201527f6d61726b6572206d6574686f642072657475726e65642066616c736500000000604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b03848116918217909255604080519284168352602083019190915280517ff9b6a28700579d5c8fab50f0ac2dcaa52109b85c369c4f511fcc873330ab6cbb9281900390910190a15050565b610c118484848461100a565b600980546001600160a01b0319166001600160a01b038781169190911791829055604080516318160ddd60e01b8152905192909116916318160ddd91600480820192602092909190829003018186803b158015610c6d57600080fd5b505afa158015610c81573d6000803e3d6000fd5b505050506040513d6020811015610c9757600080fd5b50505050505050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108935780601f1061086857610100808354040283529160200191610893565b6000610d0382611665565b92915050565b6000805460ff16610d4e576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19169055610d6433808585611121565b5060016000805460ff1916600117905592915050565b60005460ff16610dbe576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19169055610dd4338484846116d2565b50506000805460ff1916600117905550565b60035461010090046001600160a01b03163314610e345760405162461bcd60e51b81526004018080602001828103825260218152602001806127d36021913960400191505060405180910390fd5b600480546001600160a01b038381166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b6001600160a01b031660009081526007602052604081205491565b610a5781611a80565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6004546001600160a01b031633148015610eff57503315155b610f3f576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b60038054600480546001600160a01b03818116610100818102610100600160a81b0319871617968790556001600160a01b031990931690935560408051948390048216808652929095041660208401528351909391927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600454604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a15050565b60035461010090046001600160a01b031633146110585760405162461bcd60e51b81526004018080602001828103825260248152602001806127f46024913960400191505060405180910390fd5b600054610100900460ff161561109f5760405162461bcd60e51b81526004018080602001828103825260238152602001806128186023913960400191505060405180910390fd5b6110a884610a93565b82516110bb9060019060208601906126f8565b5081516110cf9060029060208501906126f8565b506003805460ff90921660ff199283161790556000805461ff0019921660011791909116610100179055505050565b6005546001600160a01b031681565b60035461010090046001600160a01b031681565b600554604080516317b9b84b60e31b81523060048201526001600160a01b0386811660248301528581166044830152606482018590529151600093606093169163bdcdc258916084808301928792919082900301818387803b15801561118657600080fd5b505af115801561119a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156111c357600080fd5b815160208301805160405192949293830192919084600160201b8211156111e957600080fd5b9083019060208201858111156111fe57600080fd5b8251600160201b81118282018810171561121757600080fd5b82525081516020918201929091019080838360005b8381101561124457818101518382015260200161122c565b50505050905090810190601f1680156112715780820380516001836020036101000a031916815260200191505b50604052505050915091508181906113075760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112cc5781810151838201526020016112b4565b50505050905090810190601f1680156112f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50836001600160a01b0316856001600160a01b031614156040518060400160405280600981526020016810905117d25394155560ba1b8152509061138c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b5060006001600160a01b0387811690871614156113ac57506000196113d4565b506001600160a01b038086166000908152600860209081526040808320938a16835292905220545b600061141785604051806040016040528060148152602001731514905394d1915497d393d517d0531313d5d15160621b81525084611ae89092919063ffffffff16565b60408051808201825260138152720a8a4829ca68c8aa4be9c9ea8be8a9c9eaa8e9606b1b6020808301919091526001600160a01b038b166000908152600790915291822054929350909161147291889063ffffffff611ae816565b60408051808201825260118152700a8a4829ca68c8aa4bea89e9ebe9aaa869607b1b6020808301919091526001600160a01b038b16600090815260079091529182205492935090916114cb91899063ffffffff611b4216565b6001600160a01b03808b16600090815260076020526040808220869055918b1681522081905590506000198414611525576001600160a01b03808a166000908152600860209081526040808320938e168352929052208390555b876001600160a01b0316896001600160a01b03166000805160206128ea833981519152896040518082815260200191505060405180910390a36005546040805163352b4a3f60e11b81523060048201526001600160a01b038c811660248301528b81166044830152606482018b905291519190921691636a56947e91608480830192600092919082900301818387803b1580156115c157600080fd5b505af11580156115d5573d6000803e3d6000fd5b5050505050505050505050505050565b600954604080516370a0823160e01b815230600482015290516000926001600160a01b03169182916370a0823191602480820192602092909190829003018186803b15801561163357600080fd5b505afa158015611647573d6000803e3d6000fd5b505050506040513d602081101561165d57600080fd5b505191505090565b6000805460ff166116aa576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff191690556116be3383611ba0565b90506000805460ff19166001179055919050565b6005546040805163d02f735160e01b81523060048201526001600160a01b03878116602483015286811660448301528581166064830152608482018590529151600093606093169163d02f73519160a4808301928792919082900301818387803b15801561173f57600080fd5b505af1158015611753573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561177c57600080fd5b815160208301805160405192949293830192919084600160201b8211156117a257600080fd5b9083019060208201858111156117b757600080fd5b8251600160201b8111828201881017156117d057600080fd5b82525081516020918201929091019080838360005b838110156117fd5781810151838201526020016117e5565b50505050905090810190601f16801561182a5780820380516001836020036101000a031916815260200191505b50604052505050915091508181906118835760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b50846001600160a01b0316846001600160a01b031614156040518060400160405280601481526020017324a72b20a624a22fa0a1a1a7aaa72a2fa820a4a960611b815250906119135760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b50600061195984604051806060016040528060288152602001612932602891396001600160a01b038816600090815260076020526040902054919063ffffffff611ae816565b905060006119a085604051806060016040528060288152602001612987602891396001600160a01b038a16600090815260076020526040902054919063ffffffff611b4216565b6001600160a01b038088166000818152600760209081526040808320889055938c168083529184902085905583518a81529351949550909391926000805160206128ea833981519152929081900390910190a360055460408051636d35bf9160e01b81523060048201526001600160a01b038b811660248301528a8116604483015289811660648301526084820189905291519190921691636d35bf919160a480830192600092919082900301818387803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050505050505050505050565b60005460ff16611ac4576040805162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b604482015290519081900360640190fd5b6000805460ff19169055611ad83382611f0c565b506000805460ff19166001179055565b60008184841115611b3a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b505050900390565b60008383018285821015611b975760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b50949350505050565b60055460408051634ef4c3e160e01b81523060048201526001600160a01b0385811660248301526044820185905291516000938493606093911691634ef4c3e191606480820192879290919082900301818387803b158015611c0157600080fd5b505af1158015611c15573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015611c3e57600080fd5b815160208301805160405192949293830192919084600160201b821115611c6457600080fd5b908301906020820185811115611c7957600080fd5b8251600160201b811182820188101715611c9257600080fd5b82525081516020918201929091019080838360005b83811015611cbf578181015183820152602001611ca7565b50505050905090810190601f168015611cec5780820380516001836020036101000a031916815260200191505b5060405250505091509150818190611d455760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b50611d4e612776565b611d588686612329565b60608083018290528183526040805191820190526028808252611d8f92919061290a6020830139600654919063ffffffff611b4216565b816020018181525050611ddf81600001516040518060600160405280602b81526020016128bf602b91396001600160a01b038916600090815260076020526040902054919063ffffffff611b4216565b60408083018290526020808401516006556001600160a01b0389166000818152600783528390209390935560608085015185518451958652928501528383019190915290517f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9281900390910190a1805160408051918252516001600160a01b0388169130916000805160206128ea8339815191529181900360200190a360055460608201518251604080516341c728b960e01b81523060048201526001600160a01b038b81166024830152604482019490945260648101929092525191909216916341c728b991608480830192600092919082900301818387803b158015611ee757600080fd5b505af1158015611efb573d6000803e3d6000fd5b505050506060015195945050505050565b80611f5e576040805162461bcd60e51b815260206004820152601f60248201527f72656465656d546f6b656e73496e206d757374206e6f74206265207a65726f00604482015290519081900360640190fd5b611f6661279e565b6005546040805163eabe7d9160e01b81523060048201526001600160a01b038681166024830152604482018690529151600093606093169163eabe7d91916064808301928792919082900301818387803b158015611fc357600080fd5b505af1158015611fd7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561200057600080fd5b815160208301805160405192949293830192919084600160201b82111561202657600080fd5b90830190602082018581111561203b57600080fd5b8251600160201b81118282018810171561205457600080fd5b82525081516020918201929091019080838360005b83811015612081578181015183820152602001612069565b50505050905090810190601f1680156120ae5780820380516001836020036101000a031916815260200191505b50604052505050915091508181906121075760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b50612135846040518060600160405280602a8152602001612868602a9139600654919063ffffffff611ae816565b83526040805160608101909152602d80825261217b91869161283b60208301396001600160a01b038816600090815260076020526040902054919063ffffffff611ae816565b6020840152836121896115e5565b10156040518060400160405280601781526020017f544f4b454e5f494e53554646494349454e545f434153480000000000000000008152509061220d5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b5082516006556020808401516001600160a01b0387166000908152600790925260409091205561223d85856125d2565b60408051858152905130916001600160a01b038816916000805160206128ea8339815191529181900360200190a3604080516001600160a01b03871681526020810186905281517f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6929181900390910190a160055460408051630d91761360e31b81523060048201526001600160a01b0388811660248301526044820188905291519190921691636c8bb09891606480830192600092919082900301818387803b15801561230a57600080fd5b505af115801561231e573d6000803e3d6000fd5b505050505050505050565b600954604080516370a0823160e01b815230600482015290516000926001600160a01b031691839183916370a08231916024808301926020929190829003018186803b15801561237857600080fd5b505afa15801561238c573d6000803e3d6000fd5b505050506040513d60208110156123a257600080fd5b5051604080516323b872dd60e01b81526001600160a01b038881166004830152306024830152604482018890529151929350908416916323b872dd9160648082019260009290919082900301818387803b1580156123ff57600080fd5b505af1158015612413573d6000803e3d6000fd5b5050505060003d6000811461242f576020811461243957600080fd5b6000199150612445565b60206000803e60005191505b5060408051808201909152601881527f544f4b454e5f5452414e534645525f494e5f4641494c454400000000000000006020820152816124c65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b50600954604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561251257600080fd5b505afa158015612526573d6000803e3d6000fd5b505050506040513d602081101561253c57600080fd5b505160408051808201909152601a81527f544f4b454e5f5452414e534645525f494e5f4f564552464c4f570000000000006020820152909150838210156125c45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b509190910395945050505050565b6009546040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905291519190921691829163a9059cbb9160448082019260009290919082900301818387803b15801561262a57600080fd5b505af115801561263e573d6000803e3d6000fd5b5050505060003d6000811461265a576020811461266457600080fd5b6000199150612670565b60206000803e60005191505b5060408051808201909152601981527f544f4b454e5f5452414e534645525f4f55545f4641494c4544000000000000006020820152816126f15760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cc5781810151838201526020016112b4565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061273957805160ff1916838001178555612766565b82800160010185558215612766579182015b8281111561276657825182559160200191906001019061274b565b506127729291506127b8565b5090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b610a0691905b8082111561277257600081556001016127be56fe6f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6e6f6e6c792061646d696e206d617920696e697469616c697a6520746865206d61726b65746d61726b6574206d6179206f6e6c7920626520696e697469616c697a6564206f6e636552454445454d5f4e45575f4143434f554e545f42414c414e43455f43414c43554c4154494f4e5f4641494c454452454445454d5f4e45575f544f54414c5f535550504c595f43414c43554c4154494f4e5f4641494c45446f6e6c79207468652061646d696e206d61792063616c6c205f72657369676e496d706c656d656e746174696f6e4d494e545f4e45575f4143434f554e545f42414c414e43455f43414c43554c4154494f4e5f4641494c4544ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4d494e545f4e45575f544f54414c5f535550504c595f43414c43554c4154494f4e5f4641494c45444c49515549444154455f5345495a455f42414c414e43455f44454352454d454e545f4641494c45446f6e6c79207468652061646d696e206d61792063616c6c205f6265636f6d65496d706c656d656e746174696f6e4c49515549444154455f5345495a455f42414c414e43455f494e4352454d454e545f4641494c4544a265627a7a723158203e57a3c6200188f3fbfb24e77ecdd795b2f2a6951a5f18ff51958f1bbfc7179a64736f6c63430005100032