[ { "inputs": [ { "internalType": "address", "name": "redemptionManager", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Redeemed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Reissued", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "contract IERC20", "name": "feeCurrency", "type": "address" } ], "name": "TokenRedeemed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REDEEMER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REISSUER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "isRedeemed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "isTokenPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "markAsRedeemed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pauseAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "pauseToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IERC20", "name": "feeCurrency", "type": "address" }, { "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "redeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "reissue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "redemptionManager", "type": "address" } ], "name": "setRedemptionManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "newTokenURI", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpauseAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "unpauseToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620038e7380380620038e783398101604081905262000034916200026f565b6040518060400160405280601f81526020017f57617463682d6261636b6564204e46547320627920576174636865732e696f00815250604051806040016040528060038152602001622ba12760e91b815250816000908162000097919062000346565b506001620000a6828262000346565b50506001600a5550600c805460ff19169055601180546001600160a01b0319166001600160a01b038316179055620001067f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6620001003390565b620001ca565b62000113600033620001ca565b6200013f7ffe011603ea01500e110e20bbb85b34467787bd21fff6953c894dcd7f75048f7933620001ca565b6200016b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620001ca565b620001977f44ac9762eec3a11893fefb11d028bb3102560094137c3ed4518712475b2577cc33620001ca565b620001c37f44ac9762eec3a11893fefb11d028bb3102560094137c3ed4518712475b2577cc82620001ca565b5062000412565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff166200026b576000828152600b602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200022a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000602082840312156200028257600080fd5b81516001600160a01b03811681146200029a57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002cc57607f821691505b602082108103620002ed57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034157600081815260208120601f850160051c810160208610156200031c5750805b601f850160051c820191505b818110156200033d5782815560010162000328565b5050505b505050565b81516001600160401b03811115620003625762000362620002a1565b6200037a81620003738454620002b7565b84620002f3565b602080601f831160018114620003b25760008415620003995750858301515b600019600386901b1c1916600185901b1785556200033d565b600085815260208120601f198616915b82811015620003e357888601518255948401946001909101908401620003c2565b5085821015620004025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6134c580620004226000396000f3fe608060405234801561001057600080fd5b50600436106102ad5760003560e01c80636352211e1161017b578063b88d4fde116100d8578063d64473681161008c578063e63ab1e911610071578063e63ab1e914610606578063e985e9c51461062d578063fbd395f81461067657600080fd5b8063d6447368146105d0578063d855ef78146105f357600080fd5b8063d0def521116100bd578063d0def52114610583578063d539139314610596578063d547741f146105bd57600080fd5b8063b88d4fde1461055d578063c87b56dd1461057057600080fd5b80638a2ddd031161012f57806395d89b411161011457806395d89b411461053a578063a217fddf14610542578063a22cb4651461054a57600080fd5b80638a2ddd03146104ec57806391d14854146104f457600080fd5b8063776ab63411610160578063776ab6341461048b5780637fa46ab41461049e57806383a1dd9f146104c557600080fd5b80636352211e1461046557806370a082311461047857600080fd5b8063248a9ca31161022957806342842e0e116101dd578063595c6a67116101c2578063595c6a671461043f5780635c975abb146104475780635e8a0c421461045257600080fd5b806342842e0e146104195780634f6ccce71461042c57600080fd5b80632f745c591161020e5780632f745c59146103d057806332d33cd0146103e357806336568abe1461040657600080fd5b8063248a9ca31461039a5780632f2ff15d146103bd57600080fd5b80630df9ef2c1161028057806318160ddd1161026557806318160ddd1461036257806319f477d91461037457806323b872dd1461038757600080fd5b80630df9ef2c1461033c578063162094c41461034f57600080fd5b806301ffc9a7146102b257806306fdde03146102da578063081812fc146102ef578063095ea7b314610327575b600080fd5b6102c56102c0366004612bee565b610689565b60405190151581526020015b60405180910390f35b6102e261069a565b6040516102d19190612c79565b6103026102fd366004612c8c565b61072c565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102d1565b61033a610335366004612cc7565b610760565b005b61033a61034a366004612cf3565b6108bd565b61033a61035d366004612df3565b610910565b6008545b6040519081526020016102d1565b6102c5610382366004612c8c565b6109d0565b61033a610395366004612e3a565b610a78565b6103666103a8366004612c8c565b6000908152600b602052604090206001015490565b61033a6103cb366004612e7b565b610aff565b6103666103de366004612cc7565b610b24565b6102c56103f1366004612c8c565b6000908152600e602052604090205460ff1690565b61033a610414366004612e7b565b610bd9565b61033a610427366004612e3a565b610c72565b61036661043a366004612c8c565b610c8d565b61033a610d31565b600c5460ff166102c5565b61033a610460366004612cc7565b610d66565b610302610473366004612c8c565b610f47565b610366610486366004612cf3565b610fb9565b61033a610499366004612c8c565b61106d565b6103667f44ac9762eec3a11893fefb11d028bb3102560094137c3ed4518712475b2577cc81565b6103667ffe011603ea01500e110e20bbb85b34467787bd21fff6953c894dcd7f75048f7981565b61033a6110ce565b6102c5610502366004612e7b565b6000918252600b6020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6102e2611100565b610366600081565b61033a610558366004612eb9565b61110f565b61033a61056b366004612ee7565b61111a565b6102e261057e366004612c8c565b6111a2565b6102c5610591366004612f67565b6112da565b6103667f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61033a6105cb366004612e7b565b611370565b6102c56105de366004612c8c565b6000908152600f602052604090205460ff1690565b61033a610601366004612fa1565b611395565b6103667f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6102c561063b36600461302a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b61033a610684366004612c8c565b61154d565b6000610694826115b1565b92915050565b6060600080546106a990613058565b80601f01602080910402602001604051908101604052809291908181526020018280546106d590613058565b80156107225780601f106106f757610100808354040283529160200191610722565b820191906000526020600020905b81548152906001019060200180831161070557829003601f168201915b5050505050905090565b600061073782611607565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061076b82610f47565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108135760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8216148061083c575061083c813361063b565b6108ae5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161080a565b6108b88383611678565b505050565b60006108c881611718565b50601180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600061091b81611718565b60008381526002602052604090205473ffffffffffffffffffffffffffffffffffffffff166109b25760405162461bcd60e51b815260206004820152602c60248201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860448201527f697374656e7420746f6b656e0000000000000000000000000000000000000000606482015260840161080a565b6000838152600d602052604090206109ca83826130f3565b50505050565b60007f44ac9762eec3a11893fefb11d028bb3102560094137c3ed4518712475b2577cc6109fc81611718565b6000838152600e60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f82498456531a1065f689ba348ce20bda781238c424cf36748dd40bc282831e0390610a659085815260200190565b60405180910390a1600191505b50919050565b610a823382611722565b610af45760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161080a565b6108b88383836117e2565b6000828152600b6020526040902060010154610b1a81611718565b6108b88383611a9c565b6000610b2f83610fb9565b8210610ba35760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e6473000000000000000000000000000000000000000000606482015260840161080a565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b73ffffffffffffffffffffffffffffffffffffffff81163314610c645760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161080a565b610c6e8282611b90565b5050565b6108b88383836040518060200160405280600081525061111a565b6000610c9860085490565b8210610d0c5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e64730000000000000000000000000000000000000000606482015260840161080a565b60088281548110610d1f57610d1f61320d565b90600052602060002001549050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d5b81611718565b610d63611c4b565b50565b7ffe011603ea01500e110e20bbb85b34467787bd21fff6953c894dcd7f75048f79610d9081611718565b6000828152600e602052604090205460ff16610dee5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e206973206e6f742072656465656d65642079657400000000000000604482015260640161080a565b6000828152600e602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560115490517f5e8a0c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820186905290911690635e8a0c42906044016020604051808303816000875af1158015610e9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebf919061323c565b905080610f0e5760405162461bcd60e51b815260206004820152600e60248201527f52656973737565206661696c6564000000000000000000000000000000000000604482015260640161080a565b6040518381527fcf39ee1a89fc16f5f596409d73e639b8d67a3ea459983b54db74507add2657579060200160405180910390a150505050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806106945760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161080a565b600073ffffffffffffffffffffffffffffffffffffffff82166110445760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161080a565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61109781611718565b506000908152600f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6110f881611718565b610d63611cd0565b6060600180546106a990613058565b610c6e338383611d27565b6111243383611722565b6111965760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161080a565b6109ca84848484611e3a565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff1661123c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000606482015260840161080a565b6000828152600d60205260409020805461125590613058565b80601f016020809104026020016040519081016040528092919081815260200182805461128190613058565b80156112ce5780601f106112a3576101008083540402835291602001916112ce565b820191906000526020600020905b8154815290600101906020018083116112b157829003601f168201915b50505050509050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661130681611718565b600061131160085490565b61131c906001613288565b90506113288582611ec3565b61133281856120a8565b6040518181527f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a9060200160405180910390a1506001949350505050565b6000828152600b602052604090206001015461138b81611718565b6108b88383611b90565b61139d6120c0565b6000848152600e602052604090205460ff16156113fc5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20697320616c72656164792072656465656d656400000000000000604482015260640161080a565b6011546040517f87515b90000000000000000000000000000000000000000000000000000000008152339160009173ffffffffffffffffffffffffffffffffffffffff909116906387515b909061145f908990899087908a908a9060040161329b565b6020604051808303816000875af115801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a2919061323c565b9050806114f15760405162461bcd60e51b815260206004820152601160248201527f526564656d7074696f6e204661696c6564000000000000000000000000000000604482015260640161080a565b6040805187815273ffffffffffffffffffffffffffffffffffffffff8716602082015233917f675a099843d220e2829d283422deacbf7d1692118a7569c329dd638932b6ae49910160405180910390a250506109ca6001600a55565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61157781611718565b506000908152600f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610694575061069482612119565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610d635760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161080a565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906116d282610f47565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610d63813361216f565b60008061172e83610f47565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061179c575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b806117da57508373ffffffffffffffffffffffffffffffffffffffff166117c28461072c565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661180282610f47565b73ffffffffffffffffffffffffffffffffffffffff161461188b5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161080a565b73ffffffffffffffffffffffffffffffffffffffff82166119135760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161080a565b611920838383600161220f565b8273ffffffffffffffffffffffffffffffffffffffff1661194082610f47565b73ffffffffffffffffffffffffffffffffffffffff16146119c95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161080a565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c6e576000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611b323390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610c6e576000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b611c536122cd565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ca63390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611cd8612322565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca6565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161080a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611e458484846117e2565b611e5184848484612374565b6109ca5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161080a565b73ffffffffffffffffffffffffffffffffffffffff8216611f265760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161080a565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611f985760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161080a565b611fa660008383600161220f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156120185760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161080a565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000828152600d602052604090206108b882826130f3565b6002600a54036121125760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161080a565b6002600a55565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d6300000000000000000000000000000000000000000000000000000000148061069457506106948261254d565b6000828152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c6e576121af81612630565b6121ba83602061264f565b6040516020016121cb92919061331a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b825261080a91600401612c79565b61221b8484848461287f565b600c5460ff161561226e5760405162461bcd60e51b815260206004820152601f60248201527f416c6c20746f6b656e73207472616e7366657273206172652070617573656400604482015260640161080a565b6000828152600f602052604090205460ff16156109ca5760405162461bcd60e51b815260206004820152601d60248201527f5468697320737065636966696320746f6b656e20697320706175736564000000604482015260640161080a565b600c5460ff16156123205760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161080a565b565b600c5460ff166123205760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161080a565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612542576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906123eb90339089908890889060040161339b565b6020604051808303816000875af1925050508015612444575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612441918101906133e4565b60015b6124f7573d808015612472576040519150601f19603f3d011682016040523d82523d6000602084013e612477565b606091505b5080516000036124ef5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161080a565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506117da565b506001949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806125e057507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061069457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610694565b606061069473ffffffffffffffffffffffffffffffffffffffff831660145b6060600061265e836002613401565b612669906002613288565b67ffffffffffffffff81111561268157612681612d10565b6040519080825280601f01601f1916602001820160405280156126ab576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106126e2576126e261320d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127455761274561320d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612781846002613401565b61278c906001613288565b90505b6001811115612829577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106127cd576127cd61320d565b1a60f81b8282815181106127e3576127e361320d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361282281613418565b905061278f565b5083156128785760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161080a565b9392505050565b60018111156128f65760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f727465640000000000000000000000606482015260840161080a565b8173ffffffffffffffffffffffffffffffffffffffff851661295f5761295a81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61299c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461299c5761299c8582612a09565b73ffffffffffffffffffffffffffffffffffffffff84166129c5576129c081612ac0565b612a02565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612a0257612a028482612b6f565b5050505050565b60006001612a1684610fb9565b612a20919061344d565b600083815260076020526040902054909150808214612a805773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b50600091825260076020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600681528383209183525290812055565b600854600090612ad29060019061344d565b60008381526009602052604081205460088054939450909284908110612afa57612afa61320d565b906000526020600020015490508060088381548110612b1b57612b1b61320d565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612b5357612b53613460565b6001900381819060005260206000200160009055905550505050565b6000612b7a83610fb9565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610d6357600080fd5b600060208284031215612c0057600080fd5b813561287881612bc0565b60005b83811015612c26578181015183820152602001612c0e565b50506000910152565b60008151808452612c47816020860160208601612c0b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006128786020830184612c2f565b600060208284031215612c9e57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610d6357600080fd5b60008060408385031215612cda57600080fd5b8235612ce581612ca5565b946020939093013593505050565b600060208284031215612d0557600080fd5b813561287881612ca5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115612d5a57612d5a612d10565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612da057612da0612d10565b81604052809350858152868686011115612db957600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612de457600080fd5b61287883833560208501612d3f565b60008060408385031215612e0657600080fd5b82359150602083013567ffffffffffffffff811115612e2457600080fd5b612e3085828601612dd3565b9150509250929050565b600080600060608486031215612e4f57600080fd5b8335612e5a81612ca5565b92506020840135612e6a81612ca5565b929592945050506040919091013590565b60008060408385031215612e8e57600080fd5b823591506020830135612ea081612ca5565b809150509250929050565b8015158114610d6357600080fd5b60008060408385031215612ecc57600080fd5b8235612ed781612ca5565b91506020830135612ea081612eab565b60008060008060808587031215612efd57600080fd5b8435612f0881612ca5565b93506020850135612f1881612ca5565b925060408501359150606085013567ffffffffffffffff811115612f3b57600080fd5b8501601f81018713612f4c57600080fd5b612f5b87823560208401612d3f565b91505092959194509250565b60008060408385031215612f7a57600080fd5b8235612f8581612ca5565b9150602083013567ffffffffffffffff811115612e2457600080fd5b60008060008060608587031215612fb757600080fd5b843593506020850135612fc981612ca5565b9250604085013567ffffffffffffffff80821115612fe657600080fd5b818701915087601f830112612ffa57600080fd5b81358181111561300957600080fd5b88602082850101111561301b57600080fd5b95989497505060200194505050565b6000806040838503121561303d57600080fd5b823561304881612ca5565b91506020830135612ea081612ca5565b600181811c9082168061306c57607f821691505b602082108103610a72577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f8211156108b857600081815260208120601f850160051c810160208610156130cc5750805b601f850160051c820191505b818110156130eb578281556001016130d8565b505050505050565b815167ffffffffffffffff81111561310d5761310d612d10565b6131218161311b8454613058565b846130a5565b602080601f831160018114613174576000841561313e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556130eb565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156131c1578886015182559484019460019091019084016131a2565b50858210156131fd57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561324e57600080fd5b815161287881612eab565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561069457610694613259565b858152600073ffffffffffffffffffffffffffffffffffffffff808716602084015280861660408401525060806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613352816017850160208801612c0b565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161338f816028840160208801612c0b565b01602801949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526133da6080830184612c2f565b9695505050505050565b6000602082840312156133f657600080fd5b815161287881612bc0565b808202811582820484141761069457610694613259565b60008161342757613427613259565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b8181038181111561069457610694613259565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212206efe40efabf0a6549b6d59b6d1424344009de4a4096c859fc195bb8e0a77df7c64736f6c634300081400330000000000000000000000007b2ddc606c1fa70581110bff5e9ccfe392aa839e
0xa26469706673582212206efe40efabf0a6549b6d59b6d1424344009de4a4096c859fc195bb8e0a77df7c64736f6c634300081400330000000000000000000000007b2ddc606c1fa70581110bff5e9ccfe392aa839e
----Decoded View------------Arg [0] : redemptionManager (address): 0x40EfaBF0a6549B6d59B6D1424344009de4a4096C
----Encoded View------------Arg [0] : 0x00000000000000000000000040efabf0a6549b6d59b6d1424344009de4a4096c