0 txs
0 calls
constructor
constructor(address _renderingContract, string contractImageData)
functions
addressToInvitationsMinted
viewfunction addressToInvitationsMinted(address, uint24) view returns (bool)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
contractImagePointer
viewfunction contractImagePointer() view returns (address)
contractURI
viewfunction contractURI() view returns (string)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getExtraTokenInfo
viewfunction getExtraTokenInfo(uint64 tokenId) view returns (tuple)
getInvitationById
viewfunction getInvitationById(uint24 invitationId) view returns (tuple)
getInvitationForToken
viewfunction getInvitationForToken(uint64 tokenId) view returns (tuple)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
invitationExists
viewfunction invitationExists(uint24 invitationId) view returns (bool)
invitationIdToInvitation
viewfunction invitationIdToInvitation(uint24) view returns (uint24 id, bool isRadialGradient, uint24 textColor, uint8 fontSize, uint16 linearGradientAngleDeg, address textPointer, address descriptionPointer, uint32 eventTime, uint32 mintStart, uint24 mintDuration, uint24 editionSize)
invitationMintEndTime
viewfunction invitationMintEndTime(uint24 invitationId) view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
name
viewfunction name() view returns (string)
nextInvitationId
viewfunction nextInvitationId() view returns (uint24)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
renderingContract
viewfunction renderingContract() 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)
tokenIdToExtraInfo
viewfunction tokenIdToExtraInfo(uint64) view returns (uint24 invitationId, uint24 editionNumber, address minter)
tokenImage
viewfunction tokenImage(uint64 tokenId) view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
createInvitation
nonpayablefunction createInvitation(string text, uint24 textColor, bool isRadialGradient, uint8 fontSize, uint16 linearGradientAngleDeg, uint24[10] gradientColors, uint32 eventTime, string description)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
mint
nonpayablefunction mint(uint24 invitationId) returns (uint256)
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)
setContractImageData
nonpayablefunction setContractImageData(string contractImageData)
setRenderingContract
nonpayablefunction setRenderingContract(address newContract)
startMint
nonpayablefunction startMint(uint24 invitationId, uint32 mintStartTime, uint24 mintDuration)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
withdraw
nonpayablefunction withdraw()
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
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)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
ApproveToCaller
error ApproveToCaller()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
InvalidCodeAtRange
error InvalidCodeAtRange(uint256 _size, uint256 _start, uint256 _end)
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
WriteError
error WriteError()
creation bytecode
0x6080604052600c805462ffffff60a01b1916600160a01b1790553480156200002657600080fd5b5060405162004bf838038062004bf8833981016040819052620000499162000762565b6040518060400160405280601681526020017f43617073756c6520323120496e7669746174696f6e7300000000000000000000815250604051806040016040528060048152602001634332314960e01b8152508160029081620000ad9190620008b4565b506003620000bc8282620008b4565b505060016000908155620000d291503362000161565b620000f36000735fd2e3ba05c862e62a34b9f63c45c0df622ac11262000161565b62000114600073c2172a6315c1d7f6855768f843c420ebb36eda9762000161565b62000135600073f98537696e2cf486f8f32604b2ca2cda120dbba862000161565b6200014082620001ec565b6200014b816200021c565b62000159306103e862000263565b505062000c45565b6200016d8282620002fc565b620001e8576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001a73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620001f98162000329565b50600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000620002298162000329565b6200023f826200033860201b62001c481760201c565b600c80546001600160a01b0319166001600160a01b03929092169190911790555050565b6127106001600160601b03821611156200029a5760405162461bcd60e51b8152600401620002919062000984565b60405180910390fd5b6001600160a01b038216620002c35760405162461bcd60e51b8152600401620002919062000a0a565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600855565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b620003358133620003ad565b50565b600080620003728360405160200162000352919062000a4e565b6040516020818303038152906040526200043060201b62001cad1760201c565b90508051602082016000f091506001600160a01b038216620003a75760405163046a55db60e11b815260040160405180910390fd5b50919050565b620003b98282620002fc565b620001e857620003df816001600160a01b031660146200045e60201b62001cd91760201c565b620003f583602062001cd96200045e821b17811c565b6040516020016200040892919062000a69565b60408051601f198184030181529082905262461bcd60e51b8252620002919160040162000afe565b60608151826040516020016200044892919062000b44565b6040516020818303038152906040529050919050565b606060006200046f83600262000b93565b6200047c90600262000bb5565b6001600160401b0381111562000496576200049662000625565b6040519080825280601f01601f191660200182016040528015620004c1576020820181803683370190505b509050600360fc1b81600081518110620004df57620004df62000bd0565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062000511576200051162000bd0565b60200101906001600160f81b031916908160001a90535060006200053784600262000b93565b6200054490600162000bb5565b90505b6001811115620005c6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106200057c576200057c62000bd0565b1a60f81b82828151811062000595576200059562000bd0565b60200101906001600160f81b031916908160001a90535060049490941c93620005be8162000be6565b905062000547565b508315620005e85760405162461bcd60e51b8152600401620002919062000c33565b9392505050565b60006001600160a01b03821662000323565b6200060c81620005ef565b81146200033557600080fd5b8051620003238162000601565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b038211171562000663576200066362000625565b6040525050565b60006200067660405190565b90506200068482826200063b565b919050565b60006001600160401b03821115620006a557620006a562000625565b601f19601f83011660200192915050565b60005b83811015620006d3578181015183820152602001620006b9565b83811115620006e3576000848401525b50505050565b600062000700620006fa8462000689565b6200066a565b9050828152602081018484840111156200071d576200071d600080fd5b6200072a848285620006b6565b509392505050565b600082601f830112620007485762000748600080fd5b81516200075a848260208601620006e9565b949350505050565b600080604083850312156200077a576200077a600080fd5b600062000788858562000618565b92505060208301516001600160401b03811115620007a957620007a9600080fd5b620007b78582860162000732565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620007ec57607f821691505b602082108103620003a757620003a7620007c1565b6000620003236200080f8381565b90565b6200081d8362000801565b81546008840282811b60001990911b908116901990911617825550505050565b60006200084c81848462000812565b505050565b81811015620001e857620008676000826200083d565b60010162000851565b601f8211156200084c576000818152602090206020601f85010481016020851015620008995750805b620008ad6020601f86010483018262000851565b5050505050565b81516001600160401b03811115620008d057620008d062000625565b620008dc8254620007d7565b620008e982828562000870565b6020601f831160018114620009205760008415620009075750858201515b600019600886021c19811660028602178655506200097c565b600085815260208120601f198616915b8281101562000952578885015182556020948501946001909201910162000930565b868310156200096f5784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b602080825281016200032381602a81527f455243323938313a20726f79616c7479206665652077696c6c206578636565646020820152692073616c65507269636560b01b604082015260600190565b601981526000602082017f455243323938313a20696e76616c696420726563656976657200000000000000815291505b5060200190565b602080825281016200032381620009d3565b60008082525b5060010190565b600062000a34825190565b62000a44818560208601620006b6565b9290920192915050565b600062000a5b8262000a1c565b9150620005e8828462000a29565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152601701600062000a9d828562000a29565b7001034b99036b4b9b9b4b733903937b6329607d1b81529150601182015b91506200075a828462000a29565b600062000ad4825190565b80845260208401935062000aed818560208601620006b6565b601f01601f19169290920192915050565b60208082528101620005e8818462000ac9565b606360f81b8152600062000a22565b6000620003238260e01b90565b62000b3e63ffffffff821662000b20565b82525050565b600062000b518262000b11565b915062000b5f828562000b2d565b6880600e6000396000f360b81b6004830190815291600d0162000abb565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000bb05762000bb062000b7d565b500290565b6000821982111562000bcb5762000bcb62000b7d565b500190565b634e487b7160e01b600052603260045260246000fd5b60008162000bf85762000bf862000b7d565b506000190190565b60208082527f537472696e67733a20686578206c656e67746820696e73756666696369656e749101908152600062000a03565b60208082528101620003238162000c00565b613fa38062000c556000396000f3fe60806040526004361061023f5760003560e01c80637fc9cfff1161012e578063c7fecbcc116100ab578063e985e9c51161006f578063e985e9c514610774578063eaef4d8f146107bd578063f2a24e19146107dd578063f390b27a1461089b578063fc31973a146108bb57610246565b8063c7fecbcc146106c2578063c87b56dd146106ef578063d547741f1461070f578063dc923e511461072f578063e8a3d4851461075f57610246565b8063962cafe5116100f2578063962cafe5146105ee578063a217fddf1461064d578063a22cb46514610662578063b7f1d07214610682578063b88d4fde146106a257610246565b80637fc9cfff1461054c5780638997929b1461056c578063910379041461059957806391d14854146105b957806395d89b41146105d957610246565b80632f2ff15d116101bc5780636352211e116101805780636352211e1461049157806370a08231146104b157806370f70f19146104d1578063712c7261146104f15780637be5955d1461051157610246565b80632f2ff15d146103fc57806336568abe1461041c5780633ccfd60b1461043c57806342842e0e1461045157806353e61f541461047157610246565b806318160ddd1161020357806318160ddd1461032157806323aaabbe1461034757806323b872dd1461037e578063248a9ca31461039e5780632a55205a146103ce57610246565b806301384ec61461024d57806301ffc9a71461028357806306fdde03146102b0578063081812fc146102d2578063095ea7b3146102ff57610246565b3661024657005b6060516080f35b34801561025957600080fd5b5061026d61026836600461296e565b6108db565b60405161027a9190612b0e565b60405180910390f35b34801561028f57600080fd5b506102a361029e366004612b38565b610a57565b60405161027a9190612b59565b3480156102bc57600080fd5b506102c5610a77565b60405161027a9190612bc5565b3480156102de57600080fd5b506102f26102ed366004612be7565b610b09565b60405161027a9190612c08565b34801561030b57600080fd5b5061031f61031a366004612c2a565b610b4d565b005b34801561032d57600080fd5b5060015460005403600019015b60405161027a9190612c6d565b34801561035357600080fd5b506102a361036236600461296e565b62ffffff9081166000908152600d602052604090205416151590565b34801561038a57600080fd5b5061031f610399366004612c7b565b610bed565b3480156103aa57600080fd5b5061033a6103b9366004612be7565b6000908152600a602052604090206001015490565b3480156103da57600080fd5b506103ee6103e9366004612ccb565b610d86565b60405161027a929190612ced565b34801561040857600080fd5b5061031f610417366004612d08565b610e34565b34801561042857600080fd5b5061031f610437366004612d08565b610e5e565b34801561044857600080fd5b5061031f610e94565b34801561045d57600080fd5b5061031f61046c366004612c7b565b610f55565b34801561047d57600080fd5b5061033a61048c36600461296e565b610f70565b34801561049d57600080fd5b506102f26104ac366004612be7565b6110fd565b3480156104bd57600080fd5b5061033a6104cc366004612d3b565b611108565b3480156104dd57600080fd5b5061031f6104ec366004612d73565b611156565b3480156104fd57600080fd5b5061031f61050c366004612eb2565b61123d565b34801561051d57600080fd5b506102a361052c366004612eec565b600f60209081526000928352604080842090915290825290205460ff1681565b34801561055857600080fd5b5061026d610567366004612f39565b611275565b34801561057857600080fd5b5061058c610587366004612f39565b611431565b60405161027a9190612f91565b3480156105a557600080fd5b5061031f6105b436600461303a565b6114d5565b3480156105c557600080fd5b506102a36105d4366004612d08565b611725565b3480156105e557600080fd5b506102c5611750565b3480156105fa57600080fd5b5061063e610609366004612f39565b600e6020526000908152604090205462ffffff808216916301000000810490911690600160301b90046001600160a01b031683565b60405161027a9392919061312b565b34801561065957600080fd5b5061033a600081565b34801561066e57600080fd5b5061031f61067d366004613153565b61175f565b34801561068e57600080fd5b5061031f61069d366004612d3b565b6117f7565b3480156106ae57600080fd5b5061031f6106bd366004613186565b611825565b3480156106ce57600080fd5b50600b546106e2906001600160a01b031681565b60405161027a9190613246565b3480156106fb57600080fd5b506102c561070a366004612be7565b61186f565b34801561071b57600080fd5b5061031f61072a366004612d08565b61189f565b34801561073b57600080fd5b50600c5461075290600160a01b900462ffffff1681565b60405161027a9190613254565b34801561076b57600080fd5b506102c56118c4565b34801561078057600080fd5b506102a361078f366004613262565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156107c957600080fd5b5061033a6107d836600461296e565b61196c565b3480156107e957600080fd5b506108846107f836600461296e565b600d60205260009081526040902080546002820154600383015460049093015462ffffff9283169360ff80841694610100850481169464010000000081049092169361ffff600160281b840416936001600160a01b03600160381b90940484169381169263ffffffff600160a01b8304811693600160c01b840490911692600160e01b9004821691168b565b60405161027a9b9a99989796959493929190613284565b3480156108a757600080fd5b50600c546102f2906001600160a01b031681565b3480156108c757600080fd5b506102c56108d6366004612f39565b611b43565b6108e3612810565b62ffffff8083166000908152600d60205260409020541661091f5760405162461bcd60e51b81526004016109169061335f565b60405180910390fd5b62ffffff8281166000908152600d6020908152604080832081516101808101835281549095168552815161014081019283905290939285019290916001850191600a91908390855b82829054906101000a900462ffffff1662ffffff16815260200190600301906020826002010492830192600103820291508084116109675790505050509183525050600282015460ff8082161515602084015262ffffff610100808404821660408601526401000000008404909216606085015261ffff600160281b84041660808501526001600160a01b03600160381b909304831660a0850152600385015492831660c085015263ffffffff600160a01b8404811660e0860152600160c01b84041691840191909152600160e01b90910481166101208301526004909201549091166101409091015292915050565b6000610a6282611e44565b80610a715750610a7182611e92565b92915050565b606060028054610a8690613385565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab290613385565b8015610aff5780601f10610ad457610100808354040283529160200191610aff565b820191906000526020600020905b815481529060010190602001808311610ae257829003601f168201915b5050505050905090565b6000610b1482611ec7565b610b31576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610b58826110fd565b9050336001600160a01b03821614610b9157610b74813361078f565b610b91576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000610bf882611efc565b9050836001600160a01b0316816001600160a01b031614610c2b5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417610c7857610c5b863361078f565b610c7857604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610c9f57604051633a954ecd60e21b815260040160405180910390fd5b8015610caa57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610d3c57600184016000818152600460205260408120549003610d3a576000548114610d3a5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b60008281526009602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610dfb5750604080518082019091526008546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610e1a906001600160601b0316876133c1565b610e2491906133f6565b91519350909150505b9250929050565b6000828152600a6020526040902060010154610e4f81611f6b565b610e598383611f78565b505050565b6001600160a01b0381163314610e865760405162461bcd60e51b815260040161091690613459565b610e908282611ffe565b5050565b6000610e9f81611f6b565b4780610ebd5760405162461bcd60e51b815260040161091690613493565b6000610eca6003836133f6565b90506000610ed96003846133f6565b9050600081610ee884866134a3565b610ef291906134a3565b9050610f1273f98537696e2cf486f8f32604b2ca2cda120dbba882612065565b610f30735fd2e3ba05c862e62a34b9f63c45c0df622ac11283612065565b610f4e73c2172a6315c1d7f6855768f843c420ebb36eda9784612065565b5050505050565b610e5983838360405180602001604052806000815250611825565b62ffffff8082166000908152600d6020526040812054909116610fa55760405162461bcd60e51b81526004016109169061335f565b62ffffff8281166000908152600d6020908152604080832081516101808101835281549095168552815161014081019283905293949390928401916001840190600a908288855b82829054906101000a900462ffffff1662ffffff1681526020019060030190602082600201049283019260010382029150808411610fec5790505050509183525050600282015460ff8082161515602084015262ffffff610100808404821660408601526401000000008404909216606085015261ffff600160281b84041660808501526001600160a01b03600160381b909304831660a0850152600385015492831660c085015263ffffffff600160a01b8404811660e0860152600160c01b84041691840191909152600160e01b90910481166101208084019190915260049093015481166101409283015290830151918301519293506110f0929116906134ba565b63ffffffff169392505050565b6000610a7182611efc565b60006001600160a01b038216611131576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b600061116181611f6b565b62ffffff8085166000908152600d6020526040902054166111945760405162461bcd60e51b81526004016109169061335f565b62ffffff84166000908152600d602052604090206003810154600160c01b900463ffffffff16156111d75760405162461bcd60e51b815260040161091690613515565b4263ffffffff168463ffffffff16116111f057426111f2565b835b6003909101805462ffffff909416600160e01b0262ffffff60e01b1963ffffffff93909316600160c01b029290921666ffffffffffffff60c01b199094169390931717909155505050565b600061124881611f6b565b61125182611c48565b600c80546001600160a01b0319166001600160a01b03929092169190911790555050565b61127d612810565b61128f826001600160401b0316611ec7565b6112ab5760405162461bcd60e51b81526004016109169061354f565b60006112b683611431565b80519091506112db8162ffffff9081166000908152600d602052604090205416151590565b6112f75760405162461bcd60e51b81526004016109169061335f565b62ffffff8181166000908152600d6020908152604080832081516101808101835281549095168552815161014081019283905290939285019290916001850191600a91908390855b82829054906101000a900462ffffff1662ffffff168152602001906003019060208260020104928301926001038202915080841161133f5790505050509183525050600282015460ff8082161515602084015262ffffff610100808404821660408601526401000000008404909216606085015261ffff600160281b84041660808501526001600160a01b03600160381b909304831660a0850152600385015492831660c085015263ffffffff600160a01b8404811660e0860152600160c01b84041691840191909152600160e01b909104811661012083015260049092015490911661014090910152949350505050565b6040805160608101825260008082526020820181905291810191909152611460826001600160401b0316611ec7565b61147c5760405162461bcd60e51b81526004016109169061354f565b506001600160401b03166000908152600e60209081526040918290208251606081018452905462ffffff8082168352630100000082041692820192909252600160301b9091046001600160a01b03169181019190915290565b60006114e081611f6b565b600c54600160a01b900462ffffff166000908152600d6020526040902063ffffffff85166115205760405162461bcd60e51b815260040161091690613587565b8a61153d5760405162461bcd60e51b8152600401610916906135b7565b8261155a5760405162461bcd60e51b8152600401610916906135ee565b600c548154600160a01b90910462ffffff1662ffffff19909116178155604080516020601f8e018190048102820181019092528c81526115b4918e908e9081908401838280828437600092019190915250611c4892505050565b8160020160076101000a8154816001600160a01b0302191690836001600160a01b0316021790555061161b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4892505050565b8160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550898160020160016101000a81548162ffffff021916908362ffffff160217905550888160020160006101000a81548160ff021916908315150217905550878160020160046101000a81548160ff021916908360ff160217905550868160020160056101000a81548161ffff021916908361ffff160217905550858160010190600a6116cf92919061287f565b50600301805463ffffffff60a01b1916600160a01b63ffffffff9690961686021790555050600c805462ffffff60a01b1981169084900462ffffff90811660010116909302929092179091555050505050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060038054610a8690613385565b336001600160a01b038316036117885760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b038716808552925291829020805460ff191685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31906117eb908590612b59565b60405180910390a35050565b600061180281611f6b565b50600b80546001600160a01b0319166001600160a01b0392909216919091179055565b611830848484610bed565b6001600160a01b0383163b156118695761184c84848484612101565b611869576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b606061187a82611ec7565b6118965760405162461bcd60e51b815260040161091690613622565b610a71826121ed565b6000828152600a60205260409020600101546118ba81611f6b565b610e598383611ffe565b60606119486118d1610a77565b6040518060600160405280602b8152602001613f07602b9139600c5461190890611903906001600160a01b03166123ae565b6123be565b6040518060600160405280603c8152602001613f32603c91396040516020016119349493929190613686565b6040516020818303038152906040526123be565b6040516020016119589190613746565b604051602081830303815290604052905090565b600033321461198d5760405162461bcd60e51b8152600401610916906137a8565b62ffffff8083166000908152600d6020526040902054166119c05760405162461bcd60e51b81526004016109169061335f565b62ffffff82166000818152600d60209081526040808320338452600f83528184209484529390915290205460ff1615611a0b5760405162461bcd60e51b8152600401610916906137f8565b6003810154600160c01b900463ffffffff16421015611a3c5760405162461bcd60e51b815260040161091690613832565b611a4583610f70565b421115611a645760405162461bcd60e51b815260040161091690613865565b600054611a72336001612522565b60048201805462ffffff16906000611a8983613875565b82546101009290920a62ffffff8181021990931691831602179091556001600160401b03929092166000818152600e60209081526040808320805465ffffff000001600160d01b0319811633600160301b810262ffffff198116929092179c8a169c8d17845560049a909a01546001600160d01b031990921665ffffffffffff19909116178b17971663010000000296909617909555948152600f85528381209681529590935250909220805460ff191660011790555090565b6060611b57826001600160401b0316611ec7565b611b735760405162461bcd60e51b815260040161091690613622565b6001600160401b0382166000908152600e60209081526040918290208251606081018452905462ffffff80821683526301000000820416928201929092526001600160a01b03600160301b909204821692810192909252600b5416633ce6e0d384611bdd81611275565b846040518463ffffffff1660e01b8152600401611bfc939291906138ad565b600060405180830381865afa158015611c19573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c41919081019061392f565b9392505050565b600080611c7383604051602001611c5f9190613973565b604051602081830303815290604052611cad565b90508051602082016000f091506001600160a01b038216611ca75760405163046a55db60e11b815260040160405180910390fd5b50919050565b6060815182604051602001611cc39291906139c0565b6040516020818303038152906040529050919050565b60606000611ce88360026133c1565b611cf39060026139f2565b6001600160401b03811115611d0a57611d0a612db9565b6040519080825280601f01601f191660200182016040528015611d34576020820181803683370190505b509050600360fc1b81600081518110611d4f57611d4f613a05565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d7e57611d7e613a05565b60200101906001600160f81b031916908160001a9053506000611da28460026133c1565b611dad9060016139f2565b90505b6001811115611e25576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611de157611de1613a05565b1a60f81b828281518110611df757611df7613a05565b60200101906001600160f81b031916908160001a90535060049490941c93611e1e81613a1b565b9050611db0565b508315611c415760405162461bcd60e51b815260040161091690613a64565b60006301ffc9a760e01b6001600160e01b031983161480611e7557506380ac58cd60e01b6001600160e01b03198316145b80610a715750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b1480610a7157506301ffc9a760e01b6001600160e01b0319831614610a71565b600081600111158015611edb575060005482105b8015610a71575050600090815260046020526040902054600160e01b161590565b60008180600111611f5257600054811015611f525760008181526004602052604081205490600160e01b82169003611f50575b80600003611c41575060001901600081815260046020526040902054611f2f565b505b604051636f96cda160e11b815260040160405180910390fd5b611f758133612602565b50565b611f828282611725565b610e90576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611fba3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6120088282611725565b15610e90576000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b804710156120855760405162461bcd60e51b815260040161091690613aa8565b6000826001600160a01b03168260405161209e90613ab8565b60006040518083038185875af1925050503d80600081146120db576040519150601f19603f3d011682016040523d82523d6000602084013e6120e0565b606091505b5050905080610e595760405162461bcd60e51b815260040161091690613b1d565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290612136903390899088908890600401613b2d565b6020604051808303816000875af1925050508015612171575060408051601f3d908101601f1916820190925261216e91810190613b72565b60015b6121cf573d80801561219f576040519150601f19603f3d011682016040523d82523d6000602084013e6121a4565b606091505b5080516000036121c7576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6001600160401b0381166000908152600e60209081526040808320815160608082018452915462ffffff8082168352630100000082041694820194909452600160301b9093046001600160a01b0316918301919091529161224d84611275565b9050600061225a85611b43565b90506000612270836000015162ffffff16612666565b612282856020015162ffffff16612666565b61229585610160015162ffffff16612666565b6040516020016122a793929190613b93565b6040516020818303038152906040529050612384816122c98560e001516123ae565b846040518060600160405280603c8152602001613f32603c9139600b546040808b01519051637df0201160e11b81526001600160a01b039092169163fbe040229161231691600401612c08565b600060405180830381865afa158015612333573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235b919081019061392f565b61236f89610100015163ffffffff16612666565b60405160200161193496959493929190613c9a565b6040516020016123949190613746565b604051602081830303815290604052945050505050919050565b6060610a71826001600019612766565b606081516000036123dd57505060408051602081019091526000815290565b6000604051806060016040528060408152602001613ec7604091399050600060038451600261240c91906139f2565b61241691906133f6565b6124219060046133c1565b905060006124308260206139f2565b6001600160401b0381111561244757612447612db9565b6040519080825280601f01601f191660200182016040528015612471576020820181803683370190505b509050818152600183018586518101602084015b818310156124dd576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f8116850151825350600101612485565b6003895106600181146124f7576002811461250857612514565b613d3d60f01b600119830152612514565b603d60f81b6000198301525b509398975050505050505050565b6000546001600160a01b03831661254b57604051622e076360e81b815260040160405180910390fd5b8160000361256c5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b038316600081815260056020526040902080546801000000000000000185020190554260a01b6001841460e11b1717600082815260046020526040902055808281015b6040516001830192906001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a48082106125b65760005550505050565b61260c8282611725565b610e9057612624816001600160a01b03166014611cd9565b61262f836020611cd9565b604051602001612640929190613e55565b60408051601f198184030181529082905262461bcd60e51b825261091691600401612bc5565b60608160000361268d5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156126b757806126a181613e77565b91506126b09050600a836133f6565b9150612691565b6000816001600160401b038111156126d1576126d1612db9565b6040519080825280601f01601f1916602001820160405280156126fb576020820181803683370190505b5090505b84156121e5576127106001836134a3565b915061271d600a86613e8a565b6127289060306139f2565b60f81b81838151811061273d5761273d613a05565b60200101906001600160f81b031916908160001a90535061275f600a866133f6565b94506126ff565b6060833b6000819003612789575050604080516020810190915260008152611c41565b808411156127a7575050604080516020810190915260008152611c41565b838310156127ce5780848460405163162544fd60e11b815260040161091693929190613e9e565b83830384820360008282106127e357826127e5565b815b60408051603f8301601f19168101909152818152955090508087602087018a3c505050509392505050565b604051806101800160405280600062ffffff16815260200161283061291d565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101409091015290565b60018301918390821561290d5791602002820160005b838211156128dc57833562ffffff1683826101000a81548162ffffff021916908362ffffff1602179055509260200192600301602081600201049283019260010302612895565b801561290b5782816101000a81549062ffffff02191690556003016020816002010492830192600103026128dc565b505b5061291992915061293c565b5090565b604051806101400160405280600a906020820280368337509192915050565b5b80821115612919576000815560010161293d565b62ffffff81165b8114611f7557600080fd5b8035610a7181612951565b60006020828403121561298357612983600080fd5b60006121e58484612963565b62ffffff81165b82525050565b60006129a8838361298f565b505060200190565b600a818060005b83811015610d7e5781516129cb878261299c565b9650602083019250506001016129b7565b801515612996565b60ff8116612996565b61ffff8116612996565b60006001600160a01b038216610a71565b612996816129f7565b63ffffffff8116612996565b80516102a0830190612a2f848261298f565b506020820151612a4260208501826129b0565b506040820151612a566101608501826129dc565b506060820151612a6a61018085018261298f565b506080820151612a7e6101a08501826129e4565b5060a0820151612a926101c08501826129ed565b5060c0820151612aa66101e0850182612a08565b5060e0820151612aba610200850182612a08565b50610100820151612acf610220850182612a11565b50610120820151612ae4610240850182612a11565b50610140820151612af961026085018261298f565b5061016082015161186961028085018261298f565b6102a08101610a718284612a1d565b6001600160e01b03198116612958565b8035610a7181612b1d565b600060208284031215612b4d57612b4d600080fd5b60006121e58484612b2d565b60208101610a7182846129dc565b60005b83811015612b82578181015183820152602001612b6a565b838111156118695750506000910152565b6000612b9d825190565b808452602084019350612bb4818560208601612b67565b601f01601f19169290920192915050565b60208082528101611c418184612b93565b80612958565b8035610a7181612bd6565b600060208284031215612bfc57612bfc600080fd5b60006121e58484612bdc565b60208101610a718284612a08565b612958816129f7565b8035610a7181612c16565b60008060408385031215612c4057612c40600080fd5b6000612c4c8585612c1f565b9250506020612c5d85828601612bdc565b9150509250929050565b80612996565b60208101610a718284612c67565b600080600060608486031215612c9357612c93600080fd5b6000612c9f8686612c1f565b9350506020612cb086828701612c1f565b9250506040612cc186828701612bdc565b9150509250925092565b60008060408385031215612ce157612ce1600080fd5b6000612c4c8585612bdc565b60408101612cfb8285612a08565b611c416020830184612c67565b60008060408385031215612d1e57612d1e600080fd5b6000612d2a8585612bdc565b9250506020612c5d85828601612c1f565b600060208284031215612d5057612d50600080fd5b60006121e58484612c1f565b63ffffffff8116612958565b8035610a7181612d5c565b600080600060608486031215612d8b57612d8b600080fd5b6000612d978686612963565b9350506020612da886828701612d68565b9250506040612cc186828701612963565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715612df457612df4612db9565b6040525050565b6000612e0660405190565b9050612e128282612dcf565b919050565b60006001600160401b03821115612e3057612e30612db9565b601f19601f83011660200192915050565b82818337506000910152565b6000612e60612e5b84612e17565b612dfb565b905082815260208101848484011115612e7b57612e7b600080fd5b612e86848285612e41565b509392505050565b600082601f830112612ea257612ea2600080fd5b81356121e5848260208601612e4d565b600060208284031215612ec757612ec7600080fd5b81356001600160401b03811115612ee057612ee0600080fd5b6121e584828501612e8e565b60008060408385031215612f0257612f02600080fd5b6000612f0e8585612c1f565b9250506020612c5d85828601612963565b6001600160401b038116612958565b8035610a7181612f1f565b600060208284031215612f4e57612f4e600080fd5b60006121e58484612f2e565b80516060830190612f6b848261298f565b506020820151612f7e602085018261298f565b5060408201516118696040850182612a08565b60608101610a718284612f5a565b60008083601f840112612fb457612fb4600080fd5b5081356001600160401b03811115612fce57612fce600080fd5b602083019150836001820283011115610e2d57610e2d600080fd5b801515612958565b8035610a7181612fe9565b60ff8116612958565b8035610a7181612ffc565b61ffff8116612958565b8035610a7181613010565b806101408101831015610a7157610a71600080fd5b6000806000806000806000806000806102208b8d03121561305d5761305d600080fd5b8a356001600160401b0381111561307657613076600080fd5b6130828d828e01612f9f565b9a509a505060206130958d828e01612963565b98505060406130a68d828e01612ff1565b97505060606130b78d828e01613005565b96505060806130c88d828e0161301a565b95505060a06130d98d828e01613025565b9450506101e06130eb8d828e01612d68565b9350506102008b01356001600160401b0381111561310b5761310b600080fd5b6131178d828e01612f9f565b92509250509295989b9194979a5092959850565b60608101613139828661298f565b613146602083018561298f565b6121e56040830184612a08565b6000806040838503121561316957613169600080fd5b60006131758585612c1f565b9250506020612c5d85828601612ff1565b6000806000806080858703121561319f5761319f600080fd5b60006131ab8787612c1f565b94505060206131bc87828801612c1f565b93505060406131cd87828801612bdc565b92505060608501356001600160401b038111156131ec576131ec600080fd5b6131f887828801612e8e565b91505092959194509250565b6000610a716001600160a01b03831661321b565b90565b6001600160a01b031690565b6000610a7182613204565b6000610a7182613227565b61299681613232565b60208101610a71828461323d565b60208101610a71828461298f565b6000806040838503121561327857613278600080fd5b6000612d2a8585612c1f565b6101608101613293828e61298f565b6132a0602083018d6129dc565b6132ad604083018c61298f565b6132ba606083018b6129e4565b6132c7608083018a6129ed565b6132d460a0830189612a08565b6132e160c0830188612a08565b6132ee60e0830187612a11565b6132fc610100830186612a11565b61330a61012083018561298f565b61331861014083018461298f565b9c9b505050505050505050505050565b601a81526000602082017f496e7669746174696f6e20646f6573206e6f742065786973742e000000000000815291505b5060200190565b60208082528101610a7181613328565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061339957607f821691505b602082108103611ca757611ca761336f565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156133db576133db6133ab565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613405576134056133e0565b500490565b602f81526000602082017f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636581526e103937b632b9903337b91039b2b63360891b602082015291505b5060400190565b60208082528101610a718161340a565b60138152600060208201724e6f7468696e6720746f20776974686472617760681b81529150613358565b60208082528101610a7181613469565b6000828210156134b5576134b56133ab565b500390565b600063ffffffff8216915063ffffffff831692508263ffffffff038211156134e4576134e46133ab565b500190565b601581526000602082017426b4b73a1030b63932b0b23c9039ba30b93a32b21760591b81529150613358565b60208082528101610a71816134e9565b6013815260006020820172151bdad95b88191bd95cdb89dd08195e1a5cdd606a1b81529150613358565b60208082528101610a7181613525565b60118152600060208201704e65656420612073746172742074696d6560781b81529150613358565b60208082528101610a718161355f565b600981526000602082016813995959081d195e1d60ba1b81529150613358565b60208082528101610a7181613597565b601081526000602082016f2732b2b2103232b9b1b934b83a34b7b760811b81529150613358565b60208082528101610a71816135c7565b600d81526000602082016c191bd95cdb89dd08195e1a5cdd609a1b81529150613358565b60208082528101610a71816135fe565b607b60f81b815260005b5060010190565b600061364d825190565b61365b818560208601612b67565b9290920192915050565b701116113232b9b1b934b83a34b7b7111d1160791b815260005b5060110190565b600061369182613632565b67113730b6b2911d1160c11b815260080191506136ae8287613643565b91506136b982613665565b91506136c58286613643565b7f222c22696d616765223a22646174613a696d6167652f7376672b786d6c3b62618152641cd94d8d0b60da1b602082015260250191506137058285613643565b7211161132bc3a32b93730b62fb634b735911d1160691b8152601301915061372d8284613643565b61227d60f01b81529150600282015b9695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000601d82015b9150611c418284613643565b601581526000602082017410dbdb9d1c9858dd1cc818d85b9b9bdd081b5a5b9d605a1b81529150613358565b60208082528101610a718161377c565b602381526000602082017f4f6e6c79206f6e206d696e742070657220696e7669746520706572206164647281526265737360e81b60208201529150613452565b60208082528101610a71816137b8565b6013815260006020820172135a5b9d081a185cdb89dd081cdd185c9d1959606a1b81529150613358565b60208082528101610a7181613808565b600c81526000602082016b26b4b73a1034b99037bb32b960a11b81529150613358565b60208082528101610a7181613842565b62ffffff16600062fffffe19820161363c5761363c6133ab565b6000610a716132186001600160401b03841681565b6129968161388f565b61032081016138bc82866138a4565b6138c96020830185612a1d565b6121e56102c0830184612f5a565b60006138e5612e5b84612e17565b90508281526020810184848401111561390057613900600080fd5b612e86848285612b67565b600082601f83011261391f5761391f600080fd5b81516121e58482602086016138d7565b60006020828403121561394457613944600080fd5b81516001600160401b0381111561395d5761395d600080fd5b6121e58482850161390b565b600080825261363c565b600061377082613969565b606360f81b8152600061363c565b6000610a718260e01b90565b61299663ffffffff821661398c565b6880600e6000396000f360b81b815260005b5060090190565b60006139cb8261397e565b91506139d78285613998565b6004820191506139e6826139a7565b91506121e58284613643565b600082198211156134e4576134e46133ab565b634e487b7160e01b600052603260045260246000fd5b600081613a2a57613a2a6133ab565b506000190190565b60208082527f537472696e67733a20686578206c656e67746820696e73756666696369656e7491019081526000613358565b60208082528101610a7181613a32565b601d81526000602082017f416464726573733a20696e73756666696369656e742062616c616e636500000081529150613358565b60208082528101610a7181613a74565b6000610a7182613218565b603a81526000602082017f416464726573733a20756e61626c6520746f2073656e642076616c75652c207281527f6563697069656e74206d6179206861766520726576657274656400000000000060208201529150613452565b60208082528101610a7181613ac3565b60808101613b3b8287612a08565b613b486020830186612a08565b613b556040830185612c67565b818103606083015261373c8184612b93565b8051610a7181612b1d565b600060208284031215613b8757613b87600080fd5b60006121e58484613b67565b7f43617073756c6520323120496e7669746174696f6e202300000000000000000081526017016000613bc58286613643565b61040560f31b81526002019150613bdc8285613643565b6301037b3160e51b81526004019150613bf58284613643565b602960f81b815260010195945050505050565b70222c2261747472696275746573223a205b60781b8152600061367f565b601160f91b8152600061363c565b627d2c7b60e81b815260005b5060030190565b7f22646973706c61795f74797065223a202264617465222c000000000000000000815260005b5060170190565b680113b30b63ab2911d160bd1b815260006139b9565b627d5d7d60e81b81526000613c40565b6000613ca582613632565b67113730b6b2911d1160c11b81526008019150613cc28289613643565b6f1116113232b9b1b934b83a34b7b7111d60811b81526010019150613ce78288613643565b6e161134b6b0b3b2afb230ba30911d1160891b8152600f019150613d0b8287613643565b7111161132bc3a32b93730b62fbab936111d1160711b81526012019150613d328286613643565b9150613d3d82613c08565b9150613d4882613632565b7f2274726169745f74797065223a2022526563697069656e74222c000000000000815269113b30b63ab2911d101160b11b601a8201526024019150613d8d8285613643565b9150613d9882613c26565b9150613da382613c34565b7f2274726169745f74797065223a20224576656e742054696d65222c00000000008152601b019150613dd482613c47565b9150613ddf82613c74565b9150613deb8284613643565b9150613df682613218565b9150613e0182613c8a565b98975050505050505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000613c6d565b7001034b99036b4b9b9b4b733903937b6329607d1b8152600061367f565b6000613e6082613e0d565b9150613e6c8285613643565b91506139e682613e37565b6000600019820361363c5761363c6133ab565b600082613e9957613e996133e0565b500690565b60608101613eac8286612c67565b613eb96020830185612c67565b6121e56040830184612c6756fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f496e7669746174696f6e7320746f2043617073756c652032312073706f6e736f726564206576656e74732e68747470733a2f2f7777772e63617073756c6532312e636f6d2f636f6c6c656374696f6e732f63617073756c652d32312d696e7669746174696f6e73a26469706673582212200a2676693707e138c010ad1a135e3f2685a4bab4fc24cbd83f0918c3ff44e12b64736f6c634300080f00330000000000000000000000008235e38e393c0fb5b380ec54f4e3fa1916cce1ef000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001573c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f737667222077696474683d223830306d6d22206865696768743d223830306d6d222076696577426f783d223020302038303020383030222076657273696f6e3d22312e31223e3c70617468207472616e73666f726d3d227363616c65282d31203129222066696c6c3d222364626231383022207374726f6b653d222330303022207374726f6b652d77696474683d22302220646973706c61793d22696e6c696e652220643d224d2d3739372e3520322e35482d322e35563739372e35482d3739372e357a222f3e3c706174682066696c6c3d222330303022207374726f6b653d222330303022207374726f6b652d77696474683d22302220646973706c61793d22696e6c696e652220643d224d3131352e39203132332e34483638372e39563639352e34483131352e397a222f3e3c2f7376673e000000000000000000