2 txs
7 calls
constructor
constructor(address _galaxisRegistry, address safe, address _paymentAddress)
functions
ADDON_ADMIN
viewfunction ADDON_ADMIN() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
galaxisRegistry
viewfunction galaxisRegistry() view returns (address)
getAllTokenRecords
viewfunction getAllTokenRecords() view returns (tuple[])
getQuote
viewfunction getQuote(uint256[] tokenIds, uint256[] quantities) view returns (uint256 totalPrice)
getQuoteAndUserData
viewfunction getQuoteAndUserData(uint256[] tokenIds, uint256[] quantities) view returns (uint256 totalPrice, bytes userData)
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)
getTokenRecords
viewfunction getTokenRecords(uint256 start, uint256 count) view returns (tuple[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
nextTokenId
viewfunction nextTokenId() view returns (uint256)
paymentAddress
viewfunction paymentAddress() view returns (address)
paymentToken
viewfunction paymentToken() view returns (address)
registryKey
purefunction registryKey() pure returns (string)
saleActive
viewfunction saleActive() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
walletHelper
viewfunction walletHelper(uint256[] tokenIds, uint256[] quantities) view returns (bytes userData)
addToken
nonpayablefunction addToken(uint256 price, string description, bool onSale, string metadataURI)
buyTokens
nonpayablefunction buyTokens(uint256[] tokenIds, uint256[] quantities)
changeSaleStatus
nonpayablefunction changeSaleStatus(bool _newState)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setPaymentAddress
nonpayablefunction setPaymentAddress(address _paymentAddress)
setPaymentToken
nonpayablefunction setPaymentToken(address _paymentToken)
takeMyTokens
nonpayablefunction takeMyTokens(uint256 membershipCardId, address _tokenAddress, uint256 _amount, bytes _userData)
updateTokenDescription
nonpayablefunction updateTokenDescription(uint256 tokenId, string description)
updateTokenMetadataURI
nonpayablefunction updateTokenMetadataURI(uint256 tokenId, string metadataURI)
updateTokenSaleInfo
nonpayablefunction updateTokenSaleInfo(uint256 tokenId, uint256 newPrice, bool onSale)
withdrawFunds
nonpayablefunction withdrawFunds(address token)
events
DescriptionUpdated
event DescriptionUpdated(uint256 tokenId, string description)
GalaxisAddonTokensPurchased
event GalaxisAddonTokensPurchased(address buyer, uint256[] tokenIds, uint256[] quantities, uint256 totalPrice)
MetadataUpdated
event MetadataUpdated(uint256 tokenId, string metadataURI)
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)
SaleInfoUpdated
event SaleInfoUpdated(uint256 tokenId, uint256 newPrice, bool onSale)
tokenAdded
event tokenAdded(uint256 tokenId, uint256 price, bool onSale, string description, string metadataURI)
errors
No errors.
creation bytecode
0x60a0604052600160058190556006805460ff1916909117905534801561002457600080fd5b506040516136503803806136508339810160408190526100439161029b565b6001600160a01b03831660805261005b60008361014c565b6100736000805160206136308339815191528361014c565b61008b6000805160206136308339815191523361014c565b608051604051631d2e660b60e21b815260206004820152600d60248201526c23a0a620ac24a9afaa27a5a2a760991b60448201526001600160a01b03909116906374b9982c90606401602060405180830381865afa1580156100f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011591906102de565b600380546001600160a01b039283166001600160a01b03199182161790915560048054939092169216919091179055506102f99050565b6101568282610173565b600082815260016020526040902061016e9082610212565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661020e576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556101cd3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610227836001600160a01b038416610230565b90505b92915050565b60008181526001830160205260408120546102775750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561022a565b50600061022a565b80516001600160a01b038116811461029657600080fd5b919050565b6000806000606084860312156102b057600080fd5b6102b98461027f565b92506102c76020850161027f565b91506102d56040850161027f565b90509250925092565b6000602082840312156102f057600080fd5b6102278261027f565b6080516132d661035a60003960008181610394015281816104e0015281816109b901528181610c2501528181610e44015281816111d1015281816113a8015281816114be015281816116670152818161180d0152611b4a01526132d66000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80637323bb021161010f578063a70c1dde116100a2578063d547741f11610071578063d547741f14610443578063ea029ad214610456578063f365636c14610469578063f75b2b801461047e57600080fd5b8063a70c1dde146103f7578063a71edd6f1461040a578063c0052f7a1461041d578063ca15c8731461043057600080fd5b80639010d07c116100de5780639010d07c146103b657806391d14854146103c9578063942a8467146103dc578063a217fddf146103ef57600080fd5b80637323bb021461036b57806375682e791461037357806375794a3c146103865780637671114d1461038f57600080fd5b80633a23240e1161018757806368428a1b1161015657806368428a1b1461031857806368742da6146103255780636a326ab1146103385780636a883a321461034b57600080fd5b80633a23240e146102be5780633bd57d6b146102df5780635e1e1004146102f2578063633423be1461030557600080fd5b80632501d166116101c35780632501d166146102585780632f2ff15d1461026d5780633013ce291461028057806336568abe146102ab57600080fd5b806301ffc9a7146101ea57806311ab63e114610212578063248a9ca314610227575b600080fd5b6101fd6101f836600461283e565b610491565b60405190151581526020015b60405180910390f35b6102256102203660046128aa565b6104bc565b005b61024a6102353660046128f6565b60009081526020819052604090206001015490565b604051908152602001610209565b61026061063a565b604051610209919061295f565b61022561027b366004612987565b610668565b600354610293906001600160a01b031681565b6040516001600160a01b039091168152602001610209565b6102256102b9366004612987565b610692565b6102d16102cc366004612a60565b610710565b604051610209929190612ac4565b6102256102ed366004612aeb565b61099f565b610225610300366004612b79565b610c0b565b600454610293906001600160a01b031681565b6006546101fd9060ff1681565b610225610333366004612b79565b610d39565b610225610346366004612b79565b610e2a565b61035e610359366004612b96565b610f58565b6040516102099190612bb8565b61035e611193565b6102256103813660046128aa565b6111ad565b61024a60055481565b6102937f000000000000000000000000000000000000000000000000000000000000000081565b6102936103c4366004612b96565b61135e565b6101fd6103d7366004612987565b61137d565b6102256103ea366004612a60565b6113a6565b61024a600081565b610225610405366004612c50565b6114a4565b610260610418366004612a60565b61162f565b61022561042b366004612c6d565b611643565b61024a61043e3660046128f6565b6117bb565b610225610451366004612987565b6117d2565b61024a610464366004612a60565b6117f7565b61024a60008051602061325283398151915281565b61022561048c366004612ca6565b61180b565b60006001600160e01b03198216635a05180f60e01b14806104b657506104b682611a03565b92915050565b6000805160206132528339815191526104d481611a38565b836104de81611a45565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c61051561063a565b6040518263ffffffff1660e01b8152600401610531919061295f565b602060405180830381865afa15801561054e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105729190612d10565b6001600160a01b0316306001600160a01b0316146105b2604051806040016040528060138152602001600080516020613232833981519152815250611a99565b906105d95760405162461bcd60e51b81526004016105d0919061295f565b60405180910390fd5b506000858152600260208190526040909120016105f7848683612db7565b507ff608c377d37afaf8d19d5b32cb0cb388e64cc92b5b8e263396f34a562b99d37185858560405161062b93929190612ea1565b60405180910390a15050505050565b60408051808201909152601481527323a0a620ac24a9afa0a22227a72fa6a4a72a22a960611b602082015290565b60008281526020819052604090206001015461068381611a38565b61068d8383611ac2565b505050565b6001600160a01b03811633146107025760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105d0565b61070c8282611ae4565b5050565b60006060825184511461075060405180604001604052806016815260200175082e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b815250611a99565b9061076e5760405162461bcd60e51b81526004016105d0919061295f565b5060065460408051808201909152601881527714d85b19481a5cc818dd5c9c995b9d1b1e481c185d5cd95960421b602082015260ff909116906107b090611a99565b906107ce5760405162461bcd60e51b81526004016105d0919061295f565b5060005b8451811015610972576107fd8582815181106107f0576107f0612ec4565b6020026020010151611a45565b60006002600087848151811061081557610815612ec4565b60200260200101518152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1615151515815260200160028201805461086b90612d2d565b80601f016020809104026020016040519081016040528092919081815260200182805461089790612d2d565b80156108e45780601f106108b9576101008083540402835291602001916108e4565b820191906000526020600020905b8154815290600101906020018083116108c757829003601f168201915b505050505081525050905080602001516109156040518060600160405280602f8152602001613272602f9139611a99565b906109335760405162461bcd60e51b81526004016105d0919061295f565b5084828151811061094657610946612ec4565b6020026020010151816000015161095d9190612ef0565b6109679085612f07565b9350506001016107d2565b508383604051602001610986929190612f56565b60405160208183030381529060405290505b9250929050565b6000805160206132528339815191526109b781611a38565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c6109ee61063a565b6040518263ffffffff1660e01b8152600401610a0a919061295f565b602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190612d10565b6001600160a01b0316306001600160a01b031614610a8b604051806040016040528060138152602001600080516020613232833981519152815250611a99565b90610aa95760405162461bcd60e51b81526004016105d0919061295f565b506005805460009182610abb83612f7b565b9190505590506040518060600160405280898152602001861515815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505083815260026020818152604092839020855181559085015160018201805460ff191691151591909117905591840151919250820190610b519082612f94565b50905050610b5d611b06565b6001600160a01b031663862440e28286866040518463ffffffff1660e01b8152600401610b8c93929190612ea1565b600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050507f47b714964c1f0185c7a5a73891f657f9abdbe6b95e00908b9067d24934aa42778189878a8a8989604051610bf99796959493929190613054565b60405180910390a15050505050505050565b600080516020613252833981519152610c2381611a38565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c610c5a61063a565b6040518263ffffffff1660e01b8152600401610c76919061295f565b602060405180830381865afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb79190612d10565b6001600160a01b0316306001600160a01b031614610cf7604051806040016040528060138152602001600080516020613232833981519152815250611a99565b90610d155760405162461bcd60e51b81526004016105d0919061295f565b5050600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080516020613252833981519152610d5181611a38565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc919061309d565b905060008111610df7604051806040016040528060148152602001734e6f2066756e647320746f20776974686472617760601b815250611a99565b90610e155760405162461bcd60e51b81526004016105d0919061295f565b5061068d6001600160a01b0384163383611bbf565b600080516020613252833981519152610e4281611a38565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c610e7961063a565b6040518263ffffffff1660e01b8152600401610e95919061295f565b602060405180830381865afa158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed69190612d10565b6001600160a01b0316306001600160a01b031614610f16604051806040016040528060138152602001600080516020613232833981519152815250611a99565b90610f345760405162461bcd60e51b81526004016105d0919061295f565b5050600380546001600160a01b0319166001600160a01b0392909216919091179055565b606060008084118015610f6c575060055484105b610fa36040518060400160405280601681526020017524b73b30b634b21039ba30b93a103837b9b4ba34b7b760511b815250611a99565b90610fc15760405162461bcd60e51b81526004016105d0919061295f565b50600554600090610fd28587612f07565b10610feb576001600554610fe691906130b6565b611001565b6001610ff78587612f07565b61100191906130b6565b9050600061100f86836130b6565b61101a906001612f07565b67ffffffffffffffff811115611032576110326129b7565b60405190808252806020026020018201604052801561106b57816020015b611058612801565b8152602001906001900390816110505790505b509050855b8281116111895760408051808201825282815260008381526002602081815291849020845160608101865281548152600182015460ff16151581850152918101805494959386019492939192918401916110c990612d2d565b80601f01602080910402602001604051908101604052809291908181526020018280546110f590612d2d565b80156111425780601f1061111757610100808354040283529160200191611142565b820191906000526020600020905b81548152906001019060200180831161112557829003601f168201915b505050919092525050509052828561115981612f7b565b96508151811061116b5761116b612ec4565b6020026020010181905250808061118190612f7b565b915050611070565b5095945050505050565b60606111a860018060055461035991906130b6565b905090565b6000805160206132528339815191526111c581611a38565b836111cf81611a45565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c61120661063a565b6040518263ffffffff1660e01b8152600401611222919061295f565b602060405180830381865afa15801561123f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190612d10565b6001600160a01b0316306001600160a01b0316146112a3604051806040016040528060138152602001600080516020613232833981519152815250611a99565b906112c15760405162461bcd60e51b81526004016105d0919061295f565b506112ca611b06565b6001600160a01b031663862440e28686866040518463ffffffff1660e01b81526004016112f993929190612ea1565b600060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b505050507f459157ba24c7ab9878b165ef465fa6ae2ab42bcd8445f576be378768b0c4730985858560405161062b93929190612ea1565b60008281526001602052604081206113769083611c11565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c6113dd61063a565b6040518263ffffffff1660e01b81526004016113f9919061295f565b602060405180830381865afa158015611416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143a9190612d10565b6001600160a01b0316306001600160a01b03161461147a604051806040016040528060138152602001600080516020613232833981519152815250611a99565b906114985760405162461bcd60e51b81526004016105d0919061295f565b5061070c828233611c1d565b6000805160206132528339815191526114bc81611a38565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c6114f361063a565b6040518263ffffffff1660e01b815260040161150f919061295f565b602060405180830381865afa15801561152c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115509190612d10565b6001600160a01b0316306001600160a01b031614611590604051806040016040528060138152602001600080516020613232833981519152815250611a99565b906115ae5760405162461bcd60e51b81526004016105d0919061295f565b5060065460408051808201909152601c81527f73616c652073746174757320776f756c64206e6f74206368616e676500000000602082015260ff90911615158315151415906115fc90611a99565b9061161a5760405162461bcd60e51b81526004016105d0919061295f565b50506006805460ff1916911515919091179055565b606061163b8383610710565b949350505050565b60008051602061325283398151915261165b81611a38565b8361166581611a45565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c61169c61063a565b6040518263ffffffff1660e01b81526004016116b8919061295f565b602060405180830381865afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f99190612d10565b6001600160a01b0316306001600160a01b031614611739604051806040016040528060138152602001600080516020613232833981519152815250611a99565b906117575760405162461bcd60e51b81526004016105d0919061295f565b50600085815260026020908152604091829020868155600101805460ff19168615159081179091558251888152918201879052918101919091527f62218d5425eeeb543a7931a539a1df08a00b9fd0b021c6dcaf21203b30d9dcd39060600161062b565b60008181526001602052604081206104b69061203c565b6000828152602081905260409020600101546117ed81611a38565b61068d8383611ae4565b60006118038383610710565b509392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374b9982c61184261063a565b6040518263ffffffff1660e01b815260040161185e919061295f565b602060405180830381865afa15801561187b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189f9190612d10565b6001600160a01b0316306001600160a01b0316146118df604051806040016040528060138152602001600080516020613232833981519152815250611a99565b906118fd5760405162461bcd60e51b81526004016105d0919061295f565b5060035460408051808201909152601681527524b73b30b634b21022a9219918103a3930b739b332b960511b60208201526001600160a01b038681169216919091149061194990611a99565b906119675760405162461bcd60e51b81526004016105d0919061295f565b50600061197386612046565b905060006001600160a01b0316816001600160a01b031614156119bc6040518060400160405280600f81526020016e1a5b9d985b1a590818d85c99081251608a1b815250611a99565b906119da5760405162461bcd60e51b81526004016105d0919061295f565b506000806119ea84860186612a60565b915091506119f9828285611c1d565b5050505050505050565b60006001600160e01b03198216637965db0b60e01b14806104b657506301ffc9a760e01b6001600160e01b03198316146104b6565b611a42813361219c565b50565b6005548110611a7b6040518060400160405280601081526020016f1a5b9d985b1a59081d1bdad95b881a5960821b815250611a99565b9061070c5760405162461bcd60e51b81526004016105d0919061295f565b606081604051602001611aac91906130c9565b6040516020818303038152906040529050919050565b611acc8282612200565b600082815260016020526040902061068d9082612284565b611aee8282612299565b600082815260016020526040902061068d90826122fe565b604080518082018252601381527223a0a620ac24a9afa0a22227a72faa27a5a2a760691b60208201529051631d2e660b60e21b815260009182916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916374b9982c91611b7e919060040161295f565b602060405180830381865afa158015611b9b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b69190612d10565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261068d908490612313565b600061137683836123e5565b8151835114611c5960405180604001604052806016815260200175082e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b815250611a99565b90611c775760405162461bcd60e51b81526004016105d0919061295f565b5060065460408051808201909152601881527714d85b19481a5cc818dd5c9c995b9d1b1e481c185d5cd95960421b602082015260ff90911690611cb990611a99565b90611cd75760405162461bcd60e51b81526004016105d0919061295f565b506000805b8451811015611f2757611cfa8582815181106107f0576107f0612ec4565b600060026000878481518110611d1257611d12612ec4565b60200260200101518152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff16151515158152602001600282018054611d6890612d2d565b80601f0160208091040260200160405190810160405280929190818152602001828054611d9490612d2d565b8015611de15780601f10611db657610100808354040283529160200191611de1565b820191906000526020600020905b815481529060010190602001808311611dc457829003601f168201915b50505050508152505090508060200151611e126040518060600160405280602f8152602001613272602f9139611a99565b90611e305760405162461bcd60e51b81526004016105d0919061295f565b50848281518110611e4357611e43612ec4565b60200260200101518160000151611e5a9190612ef0565b611e649084612f07565b9250611e6e611b06565b6001600160a01b031663156e29f685888581518110611e8f57611e8f612ec4565b6020026020010151888681518110611ea957611ea9612ec4565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505060019093019250611cdc915050565b50600354600480546040516323b872dd60e01b815233928101929092526001600160a01b03908116602483015260448201849052909116906323b872dd906064016020604051808303816000875af1158015611f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fab919061310e565b611fda6040518060400160405280600e81526020016d14185e5b595b9d0819985a5b195960921b815250611a99565b90611ff85760405162461bcd60e51b81526004016105d0919061295f565b507f41e1fa4a939c569fdb53f5b5f04d37ce9929349afdc021fd6c1901a1491233e28285858460405161202e949392919061312b565b60405180910390a150505050565b60006104b6825490565b600080336001600160a01b031663665305bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ab9190612d10565b604051631d2e660b60e21b8152602060048201526007602482015266544f4b454e5f3160c81b60448201529091506001600160a01b038216906374b9982c90606401602060405180830381865afa15801561210a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212e9190612d10565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161215b91815260200190565b602060405180830381865afa158015612178573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113769190612d10565b6121a6828261137d565b61070c576121be816001600160a01b0316601461240f565b6121c983602061240f565b6040516020016121da929190613173565b60408051601f198184030181529082905262461bcd60e51b82526105d09160040161295f565b61220a828261137d565b61070c576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556122403390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611376836001600160a01b0384166125ab565b6122a3828261137d565b1561070c576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611376836001600160a01b0384166125fa565b6000612368826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126ed9092919063ffffffff16565b80519091501561068d5780806020019051810190612386919061310e565b61068d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d0565b60008260000182815481106123fc576123fc612ec4565b9060005260206000200154905092915050565b6060600061241e836002612ef0565b612429906002612f07565b67ffffffffffffffff811115612441576124416129b7565b6040519080825280601f01601f19166020018201604052801561246b576020820181803683370190505b509050600360fc1b8160008151811061248657612486612ec4565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106124b5576124b5612ec4565b60200101906001600160f81b031916908160001a90535060006124d9846002612ef0565b6124e4906001612f07565b90505b600181111561255c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061251857612518612ec4565b1a60f81b82828151811061252e5761252e612ec4565b60200101906001600160f81b031916908160001a90535060049490941c93612555816131e8565b90506124e7565b5083156113765760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d0565b60008181526001830160205260408120546125f2575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104b6565b5060006104b6565b600081815260018301602052604081205480156126e357600061261e6001836130b6565b8554909150600090612632906001906130b6565b905081811461269757600086600001828154811061265257612652612ec4565b906000526020600020015490508087600001848154811061267557612675612ec4565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806126a8576126a86131ff565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104b6565b60009150506104b6565b606061163b8484600085856001600160a01b0385163b61274f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d0565b600080866001600160a01b0316858760405161276b9190613215565b60006040518083038185875af1925050503d80600081146127a8576040519150601f19603f3d011682016040523d82523d6000602084013e6127ad565b606091505b50915091506127bd8282866127c8565b979650505050505050565b606083156127d7575081611376565b8251156127e75782518084602001fd5b8160405162461bcd60e51b81526004016105d0919061295f565b604051806040016040528060008152602001612839604051806060016040528060008152602001600015158152602001606081525090565b905290565b60006020828403121561285057600080fd5b81356001600160e01b03198116811461137657600080fd5b60008083601f84011261287a57600080fd5b50813567ffffffffffffffff81111561289257600080fd5b60208301915083602082850101111561099857600080fd5b6000806000604084860312156128bf57600080fd5b83359250602084013567ffffffffffffffff8111156128dd57600080fd5b6128e986828701612868565b9497909650939450505050565b60006020828403121561290857600080fd5b5035919050565b60005b8381101561292a578181015183820152602001612912565b50506000910152565b6000815180845261294b81602086016020860161290f565b601f01601f19169290920160200192915050565b6020815260006113766020830184612933565b6001600160a01b0381168114611a4257600080fd5b6000806040838503121561299a57600080fd5b8235915060208301356129ac81612972565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126129de57600080fd5b8135602067ffffffffffffffff808311156129fb576129fb6129b7565b8260051b604051601f19603f83011681018181108482111715612a2057612a206129b7565b6040529384526020818701810194908101925087851115612a4057600080fd5b6020870191505b848210156127bd57813583529183019190830190612a47565b60008060408385031215612a7357600080fd5b823567ffffffffffffffff80821115612a8b57600080fd5b612a97868387016129cd565b93506020850135915080821115612aad57600080fd5b50612aba858286016129cd565b9150509250929050565b82815260406020820152600061163b6040830184612933565b8015158114611a4257600080fd5b60008060008060008060808789031215612b0457600080fd5b86359550602087013567ffffffffffffffff80821115612b2357600080fd5b612b2f8a838b01612868565b909750955060408901359150612b4482612add565b90935060608801359080821115612b5a57600080fd5b50612b6789828a01612868565b979a9699509497509295939492505050565b600060208284031215612b8b57600080fd5b813561137681612972565b60008060408385031215612ba957600080fd5b50508035926020909101359150565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015612c4257888303603f19018552815180518452870151878401879052805187850152808801511515606080860191909152908701516080850191909152612c2f60a0850182612933565b9588019593505090860190600101612be1565b509098975050505050505050565b600060208284031215612c6257600080fd5b813561137681612add565b600080600060608486031215612c8257600080fd5b83359250602084013591506040840135612c9b81612add565b809150509250925092565b600080600080600060808688031215612cbe57600080fd5b853594506020860135612cd081612972565b935060408601359250606086013567ffffffffffffffff811115612cf357600080fd5b612cff88828901612868565b969995985093965092949392505050565b600060208284031215612d2257600080fd5b815161137681612972565b600181811c90821680612d4157607f821691505b602082108103612d6157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561068d576000816000526020600020601f850160051c81016020861015612d905750805b601f850160051c820191505b81811015612daf57828155600101612d9c565b505050505050565b67ffffffffffffffff831115612dcf57612dcf6129b7565b612de383612ddd8354612d2d565b83612d67565b6000601f841160018114612e175760008515612dff5750838201355b600019600387901b1c1916600186901b178355612e71565b600083815260209020601f19861690835b82811015612e485786850135825560209485019460019092019101612e28565b5086821015612e655760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000612ebb604083018486612e78565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104b6576104b6612eda565b808201808211156104b6576104b6612eda565b60008151808452602080850194506020840160005b83811015612f4b57815187529582019590820190600101612f2f565b509495945050505050565b604081526000612f696040830185612f1a565b8281036020840152612ebb8185612f1a565b600060018201612f8d57612f8d612eda565b5060010190565b815167ffffffffffffffff811115612fae57612fae6129b7565b612fc281612fbc8454612d2d565b84612d67565b602080601f831160018114612ff75760008415612fdf5750858301515b600019600386901b1c1916600185901b178555612daf565b600085815260208120601f198616915b8281101561302657888601518255948401946001909101908401613007565b50858210156130445787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b878152866020820152851515604082015260a06060820152600061307c60a083018688612e78565b828103608084015261308f818587612e78565b9a9950505050505050505050565b6000602082840312156130af57600080fd5b5051919050565b818103818111156104b6576104b6612eda565b7f47616c61786973204164646f6e204d696e746572203a2000000000000000000081526000825161310181601785016020870161290f565b9190910160170192915050565b60006020828403121561312057600080fd5b815161137681612add565b6001600160a01b038516815260806020820181905260009061314f90830186612f1a565b82810360408401526131618186612f1a565b91505082606083015295945050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516131ab81601785016020880161290f565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516131dc81602884016020880161290f565b01602801949350505050565b6000816131f7576131f7612eda565b506000190190565b634e487b7160e01b600052603160045260246000fd5b6000825161322781846020870161290f565b919091019291505056fe4e6f742063757272656e742076657273696f6e00000000000000000000000000e56abc0b0bb001da17f6972fb4958a0ef84df2b0d51019e60131ea7bd2837f3653616c6520666f72206174206c65617374206f6e6520746f6b656e2069732063757272656e746c7920706175736564a2646970667358221220d349bae8268756f4646a4c9369e57a1b26e6ce0b25605872d2f456fef013a16764736f6c63430008190033e56abc0b0bb001da17f6972fb4958a0ef84df2b0d51019e60131ea7bd2837f36000000000000000000000000dbd9608fbca959828c1615d29aeb3dc872d40ae2000000000000000000000000f34646c0fe5370684ba9888f1e2478f6268691d100000000000000000000000087cd386bebe15eddaebb05a0c984318af228a19c