4.4k txs
7k calls
constructor
constructor(address erc721Contract_, address verificator_, uint256 expireTime_)
functions
commissionFeeByCurrencyTypes
viewfunction commissionFeeByCurrencyTypes(uint8) view returns (address receiver, uint48 value, uint48 decimal)
CONTRACT_IDENTIFIER
viewfunction CONTRACT_IDENTIFIER() view returns (bytes32)
currencyAddresses
viewfunction currencyAddresses(uint256) view returns (address)
currentSellOrderId
viewfunction currentSellOrderId() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
erc721Contract
viewfunction erc721Contract() view returns (address)
firstBuyerFeeDecimal
viewfunction firstBuyerFeeDecimal() view returns (uint48)
firstBuyerFeeValue
viewfunction firstBuyerFeeValue() view returns (uint48)
firstBuyerOfNfts
viewfunction firstBuyerOfNfts(uint256) view returns (address)
getCreatorFeeOfOrder
viewfunction getCreatorFeeOfOrder(uint256 sellOrderId_) view returns (tuple creatorFee)
getFirstBuyerFee
viewfunction getFirstBuyerFee() view returns (uint48, uint48)
getFirstBuyerOfNfts
viewfunction getFirstBuyerOfNfts(uint256[] tokenIds_) view returns (address[] buyers)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
OPERATOR
viewfunction OPERATOR() view returns (bytes32)
orders
viewfunction orders(uint256) view returns (tuple creatorFee, uint256 tokenId, address seller)
platformFee
viewfunction platformFee() view returns (address receiver, uint48 value, uint48 decimal)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addCurrencies
nonpayablefunction addCurrencies(address[] addresses_)
addOperator
nonpayablefunction addOperator(address operator)
buy
nonpayablefunction buy(uint256 sellOrderId_, uint240 price_, uint8 currencyType_, address receiver_, tuple signature_)
cancel
nonpayablefunction cancel(uint256 sellOrderId_)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
removeOperator
nonpayablefunction removeOperator(address operator)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resetCurrencies
nonpayablefunction resetCurrencies()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
sell
nonpayablefunction sell(uint256 tokenId_, tuple priceInfo_, tuple creatorFee_, tuple signature_)
setCommissionFee
nonpayablefunction setCommissionFee(uint8 currencyType_, address receiver_, uint48 value_, uint48 decimal_)
setErc721Contract
nonpayablefunction setErc721Contract(address contract_)
setFirstBuyerFee
nonpayablefunction setFirstBuyerFee(uint48 value_, uint48 decimal_)
setFirstBuyerForNft
nonpayablefunction setFirstBuyerForNft(uint256[] tokenIds_, address[] buyers_)
setPlatformFee
nonpayablefunction setPlatformFee(address receiver_, uint48 value_, uint48 decimal_)
setSignatureExpireTime
nonpayablefunction setSignatureExpireTime(uint256 time_)
setVerifierAddress
nonpayablefunction setVerifierAddress(address addr_)
events
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)
UGCBought
event UGCBought(uint256 indexed sellOrderId, address indexed seller, address indexed buyer, address receiver, uint256 tokenId, uint240 price, uint8 currencyType, uint256 timestamp)
UGCCanceled
event UGCCanceled(uint256 indexed sellOrderId, address indexed seller, uint256 tokenId, uint256 timestamp)
UGCSold
event UGCSold(uint256 indexed sellOrderId, address indexed seller, uint256 indexed tokenId, (uint240 price, uint8 fromCurrencyType, uint8 toCurrencyType) priceInfo, (address receiver, uint48 value, uint48 decimal) creatorFee, uint256 timestamp)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620034dd380380620034dd83398101604081905262000034916200016b565b60018055600580546001600160a01b0319166001600160a01b0385811691909117909155600980546001600160601b03166c0100000000000000000000000092851692909202919091179055600a819055620000996000620000933390565b620000a2565b505050620001b3565b620000ae8282620000b2565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000ae576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200010e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b03811681146200016857600080fd5b50565b6000806000606084860312156200018157600080fd5b83516200018e8162000152565b6020850151909350620001a18162000152565b80925050604084015190509250925092565b61331a80620001c36000396000f3fe608060405234801561001057600080fd5b506004361061021b5760003560e01c80635e15b114116101255780639870d7fe116100ad578063c78b613f1161007c578063c78b613f1461067f578063d547741f14610692578063d7c97fb4146106a5578063ebc2a789146106b8578063efe6157d146106cb57600080fd5b80639870d7fe146105d1578063a217fddf146105e4578063a85c38ef146105ec578063ac8a584a1461066c57600080fd5b80638f2c5cdc116100f45780638f2c5cdc146105675780638f49bb6b1461057a57806390a708ab146105a157806391d14854146105a9578063983d2737146105bc57600080fd5b80635e15b114146104b15780636d18cae11461052f5780637f4e6d5d1461054257806387097e101461055457600080fd5b80631ceb40d8116101a85780632f2ff15d116101775780632f2ff15d1461045c57806336568abe1461046f57806340e58ee5146104825780634709d189146104955780634cd5c930146104a857600080fd5b80631ceb40d81461036257806321c20928146103d4578063248a9ca3146103fd57806326232a2e1461042e57600080fd5b806314537ec9116101ef57806314537ec9146102c057806314cff58d146102f057806314df252914610305578063150b7a021461031857806317e955261461034f57600080fd5b806261d6701461022057806301ffc9a7146102495780630cc45d591461026c5780631413b9fe14610297575b600080fd5b61023361022e3660046128bf565b6106de565b6040516102409190612901565b60405180910390f35b61025c61025736600461294e565b6107b2565b6040519015158152602001610240565b61027f61027a366004612978565b6107e9565b6040516001600160a01b039091168152602001610240565b6009546040805165ffffffffffff8084168252600160301b909304909216602083015201610240565b6009546102d990600160301b900465ffffffffffff1681565b60405165ffffffffffff9091168152602001610240565b6103036102fe3660046129a6565b610813565b005b6103036103133660046129de565b610865565b610336610326366004612a6a565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610240565b61030361035d3660046129a6565b6108f2565b6103a6610370366004612b3f565b6008602052600090815260409020546001600160a01b0381169065ffffffffffff600160a01b8204811691600160d01b90041683565b604080516001600160a01b03909416845265ffffffffffff9283166020850152911690820152606001610240565b61027f6103e2366004612978565b6004602052600090815260409020546001600160a01b031681565b61042061040b366004612978565b60009081526020819052604090206001015490565b604051908152602001610240565b6007546103a6906001600160a01b0381169065ffffffffffff600160a01b8204811691600160d01b90041683565b61030361046a366004612b5a565b610946565b61030361047d366004612b5a565b610970565b610303610490366004612978565b6109ee565b6103036104a3366004612b8a565b610bf4565b61042060025481565b6105226104bf366004612978565b604080516060808201835260008083526020808401829052928401819052938452600382529282902082519384018352546001600160a01b038116845265ffffffffffff600160a01b8204811692850192909252600160d01b9004169082015290565b6040516102409190612bf6565b61030361053d366004612c2f565b610d43565b6009546102d99065ffffffffffff1681565b610303610562366004612c91565b610d9a565b610303610575366004612978565b6112f5565b6104207f9a2364b868d5354cb10dfaa356cd8b60b583abbe7f2229367e4bf63180200af281565b610303611321565b61025c6105b7366004612b5a565b611356565b6104206000805160206132c583398151915281565b6103036105df3660046129a6565b61137f565b610420600081565b61065d6105fa366004612978565b600360209081526000918252604091829020825160608101845281546001600160a01b03808216835265ffffffffffff600160a01b8304811695840195909552600160d01b90910490931693810193909352600181015460029091015490911683565b60405161024093929190612d0c565b61030361067a3660046129a6565b6113be565b61030361068d366004612d64565b6113fd565b6103036106a0366004612b5a565b6114d0565b60055461027f906001600160a01b031681565b6103036106c6366004612dba565b6114f5565b6103036106d9366004612e72565b61158c565b60608167ffffffffffffffff8111156106f9576106f9612a23565b604051908082528060200260200182016040528015610722578160200160208202803683370190505b50905060005b828110156107ab576004600085858481811061074657610746612edd565b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031682828151811061078157610781612edd565b6001600160a01b03909216602092830291909101909101526107a4600182612f09565b9050610728565b5092915050565b60006001600160e01b03198216637965db0b60e01b14806107e357506301ffc9a760e01b6001600160e01b03198316145b92915050565b600681815481106107f957600080fd5b6000918252602090912001546001600160a01b0316905081565b61081e600033611356565b6108435760405162461bcd60e51b815260040161083a90612f1c565b60405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610870600033611356565b61088c5760405162461bcd60e51b815260040161083a90612f1c565b604080516060810182526001600160a01b039490941680855265ffffffffffff93841660208601819052929093169301839052600780546001600160d01b031916909217600160a01b909102176001600160d01b0316600160d01b909202919091179055565b6108fd600033611356565b6109195760405162461bcd60e51b815260040161083a90612f1c565b600980546001600160a01b03909216600160601b026bffffffffffffffffffffffff909216919091179055565b60008281526020819052604090206001015461096181611a54565b61096b8383611a5e565b505050565b6001600160a01b03811633146109e05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161083a565b6109ea8282611ae2565b5050565b6109f6611b47565b600081815260036020908152604091829020825160c08101845281546001600160a01b038082166060840190815265ffffffffffff600160a01b840481166080860152600160d01b90930490921660a084015290825260018301549382019390935260029091015490911691810182905290610aab5760405162461bcd60e51b815260206004820152601460248201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b604482015260640161083a565b60408101516001600160a01b03163314610b005760405162461bcd60e51b815260206004820152601660248201527513db9b1e481cd95b1b195c8818d85b8818d85b98d95b60521b604482015260640161083a565b6000828152600360205260408120818155600181019190915560020180546001600160a01b03191690556005546001600160a01b03166342842e0e303384602001516040518463ffffffff1660e01b8152600401610b6093929190612f53565b600060405180830381600087803b158015610b7a57600080fd5b505af1158015610b8e573d6000803e3d6000fd5b5050505080604001516001600160a01b0316827f68818f176c3629547900b916667e27527db4e9287e5422efc18f2bb2a566252d836020015142604051610bdf929190918252602082015260400190565b60405180910390a350610bf160018055565b50565b610c0c6000805160206132c583398151915233611356565b610c585760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161083a565b828114610ca75760405162461bcd60e51b815260206004820152601a60248201527f54776f20617272617973206c656e677468206d69736d61746368000000000000604482015260640161083a565b60005b83811015610d3c57828282818110610cc457610cc4612edd565b9050602002016020810190610cd991906129a6565b60046000878785818110610cef57610cef612edd565b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600181610d359190612f09565b9050610caa565b5050505050565b610d4e600033611356565b610d6a5760405162461bcd60e51b815260040161083a90612f1c565b6009805465ffffffffffff928316600160301b026001600160601b03199091169290931691909117919091179055565b610da2611b47565b6020808201356000818152600b909252604091829020549091833591908401359060ff1615610e135760405162461bcd60e51b815260206004820152601a60248201527f5369676e61747572652068617320616c72656164792075736564000000000000604482015260640161083a565b7f9a2364b868d5354cb10dfaa356cd8b60b583abbe7f2229367e4bf63180200af28114610e825760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420636f6e7472616374206964656e7469666965720000000000604482015260640161083a565b42600a5483610e919190612f09565b1015610edf5760405162461bcd60e51b815260206004820152601d60248201527f5369676e61747572652068617320616c72656164792065787069726564000000604482015260640161083a565b6000888152600360209081526040808320815160c08101835281546001600160a01b038082166060840190815265ffffffffffff600160a01b840481166080860152600160d01b90930490921660a08401529082526001830154948201949094526002909101549092169082015290610f553390565b60408301519091506001600160a01b0316610fa95760405162461bcd60e51b815260206004820152601460248201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b604482015260640161083a565b806001600160a01b031682604001516001600160a01b031614158015610fe55750866001600160a01b031682604001516001600160a01b031614155b6110215760405162461bcd60e51b815260206004820152600d60248201526c213abc90313c9039b2b63632b960991b604482015260640161083a565b6001600160a01b0387166110775760405162461bcd60e51b815260206004820181905260248201527f52656365697665722063616e206e6f74206265207a65726f2061646472657373604482015260640161083a565b61108e86828c8c6001600160f01b03168c8c611ba0565b6110ce5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015260640161083a565b6000896001600160f01b0316116111275760405162461bcd60e51b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e203000000000604482015260640161083a565b60065460ff89161061114b5760405162461bcd60e51b815260040161083a90612f77565b6020808701356000908152600b82526040808220805460ff191660019081179091558d83526003845281832083815590810192909255600290910180546001600160a01b0319169055908301519083015183516111b7929184916001600160f01b038e16908d90611c43565b6020808301516000908152600490915260409020546001600160a01b031661120757602082810151600090815260049091526040902080546001600160a01b0319166001600160a01b0389161790555b6005546020830151604051632142170760e11b81526001600160a01b03909216916342842e0e9161123e9130918c91600401612f53565b600060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b50505060408084015160208086015183516001600160a01b038d81168252928101919091526001600160f01b038e169381019390935260ff8c166060840152426080840152808516935016908c907f1435aef1be455f84ed8a1169b9caae9003e39b64934c97a74001b5a0e1e787aa9060a00160405180910390a45050505050610d3c60018055565b611300600033611356565b61131c5760405162461bcd60e51b815260040161083a90612f1c565b600a55565b61132c600033611356565b6113485760405162461bcd60e51b815260040161083a90612f1c565b61135460066000612848565b565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61138a600033611356565b6113a65760405162461bcd60e51b815260040161083a90612f1c565b610bf16000805160206132c583398151915282611e15565b6113c9600033611356565b6113e55760405162461bcd60e51b815260040161083a90612f1c565b610bf16000805160206132c5833981519152826114d0565b611408600033611356565b6114245760405162461bcd60e51b815260040161083a90612f1c565b60065460ff8516106114485760405162461bcd60e51b815260040161083a90612f77565b604080516060810182526001600160a01b03948516815265ffffffffffff938416602080830191825293851682840190815260ff979097166000908152600890945291909220915182549151955194166001600160d01b031990911617600160a01b94831694909402939093176001600160d01b0316600160d01b9290911691909102179055565b6000828152602081905260409020600101546114eb81611a54565b61096b8383611ae2565b611500600033611356565b61151c5760405162461bcd60e51b815260040161083a90612f1c565b60005b81518110156109ea57600682828151811061153c5761153c612edd565b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091556115859082612f09565b905061151f565b611594611b47565b6020808201356000818152600b909252604091829020549091833591908401359060ff16156116055760405162461bcd60e51b815260206004820152601a60248201527f5369676e61747572652068617320616c72656164792075736564000000000000604482015260640161083a565b7f9a2364b868d5354cb10dfaa356cd8b60b583abbe7f2229367e4bf63180200af281146116745760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420636f6e7472616374206964656e7469666965720000000000604482015260640161083a565b42600a54836116839190612f09565b10156116d15760405162461bcd60e51b815260206004820152601d60248201527f5369676e61747572652068617320616c72656164792065787069726564000000604482015260640161083a565b60006116e06020880188612fa6565b6001600160f01b0316116117365760405162461bcd60e51b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e203000000000604482015260640161083a565b6006546117496040880160208901612b3f565b60ff1610801561176c57506006546117676060880160408901612b3f565b60ff16105b6117885760405162461bcd60e51b815260040161083a90612f77565b61179484338988611e1f565b6117d45760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015260640161083a565b60006117e360208701876129a6565b6001600160a01b0316036118395760405162461bcd60e51b815260206004820181905260248201527f52656365697665722063616e206e6f74206265207a65726f2061646472657373604482015260640161083a565b600061184b6060870160408801612fc1565b65ffffffffffff16116118a05760405162461bcd60e51b815260206004820152601e60248201527f446563696d616c206d7573742062652067726561746572207468616e20300000604482015260640161083a565b6020808501356000908152600b90915260408120805460ff1916600190811790915560028054919290916118d5908490612f09565b90915550506040805160608101909152806118f536889003880188612fdc565b81526020018881526020016119073390565b6001600160a01b039081169091526002805460009081526003602090815260409182902085518051825482850151928601519188166001600160d01b031990911617600160a01b65ffffffffffff93841602176001600160d01b0316600160d01b9290911691909102178155908501516001820155930151920180546001600160a01b03191692821692909217909155600554166342842e0e33308a6040518463ffffffff1660e01b81526004016119c193929190612f53565b600060405180830381600087803b1580156119db57600080fd5b505af11580156119ef573d6000803e3d6000fd5b50505050866119fb3390565b6001600160a01b03166002547f320d07ad24c78a64ee1dfe8cd6df46f5ed8d504258c310956eb95fc06e79e2a0898942604051611a3a9392919061304a565b60405180910390a4505050611a4e60018055565b50505050565b610bf18133611ef4565b611a688282611356565b6109ea576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a9e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611aec8282611356565b156109ea576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600260015403611b995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161083a565b6002600155565b604080516020808901359082015281880135918101919091526001600160601b0319606087811b82168184015260748301879052609483018690526001600160f81b031960f886901b1660b484015283901b1660b5820152863560c9820152600090819060e90160408051601f1981840301815291905280516020909101209050611c3781611c3260608b018b6130e1565b611f4d565b98975050505050505050565b611c7960068360ff1681548110611c5c57611c5c612edd565b6000918252602090912001546001600160a01b0316863086611fc0565b604080516060810182526007546001600160a01b038116825265ffffffffffff600160a01b820481166020840152600160d01b9091041691810191909152600090611cc6908786866120f8565b60ff84166000908152600860209081526040808320815160608101835290546001600160a01b038116825265ffffffffffff600160a01b8204811694830194909452600160d01b90049092169082015291925090611d26908887876120f8565b90506000611d36848988886120f8565b905060008183611d46868a613128565b611d509190613128565b611d5a9190613128565b60008b8152600460205260409020549091506001600160a01b03168015611dd257604080516060810182526001600160a01b038316815260095465ffffffffffff8082166020840152600160301b9091041691810191909152600090611dc2908c8b8b6120f8565b9050611dce8184613128565b9250505b611e0860068860ff1681548110611deb57611deb612edd565b6000918252602090912001546001600160a01b03168b8b85612185565b5050505050505050505050565b6109ea8282611a5e565b600080856020013586604001358686866000016020810190611e4191906129a6565b611e516040890160208a01612fc1565b611e6160608a0160408b01612fc1565b6040805160208101989098528701959095526001600160601b0319606094851b8116858801526074870193909352921b1660948401526001600160d01b031960d091821b811660a885015291901b1660ae820152863560b482015260d40160408051601f1981840301815291905280516020909101209050611eea81611c3260608901896130e1565b9695505050505050565b611efe8282611356565b6109ea57611f0b816122ae565b611f168360206122c0565b604051602001611f2792919061315f565b60408051601f198184030181529082905262461bcd60e51b825261083a916004016131d4565b600954604080516020601f8501819004810282018101909252838152600092600160601b90046001600160a01b031691611fae91908690869081908401838280828437600092019190915250611fa892508991506124639050565b906124b6565b6001600160a01b031614949350505050565b6040516001600160a01b0384811660248301528381166044830152600091829187169060640160408051601f198184030181529181526020820180516001600160e01b0316636eb1769f60e11b1790525161201b9190613207565b6000604051808303816000865af19150503d8060008114612058576040519150601f19603f3d011682016040523d82523d6000602084013e61205d565b606091505b50915091508180156120825750828180602001905181019061207f9190613223565b10155b6120e55760405162461bcd60e51b815260206004820152602e60248201527f45786368616e67652063757272656e637920616c6c6f77616e6365206f66207560448201526d73657220697320746f6f206c6f7760901b606482015260840161083a565b6120f08686856124da565b505050505050565b60008060008061211388805160208201516040909201519092565b91945092509050600061212f65ffffffffffff8316606461323c565b61214165ffffffffffff85168961323c565b61214b9190613253565b90508015611c3757611c3760068760ff168154811061216c5761216c612edd565b6000918252602090912001546001600160a01b03168986845b600080856001600160a01b03168585856040516024016121a793929190612f53565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516121dc9190613207565b6000604051808303816000865af19150503d8060008114612219576040519150601f19603f3d011682016040523d82523d6000602084013e61221e565b606091505b50915091508180156122485750805115806122485750808060200190518101906122489190613275565b6120f05760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161083a565b60606107e36001600160a01b03831660145b606060006122cf83600261323c565b6122da906002612f09565b67ffffffffffffffff8111156122f2576122f2612a23565b6040519080825280601f01601f19166020018201604052801561231c576020820181803683370190505b509050600360fc1b8160008151811061233757612337612edd565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061236657612366612edd565b60200101906001600160f81b031916908160001a905350600061238a84600261323c565b612395906001612f09565b90505b600181111561240d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106123c9576123c9612edd565b1a60f81b8282815181106123df576123df612edd565b60200101906001600160f81b031916908160001a90535060049490941c9361240681613297565b9050612398565b50831561245c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161083a565b9392505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b60008060006124c585856125f5565b915091506124d28161263a565b509392505050565b6040516001600160a01b038381166024830152600091829186169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b1790525161252d9190613207565b6000604051808303816000865af19150503d806000811461256a576040519150601f19603f3d011682016040523d82523d6000602084013e61256f565b606091505b5091509150818015612594575082818060200190518101906125919190613223565b10155b610d3c5760405162461bcd60e51b815260206004820152602c60248201527f45786368616e67652063757272656e63792062616c616e6365206f662075736560448201526b7220697320746f6f206c6f7760a01b606482015260840161083a565b600080825160410361262b5760208301516040840151606085015160001a61261f87828585612784565b94509450505050612633565b506000905060025b9250929050565b600081600481111561264e5761264e6132ae565b036126565750565b600181600481111561266a5761266a6132ae565b036126b75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161083a565b60028160048111156126cb576126cb6132ae565b036127185760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161083a565b600381600481111561272c5761272c6132ae565b03610bf15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161083a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127bb575060009050600361283f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561280f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166128385760006001925092505061283f565b9150600090505b94509492505050565b5080546000825590600052602060002090810190610bf191905b808211156128765760008155600101612862565b5090565b60008083601f84011261288c57600080fd5b50813567ffffffffffffffff8111156128a457600080fd5b6020830191508360208260051b850101111561263357600080fd5b600080602083850312156128d257600080fd5b823567ffffffffffffffff8111156128e957600080fd5b6128f58582860161287a565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156129425783516001600160a01b03168352928401929184019160010161291d565b50909695505050505050565b60006020828403121561296057600080fd5b81356001600160e01b03198116811461245c57600080fd5b60006020828403121561298a57600080fd5b5035919050565b6001600160a01b0381168114610bf157600080fd5b6000602082840312156129b857600080fd5b813561245c81612991565b803565ffffffffffff811681146129d957600080fd5b919050565b6000806000606084860312156129f357600080fd5b83356129fe81612991565b9250612a0c602085016129c3565b9150612a1a604085016129c3565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a6257612a62612a23565b604052919050565b60008060008060808587031215612a8057600080fd5b8435612a8b81612991565b9350602085810135612a9c81612991565b935060408601359250606086013567ffffffffffffffff80821115612ac057600080fd5b818801915088601f830112612ad457600080fd5b813581811115612ae657612ae6612a23565b612af8601f8201601f19168501612a39565b91508082528984828501011115612b0e57600080fd5b808484018584013760008482840101525080935050505092959194509250565b803560ff811681146129d957600080fd5b600060208284031215612b5157600080fd5b61245c82612b2e565b60008060408385031215612b6d57600080fd5b823591506020830135612b7f81612991565b809150509250929050565b60008060008060408587031215612ba057600080fd5b843567ffffffffffffffff80821115612bb857600080fd5b612bc48883890161287a565b90965094506020870135915080821115612bdd57600080fd5b50612bea8782880161287a565b95989497509550505050565b606081016107e3828480516001600160a01b0316825260208082015165ffffffffffff9081169184019190915260409182015116910152565b60008060408385031215612c4257600080fd5b612c4b836129c3565b9150612c59602084016129c3565b90509250929050565b80356001600160f01b03811681146129d957600080fd5b600060808284031215612c8b57600080fd5b50919050565b600080600080600060a08688031215612ca957600080fd5b85359450612cb960208701612c62565b9350612cc760408701612b2e565b92506060860135612cd781612991565b9150608086013567ffffffffffffffff811115612cf357600080fd5b612cff88828901612c79565b9150509295509295909350565b60a08101612d45828680516001600160a01b0316825260208082015165ffffffffffff9081169184019190915260409182015116910152565b60608201939093526001600160a01b0391909116608090910152919050565b60008060008060808587031215612d7a57600080fd5b612d8385612b2e565b93506020850135612d9381612991565b9250612da1604086016129c3565b9150612daf606086016129c3565b905092959194509250565b60006020808385031215612dcd57600080fd5b823567ffffffffffffffff80821115612de557600080fd5b818501915085601f830112612df957600080fd5b813581811115612e0b57612e0b612a23565b8060051b9150612e1c848301612a39565b8181529183018401918481019088841115612e3657600080fd5b938501935b83851015611c375784359250612e5083612991565b8282529385019390850190612e3b565b600060608284031215612c8b57600080fd5b6000806000806101008587031215612e8957600080fd5b84359350612e9a8660208701612e60565b9250612ea98660808701612e60565b915060e085013567ffffffffffffffff811115612ec557600080fd5b612ed187828801612c79565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156107e3576107e3612ef3565b60208082526017908201527f43616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602080825260159082015274496e76616c69642063757272656e6379207479706560581b604082015260600190565b600060208284031215612fb857600080fd5b61245c82612c62565b600060208284031215612fd357600080fd5b61245c826129c3565b600060608284031215612fee57600080fd5b6040516060810181811067ffffffffffffffff8211171561301157613011612a23565b604052823561301f81612991565b815261302d602084016129c3565b602082015261303e604084016129c3565b60408201529392505050565b60e081016001600160f01b0361305f86612c62565b16825260ff61307060208701612b2e565b16602083015260ff61308460408701612b2e565b166040830152833561309581612991565b6001600160a01b031660608301526130af602085016129c3565b65ffffffffffff8082166080850152806130cb604088016129c3565b1660a085015250508260c0830152949350505050565b6000808335601e198436030181126130f857600080fd5b83018035915067ffffffffffffffff82111561311357600080fd5b60200191503681900382131561263357600080fd5b818103818111156107e3576107e3612ef3565b60005b8381101561315657818101518382015260200161313e565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161319781601785016020880161313b565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516131c881602884016020880161313b565b01602801949350505050565b60208152600082518060208401526131f381604085016020870161313b565b601f01601f19169190910160400192915050565b6000825161321981846020870161313b565b9190910192915050565b60006020828403121561323557600080fd5b5051919050565b80820281158282048414176107e3576107e3612ef3565b60008261327057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561328757600080fd5b8151801515811461245c57600080fd5b6000816132a6576132a6612ef3565b506000190190565b634e487b7160e01b600052602160045260246000fdfe523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0ca2646970667358221220a356597a94d5b26cf57355efae83a6cd2c23e8d7867efcfc12c3f2302b51cbd064736f6c634300081100330000000000000000000000000a77f356cf1de1727145e66c92254881ac3da34b00000000000000000000000062d0e5e193854a4943dec1a48ffc3d6744ab5f54000000000000000000000000000000000000000000000000000000000000012c