0 txs
0 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
creators
viewfunction creators(uint256) view returns (address)
currentTokenID
viewfunction currentTokenID(uint256) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getCoupon
viewfunction getCoupon(uint256 _baseTokenID) view returns (tuple)
getCouponInfo
viewfunction getCouponInfo(uint256 _tokenID) view returns (tuple)
getCouponPrice
viewfunction getCouponPrice(uint256 _baseTokenID) view returns (uint256)
getCouponPurchaseValue
viewfunction getCouponPurchaseValue(uint256 _tokenID) view returns (uint256)
getCouponsValue
viewfunction getCouponsValue(uint256[] tokenIds) view returns (uint256)
getCouponValue
viewfunction getCouponValue(uint256 _tokenID) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
JUICING_ROLE
viewfunction JUICING_ROLE() view returns (bytes32)
juicingStatus
viewfunction juicingStatus(uint256 tokenId) view returns (bool juicing, uint256 start, uint256 task)
maxSupply
viewfunction maxSupply(uint256 _id) view returns (uint256)
name
viewfunction name() view returns (string)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
ownerOf
viewfunction ownerOf(uint256[] tokenIds) view returns (address)
royaltyInfo
viewfunction royaltyInfo(uint256 _tokenId, uint256 _salePrice) view returns (address, uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenMaxSupply
viewfunction tokenMaxSupply(uint256) view returns (uint256)
tokenSupply
viewfunction tokenSupply(uint256) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply(uint256 _id) view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
createCoupon
nonpayablefunction createCoupon(uint256 _level, uint256 _value, uint256 _discount, uint256 _maxSupply, uint256 _couponEpochDecay, string _name, address _artist) returns (uint256 baseTokenID)
createCoupon
nonpayablefunction createCoupon(uint256 _type, string _name, address _artist) returns (uint256 baseTokenID)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _dollar)
purchaseCoupon
nonpayablefunction purchaseCoupon(uint256 _baseTokenID)
redeemCoupon
nonpayablefunction redeemCoupon(uint256 _tokenID)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseTokenURI
nonpayablefunction setBaseTokenURI(string _baseTokenURI)
setDao
nonpayablefunction setDao(address daoAddress)
setRoyaltyInfo
nonpayablefunction setRoyaltyInfo(address receiver, uint96 feeBasisPoints)
toggleJuicing
nonpayablefunction toggleJuicing(uint256[] tokenIds, bool juicing, uint256 taskId)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
Initialized
event Initialized(uint8 version)
Juiced
event Juiced(uint256 indexed tokenId, uint256 indexed taskId)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
UnJuiced
event UnJuiced(uint256 indexed tokenId, uint256 indexed taskId)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50614d4b806100206000396000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c8063869f75941161015c578063b88d4fde116100ce578063ca15c87311610087578063ca15c87314610661578063cd53d08e14610674578063d547741f1461069e578063dff8e286146106b1578063e985e9c5146106c4578063f4896d0e1461070057600080fd5b8063b88d4fde146105c4578063bd85b039146105d7578063be77ccf5146105f8578063c4d66de814610628578063c84f818b1461063b578063c87b56dd1461064e57600080fd5b806395d89b411161012057806395d89b411461055b578063991ab04f146105635780639b8909a5146105765780639ebac91414610596578063a217fddf146105a9578063a22cb465146105b157600080fd5b8063869f7594146104e15780639010d07c1461050257806391d1485414610515578063936e31691461052857806394ac99681461054857600080fd5b80632f2ff15d1161020057806347591135116101b9578063475911351461046f5780634ffab34b1461048257806353ca516d146104955780636352211e146104a85780636637b882146104bb57806370a08231146104ce57600080fd5b80632f2ff15d146103e957806330176e13146103fc578063356ea6c61461040f57806336568abe146104365780633d6a8d341461044957806342842e0e1461045c57600080fd5b8063095ea7b311610252578063095ea7b31461033a57806323b872dd1461034d578063248a9ca3146103605780632693ebf21461038357806326fffb72146103a45780632a55205a146103b757600080fd5b80624221f01461028e57806301ffc9a7146102c257806302fa7c47146102e557806306fdde03146102fa578063081812fc1461030f575b600080fd5b6102af61029c3660046140b7565b6101336020526000908152604090205481565b6040519081526020015b60405180910390f35b6102d56102d03660046140e6565b610721565b60405190151581526020016102b9565b6102f86102f336600461411f565b610732565b005b61030261074c565b6040516102b991906141ba565b61032261031d3660046140b7565b6107de565b6040516001600160a01b0390911681526020016102b9565b6102f86103483660046141cd565b610805565b6102f861035b3660046141f7565b61091b565b6102af61036e3660046140b7565b60009081526065602052604090206001015490565b6102af6103913660046140b7565b6101326020526000908152604090205481565b6102f86103b23660046140b7565b61094c565b6103ca6103c5366004614233565b610dbc565b604080516001600160a01b0390931683526020830191909152016102b9565b6102f86103f7366004614255565b610e6a565b6102f861040a36600461432d565b610e8f565b6102af7f84f866be4904f319a18e8cf4db8f4b76d6ec7d27860173c125ec640353a62a7981565b6102f8610444366004614255565b610eae565b6102af6104573660046140b7565b610f2c565b6102f861046a3660046141f7565b611059565b61032261047d3660046143a7565b611074565b6102f86104903660046140b7565b61116a565b6102af6104a33660046140b7565b611312565b6103226104b63660046140b7565b611441565b6102f86104c93660046143e9565b6114a1565b6102af6104dc3660046143e9565b6114d0565b6102af6104ef3660046140b7565b6000908152610133602052604090205490565b610322610510366004614233565b611556565b6102d5610523366004614255565b611575565b61053b6105363660046140b7565b6115a0565b6040516102b99190614468565b6102f861055636600461448b565b6116a6565b610302611718565b6102af6105713660046144e7565b611727565b6105896105843660046140b7565b611abc565b6040516102b9919061453e565b6102af6105a43660046143a7565b611beb565b6102af600081565b6102f86105bf366004614584565b611d63565b6102f86105d23660046145ae565b611d6e565b6102af6105e53660046140b7565b6000908152610132602052604090205490565b61060b6106063660046140b7565b611da6565b6040805193151584526020840192909252908201526060016102b9565b6102f86106363660046143e9565b611ddd565b6102af6106493660046140b7565b61223f565b61030261065c3660046140b7565b612435565b6102af61066f3660046140b7565b612539565b6103226106823660046140b7565b610131602052600090815260409020546001600160a01b031681565b6102f86106ac366004614255565b612550565b6102af6106bf36600461462a565b612575565b6102d56106d23660046146a8565b6001600160a01b03918216600090815260d06020908152604080832093909416825291909152205460ff1690565b6102af61070e3660046140b7565b6101346020526000908152604090205481565b600061072c82612658565b92915050565b600061073d81612698565b61074783836126a5565b505050565b606060cb805461075b906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610787906146d2565b80156107d45780601f106107a9576101008083540402835291602001916107d4565b820191906000526020600020905b8154815290600101906020018083116107b757829003601f168201915b5050505050905090565b60006107e9826127a2565b50600090815260cf60205260409020546001600160a01b031690565b600061081082611441565b9050806001600160a01b0316836001600160a01b031614156108835760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061089f575061089f81336106d2565b6109115760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161087a565b6107478383612801565b610925338261286f565b6109415760405162461bcd60e51b815260040161087a9061470d565b6107478383836128ed565b60006109578261223f565b610156546040516370a0823160e01b815233600482015291925082916001600160a01b03909116906370a082319060240160206040518083038186803b1580156109a057600080fd5b505afa1580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d8919061475a565b1015610a1b5760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567682062616c616e636560701b604482015260640161087a565b6101565460405163079cc67960e41b8152336004820152602481018390526001600160a01b03909116906379cc679090604401600060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b50505050600061015560009054906101000a90046001600160a01b03166001600160a01b031663900cf0cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b09919061475a565b9050600061015360008581526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582018054610b6e906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9a906146d2565b8015610be75780601f10610bbc57610100808354040283529160200191610be7565b820191906000526020600020905b815481529060010190602001808311610bca57829003601f168201915b5050509183525050600691909101546001600160a01b0390811660209092019190915260c08201519192501615610ca0576000610c25846064612a5e565b9050610c318482612a6a565b6101565460c08401516040516340c10f1960e01b81526001600160a01b0391821660048201526024810185905292965016906340c10f1990604401600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050505b610ca8613f74565b81815260608101849052602081018390526080820151610cc9908490612a76565b60408201526000610cda3387612a82565b9050610d0b81610d068884866000015160a0015187600001516020015188606001518960400151612b99565b612c1d565b60008181526101546020908152604091829020845180518255808301516001830155928301516002820155606083015160038201556080830151600482015560a08301518051869492938492610d6a9260058501929190910190613fa2565b5060c09190910151600690910180546001600160a01b0319166001600160a01b039092169190911790556020820151600782015560408201516008820155606090910151600990910155505050505050565b600082815260ca602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610e3157506040805180820190915260c9546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610e50906001600160601b031687614789565b610e5a91906147a8565b91519350909150505b9250929050565b600082815260656020526040902060010154610e8581612698565b6107478383612cb7565b6000610e9a81612698565b81516107479061012f906020850190613fa2565b6001600160a01b0381163314610f1e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161087a565b610f288282612cd9565b5050565b6000818152610154602052604080822081516101608101909252805460808301908152600182015460a0840152600282015460c0840152600382015460e0840152600482015461010084015260058201805485949392849290918491610120850191610f97906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc3906146d2565b80156110105780601f10610fe557610100808354040283529160200191611010565b820191906000526020600020905b815481529060010190602001808311610ff357829003601f168201915b5050509183525050600691909101546001600160a01b03166020918201529082526007830154908201526008820154604082015260099091015460609182015201519392505050565b61074783838360405180602001604052806000815250611d6e565b6000816110b65760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420746f6b656e69647360801b604482015260640161087a565b60006110da848460008181106110ce576110ce6147ca565b90506020020135611441565b90508260005b8181101561116057826001600160a01b03166111078787848181106110ce576110ce6147ca565b6001600160a01b0316146111505760405162461bcd60e51b815260206004820152601060248201526f646966666572656e74206f776e65727360801b604482015260640161087a565b611159816147e0565b90506110e0565b5090949350505050565b61117381611441565b6001600160a01b0316336001600160a01b0316146111c35760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b604482015260640161087a565b610155546040805163900cf0cf60e01b815290516000926001600160a01b03169163900cf0cf916004808301926020929190829003018186803b15801561120957600080fd5b505afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611241919061475a565b60008381526101546020526040902060088101549192509082101561129e5760405162461bcd60e51b81526020600482015260136024820152726e6f742072656465656d61626c65206e6f772160681b604482015260640161087a565b6101565460098201546040516340c10f1960e01b815233600482015260248101919091526001600160a01b03909116906340c10f1990604401600060405180830381600087803b1580156112f157600080fd5b505af1158015611305573d6000803e3d6000fd5b5050505061074783612cfb565b6000818152610154602052604080822081516101608101909252805460808301908152600182015460a0840152600282015460c0840152600382015460e084015260048201546101008401526005820180548594939284929091849161012085019161137d906146d2565b80601f01602080910402602001604051908101604052809291908181526020018280546113a9906146d2565b80156113f65780601f106113cb576101008083540402835291602001916113f6565b820191906000526020600020905b8154815290600101906020018083116113d957829003601f168201915b5050509183525050600691909101546001600160a01b031660209182015290825260078301548282015260088301546040830152600990920154606090910152905101519392505050565b600081815260cd60205260408120546001600160a01b03168061072c5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161087a565b60006114ac81612698565b5061015580546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b03821661153a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161087a565b506001600160a01b0316600090815260ce602052604090205490565b600082815260976020526040812061156e9083612d3b565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6115a8614026565b61015360008381526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582018054611609906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611635906146d2565b80156116825780601f1061165757610100808354040283529160200191611682565b820191906000526020600020905b81548152906001019060200180831161166557829003601f168201915b5050509183525050600691909101546001600160a01b031660209091015292915050565b7f84f866be4904f319a18e8cf4db8f4b76d6ec7d27860173c125ec640353a62a796116d081612698565b8360005b8181101561170f576116ff8787838181106116f1576116f16147ca565b905060200201358686612d47565b611708816147e0565b90506116d4565b50505050505050565b606060cc805461075b906146d2565b60008061173381612698565b60038511156117735760405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964207479706560a01b604482015260640161087a565b61177b614026565b8561186c576040805160e08101825261013780548252610138546020830152610139549282019290925261013a54606082015261013b54608082015261013c805491929160a0840191906117ce906146d2565b80601f01602080910402602001604051908101604052809291908181526020018280546117fa906146d2565b80156118475780601f1061181c57610100808354040283529160200191611847565b820191906000526020600020905b81548152906001019060200180831161182a57829003601f168201915b5050509183525050600691909101546001600160a01b03166020909101529050611a0b565b85600114156118c3576040805160e08101825261013e8054825261013f5460208301526101405492820192909252610141546060820152610142546080820152610143805491929160a0840191906117ce906146d2565b856002141561191a576040805160e08101825261014580548252610146546020830152610147549282019290925261014854606082015261014954608082015261014a805491929160a0840191906117ce906146d2565b8560031415611a0b576040805160e08101825261014c8054825261014d54602083015261014e549282019290925261014f546060820152610150546080820152610151805491929160a084019190611971906146d2565b80601f016020809104026020016040519081016040528092919081815260200182805461199d906146d2565b80156119ea5780601f106119bf576101008083540402835291602001916119ea565b820191906000526020600020905b8154815290600101906020018083116119cd57829003601f168201915b5050509183525050600691909101546001600160a01b031660209091015290505b60a081018590526001600160a01b03841660c08201526060810151611a2f90612e7a565b6000818152610153602090815260409182902084518155818501516001820155918401516002830155606084015160038301556080840151600483015560a084015180519396508493611a889260058501920190613fa2565b5060c09190910151600690910180546001600160a01b0319166001600160a01b039092169190911790555090949350505050565b611ac4613f74565b600082815261015460205260409081902081516101608101909252805460808301908152600182015460a0840152600282015460c0840152600382015460e08401526004820154610100840152600582018054849291849161012085019190611b2c906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611b58906146d2565b8015611ba55780601f10611b7a57610100808354040283529160200191611ba5565b820191906000526020600020905b815481529060010190602001808311611b8857829003601f168201915b5050509183525050600691909101546001600160a01b03166020918201529082526007830154908201526008820154604082015260099091015460609091015292915050565b60008082815b818110156111605760006101546000888885818110611c1257611c126147ca565b905060200201358152602001908152602001600020604051806080016040529081600082016040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582018054611c84906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb0906146d2565b8015611cfd5780601f10611cd257610100808354040283529160200191611cfd565b820191906000526020600020905b815481529060010190602001808311611ce057829003601f168201915b5050509183525050600691909101546001600160a01b03166020918201529082526007830154828201526008830154604083015260099092015460609091015281510151909150611d4f908590612a76565b93505080611d5c906147e0565b9050611bf1565b610f28338383612f10565b611d78338361286f565b611d945760405162461bcd60e51b815260040161087a9061470d565b611da084848484612fdf565b50505050565b600081815261013560209081526040808320546101369092528220548115611dd15760019250611dd6565b600092505b9193909250565b600054610100900460ff1615808015611dfd5750600054600160ff909116105b80611e175750303b158015611e17575060005460ff166001145b611e7a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161087a565b6000805460ff191660011790558015611e9d576000805461ff0019166101001790555b611ee96040518060400160405280600b81526020016a26b2b6b29021b7bab837b760a91b8152506040518060400160405280600781526020016626a1b7bab837b760c91b815250613012565b611ef1613043565b611ef9613043565b611f05336101f46126a5565b611f10600033612cb7565b61015680546001600160a01b0319166001600160a01b0384161790556040805160e08101825260018152683635c9adc5dea00000602080830191825260648385019081526103e8606085019081526102d060808601908152865193840196879052600080855260a0870185905260c087015285516101379081559451610138559151610139555161013a555161013b555191929091611fb29161013c91613fa2565b5060c09182015160069190910180546001600160a01b0319166001600160a01b039092169190911790556040805160e0810182526002815269021e19e0c9bab24000006020808301918252606283850190815260646060850190815261087060808601908152865193840196879052600080855260a0870185905297860197909752845161013e908155935161013f5590516101405551610141559351610142559251909291612066916101439190613fa2565b5060c09182015160069190910180546001600160a01b0319166001600160a01b039092169190911790556040805160e0810182526003815269152d02c7e14af680000060208083019182526060838501818152600a9185019182526110e060808601908152865193840196879052600080855260a087018590529786019790975284516101459081559351610146555161014755516101485593516101495592519092916121189161014a9190613fa2565b5060c09182015160069190910180546001600160a01b0319166001600160a01b039092169190911790556040805160e0810182526004815269d3c21bcecceda10000006020808301918252605e8385019081526003606085019081526121c060808601908152865193840196879052600080855260a0870185905297860197909752845161014c908155935161014d55905161014e555161014f5593516101505592519092916121cc916101519190613fa2565b5060c09190910151600690910180546001600160a01b0319166001600160a01b039092169190911790558015610f28576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008061015560009054906101000a90046001600160a01b03166001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561229157600080fd5b505afa1580156122a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c9919061475a565b9050600061015360008581526020019081526020016000206040518060e0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201805461232e906146d2565b80601f016020809104026020016040519081016040528092919081815260200182805461235a906146d2565b80156123a75780601f1061237c576101008083540402835291602001916123a7565b820191906000526020600020905b81548152906001019060200180831161238a57829003601f168201915b5050509183525050600691909101546001600160a01b03166020918201528101519091506000906123ed90670de0b6b3a7640000906123e790869061306c565b90612a5e565b9050600061242b670de0b6b3a7640000612425670de0b6b3a76400006123e760646123e789604001518961306c90919063ffffffff16565b9061306c565b9695505050505050565b6060612440826127a2565b600082815260fd602052604081208054612459906146d2565b80601f0160208091040260200160405190810160405280929190818152602001828054612485906146d2565b80156124d25780601f106124a7576101008083540402835291602001916124d2565b820191906000526020600020905b8154815290600101906020018083116124b557829003601f168201915b5050505050905060006124e3613078565b90508051600014156124f6575092915050565b815115612528578082604051602001612510929190614817565b60405160208183030381529060405292505050919050565b61253184613088565b949350505050565b600081815260976020526040812061072c906130ee565b60008281526065602052604090206001015461256b81612698565b6107478383612cd9565b60008061258181612698565b612589614026565b8981526020810189905260408101889052606081018790526080810186905260a081018590526001600160a01b03841660c08201526125c787612e7a565b6000818152610153602090815260409182902084518155818501516001820155918401516002830155606084015160038301556080840151600483015560a0840151805193965084936126209260058501920190613fa2565b5060c09190910151600690910180546001600160a01b0319166001600160a01b03909216919091179055509098975050505050505050565b60006001600160e01b031982166380ac58cd60e01b148061268957506001600160e01b03198216635b5e139f60e01b145b8061072c575061072c826130f8565b6126a2813361312d565b50565b6127106001600160601b03821611156127135760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b606482015260840161087a565b6001600160a01b0382166127695760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161087a565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b9091021760c955565b600081815260cd60205260409020546001600160a01b03166126a25760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161087a565b600081815260cf6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061283682611441565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061287b83611441565b9050806001600160a01b0316846001600160a01b031614806128c257506001600160a01b03808216600090815260d0602090815260408083209388168352929052205460ff165b806125315750836001600160a01b03166128db846107de565b6001600160a01b031614949350505050565b826001600160a01b031661290082611441565b6001600160a01b0316146129265760405162461bcd60e51b815260040161087a90614846565b6001600160a01b0382166129885760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161087a565b6129958383836001613186565b826001600160a01b03166129a882611441565b6001600160a01b0316146129ce5760405162461bcd60e51b815260040161087a90614846565b600081815260cf6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260ce855283862080546000190190559087168086528386208054600101905586865260cd90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061156e82846147a8565b600061156e828461488b565b600061156e82846148a2565b600081815261013160205260408120546001600160a01b0316612ae75760405162461bcd60e51b815260206004820152601c60248201527f62617365546f6b656e4944206e6f74206265656e206372656174656400000000604482015260640161087a565b600082815261013360209081526040808320546101329092529091205410612b465760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b604482015260640161087a565b6000612b51836131e3565b9050612b5d848261320a565b612b66836133a3565b60008381526101326020526040902054612b81906001612a76565b60008481526101326020526040902055905092915050565b6060600085612bb0612bab898b612a6a565b6133c6565b612bb98a613463565b612bc488888861349d565b604051602001612bd794939291906148ba565b6040516020818303038152906040529050612bf1816135ec565b604051602001612c0191906149d1565b6040516020818303038152906040529150509695505050505050565b600082815260cd60205260409020546001600160a01b0316612c985760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161087a565b600082815260fd60209081526040909120825161074792840190613fa2565b612cc18282613740565b600082815260976020526040902061074790826137c6565b612ce382826137db565b60008281526097602052604090206107479082613842565b612d0481613857565b600081815260fd602052604090208054612d1d906146d2565b1590506126a257600081815260fd602052604081206126a29161406c565b600061156e83836138fa565b60008111612d895760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081d185cdac81a59608a1b604482015260640161087a565b8115612dde5760008381526101356020908152604080832042905561013690915280822083905551829185917f365c7d7284755ed19e809683dfd787da1e8115e86c37612909e022f8ec85126f9190a3505050565b600083815261013660205260409020548114612e2b5760405162461bcd60e51b815260206004820152600c60248201526b1ddc9bdb99c81d185cdada5960a21b604482015260640161087a565b60008381526101356020908152604080832083905561013690915280822082905551829185917f29461b419f1938cf901704b3e90c50de5ce021544424551b5d65869b605f9dc69190a3505050565b6000620f42408210612ebf5760405162461bcd60e51b815260206004820152600e60248201526d696e76616c696420737570706c7960901b604482015260640161087a565b6000612ec9613924565b9050612ed361393d565b60008181526101316020908152604080832080546001600160a01b0319163317905561013282528083208390556101339091529020929092555090565b816001600160a01b0316836001600160a01b03161415612f725760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161087a565b6001600160a01b03838116600081815260d06020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612fea8484846128ed565b612ff684848484613954565b611da05760405162461bcd60e51b815260040161087a90614a16565b600054610100900460ff166130395760405162461bcd60e51b815260040161087a90614a68565b610f288282613a61565b600054610100900460ff1661306a5760405162461bcd60e51b815260040161087a90614a68565b565b600061156e8284614789565b606061012f805461075b906146d2565b6060613093826127a2565b600061309d613078565b905060008151116130bd576040518060200160405280600081525061156e565b806130c784613aaf565b6040516020016130d8929190614817565b6040516020818303038152906040529392505050565b600061072c825490565b60006001600160e01b0319821663152a902d60e11b148061072c57506301ffc9a760e01b6001600160e01b031983161461072c565b6131378282611575565b610f285761314481613b44565b61314f836020613b56565b604051602001613160929190614ab3565b60408051601f198184030181529082905262461bcd60e51b825261087a916004016141ba565b6000828152610135602052604090205415611da05760405162461bcd60e51b815260206004820152601c60248201527f63616e2774207472616e73666572207768696c65206a756963696e6700000000604482015260640161087a565b6000818152610134602052604081205461072c908390613204906001612a76565b90612a76565b6001600160a01b0382166132605760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161087a565b600081815260cd60205260409020546001600160a01b0316156132c55760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161087a565b6132d3600083836001613186565b600081815260cd60205260409020546001600160a01b0316156133385760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161087a565b6001600160a01b038216600081815260ce602090815260408083208054600101905584835260cd90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000818152610134602052604081208054916133be836147e0565b919050555050565b606060006133d383613cf2565b600101905060008167ffffffffffffffff8111156133f3576133f3614281565b6040519080825280601f01601f19166020018201604052801561341d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846134565761345b565b613427565b509392505050565b606061346d613078565b613476836133c6565b604051602001613487929190614817565b6040516020818303038152906040529050919050565b60408051808201825260018152605b60f81b6020808301919091528251808401909352600583526476616c756560d81b9083015260609181906134f4906134ef612bab89670de0b6b3a7640000612a5e565b613dca565b604051602001613505929190614817565b60408051601f19818403018152828201909152600d82526c707572636861736556616c756560981b60208301529150819061354f906134ef612bab88670de0b6b3a7640000612a5e565b604051602001613560929190614b28565b60408051601f19818403018152828201909152600f82526e0e4cac8cacadac2c4d8ca8ae0dec6d608b1b6020830152915081906135a0906134ef866133c6565b6040516020016135b1929190614b28565b6040516020818303038152906040529050806040516020016135d39190614b64565b60408051808303601f1901815291905295945050505050565b606081516000141561360c57505060408051602081019091526000815290565b6000604051806060016040528060408152602001614cd6604091399050600060038451600261363b91906148a2565b61364591906147a8565b613650906004614789565b67ffffffffffffffff81111561366857613668614281565b6040519080825280601f01601f191660200182016040528015613692576020820181803683370190505b509050600182016020820185865187015b808210156136fe576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453506001830192506136a3565b505060038651066001811461371a576002811461372d57613735565b603d6001830353603d6002830353613735565b603d60018303535b509195945050505050565b61374a8282611575565b610f285760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556137823390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061156e836001600160a01b038416613e32565b6137e58282611575565b15610f285760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061156e836001600160a01b038416613e81565b600061386282611441565b9050613872816000846001613186565b61387b82611441565b600083815260cf6020908152604080832080546001600160a01b03199081169091556001600160a01b03851680855260ce8452828520805460001901905587855260cd909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000826000018281548110613911576139116147ca565b9060005260206000200154905092915050565b6101305460009061393890620f4240612a76565b905090565b6101305461394e90620f4240612a76565b61013055565b60006001600160a01b0384163b15613a5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613998903390899088908890600401614b89565b602060405180830381600087803b1580156139b257600080fd5b505af19250505080156139e2575060408051601f3d908101601f191682019092526139df91810190614bbc565b60015b613a3c573d808015613a10576040519150601f19603f3d011682016040523d82523d6000602084013e613a15565b606091505b508051613a345760405162461bcd60e51b815260040161087a90614a16565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612531565b506001949350505050565b600054610100900460ff16613a885760405162461bcd60e51b815260040161087a90614a68565b8151613a9b9060cb906020850190613fa2565b5080516107479060cc906020840190613fa2565b60606000613abc83613cf2565b600101905060008167ffffffffffffffff811115613adc57613adc614281565b6040519080825280601f01601f191660200182016040528015613b06576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613b3f5761345b565b613b10565b606061072c6001600160a01b03831660145b60606000613b65836002614789565b613b709060026148a2565b67ffffffffffffffff811115613b8857613b88614281565b6040519080825280601f01601f191660200182016040528015613bb2576020820181803683370190505b509050600360fc1b81600081518110613bcd57613bcd6147ca565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613bfc57613bfc6147ca565b60200101906001600160f81b031916908160001a9053506000613c20846002614789565b613c2b9060016148a2565b90505b6001811115613ca3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613c5f57613c5f6147ca565b1a60f81b828281518110613c7557613c756147ca565b60200101906001600160f81b031916908160001a90535060049490941c93613c9c81614bd9565b9050613c2e565b50831561156e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161087a565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613d315772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613d5d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310613d7b57662386f26fc10000830492506010015b6305f5e1008310613d93576305f5e100830492506008015b6127108310613da757612710830492506004015b60648310613db9576064830492506002015b600a831061072c5760010192915050565b606082604051602001613ddd9190614bf0565b60405160208183030381529060405282604051602001613dfd9190614c34565b60408051601f1981840301815290829052613e1b9291602001614c72565b604051602081830303815290604052905092915050565b6000818152600183016020526040812054613e795750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561072c565b50600061072c565b60008181526001830160205260408120548015613f6a576000613ea560018361488b565b8554909150600090613eb99060019061488b565b9050818114613f1e576000866000018281548110613ed957613ed96147ca565b9060005260206000200154905080876000018481548110613efc57613efc6147ca565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613f2f57613f2f614cbf565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061072c565b600091505061072c565b6040518060800160405280613f87614026565b81526020016000815260200160008152602001600081525090565b828054613fae906146d2565b90600052602060002090601f016020900481019282613fd05760008555614016565b82601f10613fe957805160ff1916838001178555614016565b82800160010185558215614016579182015b82811115614016578251825591602001919060010190613ffb565b506140229291506140a2565b5090565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016060815260200160006001600160a01b031681525090565b508054614078906146d2565b6000825580601f10614088575050565b601f0160209004906000526020600020908101906126a291905b5b8082111561402257600081556001016140a3565b6000602082840312156140c957600080fd5b5035919050565b6001600160e01b0319811681146126a257600080fd5b6000602082840312156140f857600080fd5b813561156e816140d0565b80356001600160a01b038116811461411a57600080fd5b919050565b6000806040838503121561413257600080fd5b61413b83614103565b915060208301356001600160601b038116811461415757600080fd5b809150509250929050565b60005b8381101561417d578181015183820152602001614165565b83811115611da05750506000910152565b600081518084526141a6816020860160208601614162565b601f01601f19169290920160200192915050565b60208152600061156e602083018461418e565b600080604083850312156141e057600080fd5b6141e983614103565b946020939093013593505050565b60008060006060848603121561420c57600080fd5b61421584614103565b925061422360208501614103565b9150604084013590509250925092565b6000806040838503121561424657600080fd5b50508035926020909101359150565b6000806040838503121561426857600080fd5b8235915061427860208401614103565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156142b2576142b2614281565b604051601f8501601f19908116603f011681019082821181831017156142da576142da614281565b816040528093508581528686860111156142f357600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261431e57600080fd5b61156e83833560208501614297565b60006020828403121561433f57600080fd5b813567ffffffffffffffff81111561435657600080fd5b6125318482850161430d565b60008083601f84011261437457600080fd5b50813567ffffffffffffffff81111561438c57600080fd5b6020830191508360208260051b8501011115610e6357600080fd5b600080602083850312156143ba57600080fd5b823567ffffffffffffffff8111156143d157600080fd5b6143dd85828601614362565b90969095509350505050565b6000602082840312156143fb57600080fd5b61156e82614103565b8051825260208101516020830152604081015160408301526060810151606083015260808101516080830152600060a082015160e060a085015261444b60e085018261418e565b60c0938401516001600160a01b0316949093019390935250919050565b60208152600061156e6020830184614404565b8035801515811461411a57600080fd5b600080600080606085870312156144a157600080fd5b843567ffffffffffffffff8111156144b857600080fd5b6144c487828801614362565b90955093506144d790506020860161447b565b9396929550929360400135925050565b6000806000606084860312156144fc57600080fd5b83359250602084013567ffffffffffffffff81111561451a57600080fd5b6145268682870161430d565b92505061453560408501614103565b90509250925092565b60208152600082516080602084015261455a60a0840182614404565b90506020840151604084015260408401516060840152606084015160808401528091505092915050565b6000806040838503121561459757600080fd5b6145a083614103565b91506142786020840161447b565b600080600080608085870312156145c457600080fd5b6145cd85614103565b93506145db60208601614103565b925060408501359150606085013567ffffffffffffffff8111156145fe57600080fd5b8501601f8101871361460f57600080fd5b61461e87823560208401614297565b91505092959194509250565b600080600080600080600060e0888a03121561464557600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561467f57600080fd5b61468b8a828b0161430d565b92505061469a60c08901614103565b905092959891949750929550565b600080604083850312156146bb57600080fd5b6146c483614103565b915061427860208401614103565b600181811c908216806146e657607f821691505b6020821081141561470757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60006020828403121561476c57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156147a3576147a3614773565b500290565b6000826147c557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006000198214156147f4576147f4614773565b5060010190565b6000815161480d818560208601614162565b9290920192915050565b60008351614829818460208801614162565b83519083019061483d818360208801614162565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60008282101561489d5761489d614773565b500390565b600082198211156148b5576148b5614773565b500190565b607b60f81b815268113730b6b2911d101160b91b600182015284516000906148e981600a850160208a01614162565b61202360f01b600a91840191820152855161490b81600c840160208a01614162565b61088b60f21b600c92909101918201527f226465736372697074696f6e223a20224d656d6520436f75706f6e73206f6e20600e8201526718da185a5b8b888b60c21b602e820152691134b6b0b3b2911d101160b11b60368201528451614978816040840160208901614162565b6149c56149b86149b261499860408587010161088b60f21b815260020190565b6d01130ba3a3934b13aba32b9911d160951b8152600e0190565b876147fb565b607d60f81b815260010190565b98975050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251614a0981601d850160208701614162565b91909101601d0192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614aeb816017850160208801614162565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b1c816028840160208801614162565b01602801949350505050565b60008351614b3a818460208801614162565b600b60fa1b9083019081528351614b58816001840160208801614162565b01600101949350505050565b60008251614b76818460208701614162565b605d60f81b920191825250600101919050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061242b9083018461418e565b600060208284031215614bce57600080fd5b815161156e816140d0565b600081614be857614be8614773565b506000190190565b6e113a3930b4ba2fba3cb832911d101160891b81528151600090614c1b81600f850160208701614162565b61088b60f21b600f939091019283015250601101919050565b69113b30b63ab2911d101160b11b81528151600090614c5a81600a850160208701614162565b601160f91b600a939091019283015250600b01919050565b607b60f81b815260008351614c8e816001850160208801614162565b835190830190614ca5816001840160208801614162565b607d60f81b60019290910191820152600201949350505050565b634e487b7160e01b600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220bf2ffe48455e1706a43e29b0b883ccb07f01e836064236ac605d4306c70f5fb264736f6c63430008090033