219 txs
732 calls
constructor
constructor(string _baseUri)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseUri
viewfunction baseUri() view returns (string)
explicitOwnershipOf
viewfunction explicitOwnershipOf(uint256 tokenId) view returns (tuple ownership)
explicitOwnershipsOf
viewfunction explicitOwnershipsOf(uint256[] tokenIds) view returns (tuple[])
FULL_SET_SIZE
viewfunction FULL_SET_SIZE() view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isMintingOpen
viewfunction isMintingOpen() view returns (bool)
mintedSetsCount
viewfunction mintedSetsCount() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
price
viewfunction price() view returns (uint256)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 amount)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokensOfOwner
viewfunction tokensOfOwner(address owner) view returns (uint256[])
tokensOfOwnerIn
viewfunction tokensOfOwnerIn(address owner, uint256 start, uint256 stop) view returns (uint256[])
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256 result)
approve
payablefunction approve(address to, uint256 tokenId) payable
deleteDefaultRoyalty
nonpayablefunction deleteDefaultRoyalty()
mintFullSet
payablefunction mintFullSet() payable
ownerMintFullSet
nonpayablefunction ownerMintFullSet(address to)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) payable
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId) payable
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseUri
nonpayablefunction setBaseUri(string _uri)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint96 feeNumerator)
setIsMintingOpen
nonpayablefunction setIsMintingOpen(bool _isMintingOpen)
setPrice
nonpayablefunction setPrice(uint256 _price)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
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)
MintFullSet
event MintFullSet(address indexed minter, uint256 indexed setNumber)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
ERC2981InvalidDefaultRoyalty
error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator)
ERC2981InvalidDefaultRoyaltyReceiver
error ERC2981InvalidDefaultRoyaltyReceiver(address receiver)
ERC2981InvalidTokenRoyalty
error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator)
ERC2981InvalidTokenRoyaltyReceiver
error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver)
InvalidQueryRange
error InvalidQueryRange()
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x608060405234801561001057600080fd5b5060405161465738038061465783398181016040528101906100329190610611565b33604051806060016040528060218152602001614636602191396040518060400160405280600781526020017f47454e45534953000000000000000000000000000000000000000000000000008152508160029081610091919061087b565b5080600390816100a1919061087b565b506100b06101e960201b60201c565b6000819055506100c46101e960201b60201c565b6100d26101f260201b60201c565b10156100ef576100ee63fed8210f60e01b61021a60201b60201c565b5b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101635760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161015a919061098e565b60405180910390fd5b6101728161022460201b60201c565b506001600c8190555080600d908161018a919061087b565b506709a24b38d3138000600e819055506000600f60006101000a81548160ff02191690831515021790555060006010819055506101e37359d7260069d899ef4cfed8837962a7e9a92df69f6101f46102ea60201b60201c565b50610a2a565b60006001905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b8060005260046000fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006102fa61049260201b60201c565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff16111561035f5781816040517f6f483d09000000000000000000000000000000000000000000000000000000008152600401610356929190610a01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036103d15760006040517fb6d9900a0000000000000000000000000000000000000000000000000000000081526004016103c8919061098e565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000612710905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610503826104ba565b810181811067ffffffffffffffff82111715610522576105216104cb565b5b80604052505050565b600061053561049c565b905061054182826104fa565b919050565b600067ffffffffffffffff821115610561576105606104cb565b5b61056a826104ba565b9050602081019050919050565b60005b8381101561059557808201518184015260208101905061057a565b60008484015250505050565b60006105b46105af84610546565b61052b565b9050828152602081018484840111156105d0576105cf6104b5565b5b6105db848285610577565b509392505050565b600082601f8301126105f8576105f76104b0565b5b81516106088482602086016105a1565b91505092915050565b600060208284031215610627576106266104a6565b5b600082015167ffffffffffffffff811115610645576106446104ab565b5b610651848285016105e3565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106ac57607f821691505b6020821081036106bf576106be610665565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026107277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ea565b61073186836106ea565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061077861077361076e84610749565b610753565b610749565b9050919050565b6000819050919050565b6107928361075d565b6107a661079e8261077f565b8484546106f7565b825550505050565b600090565b6107bb6107ae565b6107c6818484610789565b505050565b5b818110156107ea576107df6000826107b3565b6001810190506107cc565b5050565b601f82111561082f57610800816106c5565b610809846106da565b81016020851015610818578190505b61082c610824856106da565b8301826107cb565b50505b505050565b600082821c905092915050565b600061085260001984600802610834565b1980831691505092915050565b600061086b8383610841565b9150826002028217905092915050565b6108848261065a565b67ffffffffffffffff81111561089d5761089c6104cb565b5b6108a78254610694565b6108b28282856107ee565b600060209050601f8311600181146108e557600084156108d3578287015190505b6108dd858261085f565b865550610945565b601f1984166108f3866106c5565b60005b8281101561091b578489015182556001820191506020850194506020810190506108f6565b868310156109385784890151610934601f891682610841565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109788261094d565b9050919050565b6109888161096d565b82525050565b60006020820190506109a3600083018461097f565b92915050565b60006bffffffffffffffffffffffff82169050919050565b60006109dc6109d76109d2846109a9565b610753565b610749565b9050919050565b6109ec816109c1565b82525050565b6109fb81610749565b82525050565b6000604082019050610a1660008301856109e3565b610a2360208301846109f2565b9392505050565b613bfd80610a396000396000f3fe6080604052600436106102045760003560e01c806370a0823111610118578063a035b1fe116100a0578063b88d4fde1161006f578063b88d4fde1461070e578063c23dc68f1461072a578063c87b56dd14610767578063e985e9c5146107a4578063f2fde38b146107e157610204565b8063a035b1fe1461067a578063a0bcfc7f146106a5578063a22cb465146106ce578063aa1b103f146106f757610204565b80638da5cb5b116100e75780638da5cb5b1461059357806391b7f5ed146105be57806395d89b41146105e757806399a2557a146106125780639abc83201461064f57610204565b806370a08231146104f8578063715018a6146105355780638462151c1461054c5780638adebf8e1461058957610204565b80631f9da6091161019b5780633ccfd60b1161016a5780633ccfd60b1461042257806342842e0e1461043957806354bf1b05146104555780635bbb21771461047e5780636352211e146104bb57610204565b80631f9da6091461037257806323b872dd1461039d57806326850ff3146103b95780632a55205a146103e457610204565b8063095ea7b3116101d7578063095ea7b3146102d75780630d467965146102f357806318160ddd1461031c5780631a2069101461034757610204565b806301ffc9a71461020957806304634d8d1461024657806306fdde031461026f578063081812fc1461029a575b600080fd5b34801561021557600080fd5b50610230600480360381019061022b919061283b565b61080a565b60405161023d9190612883565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612940565b61081c565b005b34801561027b57600080fd5b50610284610832565b6040516102919190612a10565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190612a68565b6108c4565b6040516102ce9190612aa4565b60405180910390f35b6102f160048036038101906102ec9190612abf565b610922565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612b2b565b610932565b005b34801561032857600080fd5b50610331610957565b60405161033e9190612b67565b60405180910390f35b34801561035357600080fd5b5061035c6109a4565b6040516103699190612883565b60405180910390f35b34801561037e57600080fd5b506103876109b7565b6040516103949190612b67565b60405180910390f35b6103b760048036038101906103b29190612b82565b6109bc565b005b3480156103c557600080fd5b506103ce610c7d565b6040516103db9190612b67565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190612bd5565b610c83565b604051610419929190612c15565b60405180910390f35b34801561042e57600080fd5b50610437610db3565b005b610453600480360381019061044e9190612b82565b610fb5565b005b34801561046157600080fd5b5061047c60048036038101906104779190612c3e565b610fd5565b005b34801561048a57600080fd5b506104a560048036038101906104a09190612cd0565b610fe9565b6040516104b29190612e80565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612a68565b611049565b6040516104ef9190612aa4565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612c3e565b61105b565b60405161052c9190612b67565b60405180910390f35b34801561054157600080fd5b5061054a6110f2565b005b34801561055857600080fd5b50610573600480360381019061056e9190612c3e565b611106565b6040516105809190612f60565b60405180910390f35b610591611181565b005b34801561059f57600080fd5b506105a8611230565b6040516105b59190612aa4565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190612a68565b61125a565b005b3480156105f357600080fd5b506105fc61126c565b6040516106099190612a10565b60405180910390f35b34801561061e57600080fd5b5061063960048036038101906106349190612f82565b6112fe565b6040516106469190612f60565b60405180910390f35b34801561065b57600080fd5b50610664611314565b6040516106719190612a10565b60405180910390f35b34801561068657600080fd5b5061068f6113a2565b60405161069c9190612b67565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613105565b6113a8565b005b3480156106da57600080fd5b506106f560048036038101906106f0919061314e565b6113c3565b005b34801561070357600080fd5b5061070c6114ce565b005b6107286004803603810190610723919061322f565b6114e0565b005b34801561073657600080fd5b50610751600480360381019061074c9190612a68565b611532565b60405161075e9190613307565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190612a68565b6115a7565b60405161079b9190612a10565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190613322565b611624565b6040516107d89190612883565b60405180910390f35b3480156107ed57600080fd5b5061080860048036038101906108039190612c3e565b6116b8565b005b60006108158261173e565b9050919050565b6108246117b8565b61082e828261183f565b5050565b60606002805461084190613391565b80601f016020809104026020016040519081016040528092919081815260200182805461086d90613391565b80156108ba5780601f1061088f576101008083540402835291602001916108ba565b820191906000526020600020905b81548152906001019060200180831161089d57829003601f168201915b5050505050905090565b60006108cf826119e1565b6108e4576108e363cf4700e460e01b611a8d565b5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61092e82826001611a97565b5050565b61093a6117b8565b80600f60006101000a81548160ff02191690831515021790555050565b6000610961611bc6565b600154600054030390507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610994611bcf565b146109a157600854810190505b90565b600f60009054906101000a900460ff1681565b603781565b60006109c782611bf7565b905073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161693508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a3c57610a3b63a114810060e01b611a8d565b5b600080610a4884611d10565b91509150610a5e8187610a59611d37565b611d3f565b610a8957610a7386610a6e611d37565b611624565b610a8857610a876359c896be60e01b611a8d565b5b5b610a968686866001611d83565b8015610aa157600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610b6f85610b4b888887611d89565b7c020000000000000000000000000000000000000000000000000000000017611db1565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610bf55760006001850190506000600460008381526020019081526020016000205403610bf3576000548114610bf2578360046000838152602001908152602001600020819055505b5b505b600073ffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff161690508481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460008103610c6757610c6663ea553b3460e01b611a8d565b5b610c748787876001611ddc565b50505050505050565b60105481565b6000806000600a6000868152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260000160149054906101000a90046bffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6457600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960000160149054906101000a90046bffffffffffffffffffffffff1690505b6000610d6e611de2565b6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1688610d9691906133f1565b610da09190613462565b9050828195509550505050509250929050565b610dbb6117b8565b610dc3611dec565b600047905060008111610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e02906134df565b60405180910390fd5b6000600282610e1a9190613462565b905060007359d7260069d899ef4cfed8837962a7e9a92df69f73ffffffffffffffffffffffffffffffffffffffff1682604051610e5690613530565b60006040518083038185875af1925050503d8060008114610e93576040519150601f19603f3d011682016040523d82523d6000602084013e610e98565b606091505b5050905080610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390613591565b60405180910390fd5b60007359542fccd02b243c267f120f5a799e9de15e499473ffffffffffffffffffffffffffffffffffffffff168385610f1591906135b1565b604051610f2190613530565b60006040518083038185875af1925050503d8060008114610f5e576040519150601f19603f3d011682016040523d82523d6000602084013e610f63565b606091505b5050905080610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90613657565b60405180910390fd5b50505050610fb3611e32565b565b610fd0838383604051806020016040528060008152506114e0565b505050565b610fdd6117b8565b610fe681611e3c565b50565b606080600084849050905060405191508082528060051b90508060208301016040525b6000811461103e576000602082039150818601359050600061102d82611532565b90508083602086010152505061100c565b819250505092915050565b600061105482611bf7565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a1576110a0638f4eb60460e01b611a8d565b5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6110fa6117b8565b6111046000611eaa565b565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611131611bcf565b146111475761114663bdba09d760e01b611a8d565b5b6000611151611bc6565b9050600061115d611f70565b9050606081831461117657611173858484611f79565b90505b809350505050919050565b611189611dec565b600f60009054906101000a900460ff166111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf906136c3565b60405180910390fd5b600e5434101561121d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112149061372f565b60405180910390fd5b61122633611e3c565b61122e611e32565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112626117b8565b80600e8190555050565b60606003805461127b90613391565b80601f01602080910402602001604051908101604052809291908181526020018280546112a790613391565b80156112f45780601f106112c9576101008083540402835291602001916112f4565b820191906000526020600020905b8154815290600101906020018083116112d757829003601f168201915b5050505050905090565b606061130b848484611f79565b90509392505050565b600d805461132190613391565b80601f016020809104026020016040519081016040528092919081815260200182805461134d90613391565b801561139a5780601f1061136f5761010080835404028352916020019161139a565b820191906000526020600020905b81548152906001019060200180831161137d57829003601f168201915b505050505081565b600e5481565b6113b06117b8565b80600d90816113bf91906138fb565b5050565b80600760006113d0611d37565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661147d611d37565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114c29190612883565b60405180910390a35050565b6114d66117b8565b6114de612135565b565b6114eb8484846109bc565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461152c5761151684848484612182565b61152b5761152a63d1a57ed660e01b611a8d565b5b5b50505050565b61153a612780565b611542611bc6565b82106115a157611550611bcf565b82111561156757611560826122b1565b90506115a2565b61156f611f70565b8210156115a0575b611580826122dc565b6115905781600190039150611577565b611599826122b1565b90506115a2565b5b5b919050565b60606115b2826119e1565b6115c7576115c663a14c4b5060e01b611a8d565b5b60006115d16122fc565b905060008151036115f1576040518060200160405280600081525061161c565b806115fb8461238e565b60405160200161160c929190613a09565b6040516020818303038152906040525b915050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6116c06117b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117325760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016117299190612aa4565b60405180910390fd5b61173b81611eaa565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806117b157506117b0826123de565b5b9050919050565b6117c0612448565b73ffffffffffffffffffffffffffffffffffffffff166117de611230565b73ffffffffffffffffffffffffffffffffffffffff161461183d57611801612448565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016118349190612aa4565b60405180910390fd5b565b6000611849611de2565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff1611156118ae5781816040517f6f483d090000000000000000000000000000000000000000000000000000000081526004016118a5929190613a5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119205760006040517fb6d9900a0000000000000000000000000000000000000000000000000000000081526004016119179190612aa4565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600960008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000816119ec611bc6565b11611a87576119f9611bcf565b821115611a2357611a1c6004600084815260200190815260200160002054612450565b9050611a88565b600054821015611a865760005b6000600460008581526020019081526020016000205491508103611a5f5782611a5890613a87565b9250611a30565b60007c01000000000000000000000000000000000000000000000000000000008216149150505b5b5b919050565b8060005260046000fd5b6000611aa283611049565b9050818015611ae457508073ffffffffffffffffffffffffffffffffffffffff16611acb611d37565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611b1057611afa81611af5611d37565b611624565b611b0f57611b0e63cfb3b94260e01b611a8d565b5b5b836006600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b60006001905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b600081611c02611bc6565b11611cfa5760046000838152602001908152602001600020549050611c25611bcf565b821115611c4a57611c3581612450565b611d0b57611c4963df2d9b4260e01b611a8d565b5b60008103611cd1576000548210611c6c57611c6b63df2d9b4260e01b611a8d565b5b5b60046000836001900393508381526020019081526020016000205490506000810315611ccc5760007c010000000000000000000000000000000000000000000000000000000082160315611d0b57611ccb63df2d9b4260e01b611a8d565b5b611c6d565b60007c010000000000000000000000000000000000000000000000000000000082160315611d0b575b611d0a63df2d9b4260e01b611a8d565b5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611da0868684612491565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612710905090565b6002600c5403611e28576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600c81905550565b6001600c81905550565b611e4781603761249a565b600160106000828254611e5a9190613ab0565b925050819055506010548173ffffffffffffffffffffffffffffffffffffffff167fe76fc2dc64a4f2221d36d8f6f47e345619c361a2d5df58269461a210115ff55c60405160405180910390a350565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905090565b6060818310611f9357611f926332c1995a60e01b611a8d565b5b611f9b611bc6565b831015611fad57611faa611bc6565b92505b6000611fb7611f70565b905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611fe4611bcf565b03611fef5781611ff1565b835b9050808410611ffe578093505b60006120098761105b565b905084861061201757600090505b6000811461212b57808686031161202e5785850390505b600060405194506001820160051b8501905080604052600061204f88611532565b90506000816040015161206457816000015190505b60005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612090611bcf565b146120bf57868a036120aa5760016120a6611bcf565b0199505b6120b2611bcf565b8a11156120be57600091505b5b6120c88a6122b1565b92506040830151600081146120e05760009250612106565b8351156120ec57835192505b8b831860601b612105576001820191508a8260051b8a01525b5b5060018a01995083604052888a148061211e57508481145b1561206757808852505050505b5050509392505050565b6009600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121a8611d37565b8786866040518563ffffffff1660e01b81526004016121ca9493929190613b39565b6020604051808303816000875af192505050801561220657506040513d601f19601f820116820180604052508101906122039190613b9a565b60015b61225e573d8060008114612236576040519150601f19603f3d011682016040523d82523d6000602084013e61223b565b606091505b5060008151036122565761225563d1a57ed660e01b611a8d565b5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6122b9612780565b6122d560046000848152602001908152602001600020546124b8565b9050919050565b600080600460008481526020019081526020016000205414159050919050565b6060600d805461230b90613391565b80601f016020809104026020016040519081016040528092919081815260200182805461233790613391565b80156123845780601f1061235957610100808354040283529160200191612384565b820191906000526020600020905b81548152906001019060200180831161236757829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b6001156123c957600184039350600a81066030018453600a81049050806123a7575b50828103602084039350808452505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b60007c0100000000000000000000000000000000000000000000000000000000821673ffffffffffffffffffffffffffffffffffffffff8316119050919050565b60009392505050565b6124b482826040518060200160405280600081525061256e565b5050565b6124c0612780565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b61257883836125ea565b60008373ffffffffffffffffffffffffffffffffffffffff163b146125e557600080549050600083820390505b6125b86000868380600101945086612182565b6125cd576125cc63d1a57ed660e01b611a8d565b5b8181106125a55781600054146125e257600080fd5b50505b505050565b600080549050600082036126095761260863b562e8dd60e01b611a8d565b5b6126166000848385611d83565b612636836126276000866000611d89565b61263085612770565b17611db1565b6004600083815260200190815260200160002081905550600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff16169050600081036126ee576126ed632e07630060e01b611a8d565b5b600083830190506000839050612702611bcf565b60018303111561271d5761271c6381647e3a60e01b611a8d565b5b5b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a481816001019150810361271e578160008190555050505061276b6000848385611ddc565b505050565b60006001821460e11b9050919050565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612818816127e3565b811461282357600080fd5b50565b6000813590506128358161280f565b92915050565b600060208284031215612851576128506127d9565b5b600061285f84828501612826565b91505092915050565b60008115159050919050565b61287d81612868565b82525050565b60006020820190506128986000830184612874565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128c98261289e565b9050919050565b6128d9816128be565b81146128e457600080fd5b50565b6000813590506128f6816128d0565b92915050565b60006bffffffffffffffffffffffff82169050919050565b61291d816128fc565b811461292857600080fd5b50565b60008135905061293a81612914565b92915050565b60008060408385031215612957576129566127d9565b5b6000612965858286016128e7565b92505060206129768582860161292b565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ba57808201518184015260208101905061299f565b60008484015250505050565b6000601f19601f8301169050919050565b60006129e282612980565b6129ec818561298b565b93506129fc81856020860161299c565b612a05816129c6565b840191505092915050565b60006020820190508181036000830152612a2a81846129d7565b905092915050565b6000819050919050565b612a4581612a32565b8114612a5057600080fd5b50565b600081359050612a6281612a3c565b92915050565b600060208284031215612a7e57612a7d6127d9565b5b6000612a8c84828501612a53565b91505092915050565b612a9e816128be565b82525050565b6000602082019050612ab96000830184612a95565b92915050565b60008060408385031215612ad657612ad56127d9565b5b6000612ae4858286016128e7565b9250506020612af585828601612a53565b9150509250929050565b612b0881612868565b8114612b1357600080fd5b50565b600081359050612b2581612aff565b92915050565b600060208284031215612b4157612b406127d9565b5b6000612b4f84828501612b16565b91505092915050565b612b6181612a32565b82525050565b6000602082019050612b7c6000830184612b58565b92915050565b600080600060608486031215612b9b57612b9a6127d9565b5b6000612ba9868287016128e7565b9350506020612bba868287016128e7565b9250506040612bcb86828701612a53565b9150509250925092565b60008060408385031215612bec57612beb6127d9565b5b6000612bfa85828601612a53565b9250506020612c0b85828601612a53565b9150509250929050565b6000604082019050612c2a6000830185612a95565b612c376020830184612b58565b9392505050565b600060208284031215612c5457612c536127d9565b5b6000612c62848285016128e7565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c9057612c8f612c6b565b5b8235905067ffffffffffffffff811115612cad57612cac612c70565b5b602083019150836020820283011115612cc957612cc8612c75565b5b9250929050565b60008060208385031215612ce757612ce66127d9565b5b600083013567ffffffffffffffff811115612d0557612d046127de565b5b612d1185828601612c7a565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d52816128be565b82525050565b600067ffffffffffffffff82169050919050565b612d7581612d58565b82525050565b612d8481612868565b82525050565b600062ffffff82169050919050565b612da281612d8a565b82525050565b608082016000820151612dbe6000850182612d49565b506020820151612dd16020850182612d6c565b506040820151612de46040850182612d7b565b506060820151612df76060850182612d99565b50505050565b6000612e098383612da8565b60808301905092915050565b6000602082019050919050565b6000612e2d82612d1d565b612e378185612d28565b9350612e4283612d39565b8060005b83811015612e73578151612e5a8882612dfd565b9750612e6583612e15565b925050600181019050612e46565b5085935050505092915050565b60006020820190508181036000830152612e9a8184612e22565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ed781612a32565b82525050565b6000612ee98383612ece565b60208301905092915050565b6000602082019050919050565b6000612f0d82612ea2565b612f178185612ead565b9350612f2283612ebe565b8060005b83811015612f53578151612f3a8882612edd565b9750612f4583612ef5565b925050600181019050612f26565b5085935050505092915050565b60006020820190508181036000830152612f7a8184612f02565b905092915050565b600080600060608486031215612f9b57612f9a6127d9565b5b6000612fa9868287016128e7565b9350506020612fba86828701612a53565b9250506040612fcb86828701612a53565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613012826129c6565b810181811067ffffffffffffffff8211171561303157613030612fda565b5b80604052505050565b60006130446127cf565b90506130508282613009565b919050565b600067ffffffffffffffff8211156130705761306f612fda565b5b613079826129c6565b9050602081019050919050565b82818337600083830152505050565b60006130a86130a384613055565b61303a565b9050828152602081018484840111156130c4576130c3612fd5565b5b6130cf848285613086565b509392505050565b600082601f8301126130ec576130eb612c6b565b5b81356130fc848260208601613095565b91505092915050565b60006020828403121561311b5761311a6127d9565b5b600082013567ffffffffffffffff811115613139576131386127de565b5b613145848285016130d7565b91505092915050565b60008060408385031215613165576131646127d9565b5b6000613173858286016128e7565b925050602061318485828601612b16565b9150509250929050565b600067ffffffffffffffff8211156131a9576131a8612fda565b5b6131b2826129c6565b9050602081019050919050565b60006131d26131cd8461318e565b61303a565b9050828152602081018484840111156131ee576131ed612fd5565b5b6131f9848285613086565b509392505050565b600082601f83011261321657613215612c6b565b5b81356132268482602086016131bf565b91505092915050565b60008060008060808587031215613249576132486127d9565b5b6000613257878288016128e7565b9450506020613268878288016128e7565b935050604061327987828801612a53565b925050606085013567ffffffffffffffff81111561329a576132996127de565b5b6132a687828801613201565b91505092959194509250565b6080820160008201516132c86000850182612d49565b5060208201516132db6020850182612d6c565b5060408201516132ee6040850182612d7b565b5060608201516133016060850182612d99565b50505050565b600060808201905061331c60008301846132b2565b92915050565b60008060408385031215613339576133386127d9565b5b6000613347858286016128e7565b9250506020613358858286016128e7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133a957607f821691505b6020821081036133bc576133bb613362565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133fc82612a32565b915061340783612a32565b925082820261341581612a32565b9150828204841483151761342c5761342b6133c2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061346d82612a32565b915061347883612a32565b92508261348857613487613433565b5b828204905092915050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b60006134c960138361298b565b91506134d482613493565b602082019050919050565b600060208201905081810360008301526134f8816134bc565b9050919050565b600081905092915050565b50565b600061351a6000836134ff565b91506135258261350a565b600082019050919050565b600061353b8261350d565b9150819050919050565b7f5472616e7366657220746f2044414d2061646472657373206661696c65640000600082015250565b600061357b601e8361298b565b915061358682613545565b602082019050919050565b600060208201905081810360008301526135aa8161356e565b9050919050565b60006135bc82612a32565b91506135c783612a32565b92508282039050818111156135df576135de6133c2565b5b92915050565b7f5472616e7366657220746f20617274697374732073706c69747465722061646460008201527f72657373206661696c6564000000000000000000000000000000000000000000602082015250565b6000613641602b8361298b565b915061364c826135e5565b604082019050919050565b6000602082019050818103600083015261367081613634565b9050919050565b7f4d696e74696e6720697320636c6f736564000000000000000000000000000000600082015250565b60006136ad60118361298b565b91506136b882613677565b602082019050919050565b600060208201905081810360008301526136dc816136a0565b9050919050565b7f496e636f72726563742045544820616d6f756e74000000000000000000000000600082015250565b600061371960148361298b565b9150613724826136e3565b602082019050919050565b600060208201905081810360008301526137488161370c565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613774565b6137bb8683613774565b95508019841693508086168417925050509392505050565b6000819050919050565b60006137f86137f36137ee84612a32565b6137d3565b612a32565b9050919050565b6000819050919050565b613812836137dd565b61382661381e826137ff565b848454613781565b825550505050565b600090565b61383b61382e565b613846818484613809565b505050565b5b8181101561386a5761385f600082613833565b60018101905061384c565b5050565b601f8211156138af576138808161374f565b61388984613764565b81016020851015613898578190505b6138ac6138a485613764565b83018261384b565b50505b505050565b600082821c905092915050565b60006138d2600019846008026138b4565b1980831691505092915050565b60006138eb83836138c1565b9150826002028217905092915050565b61390482612980565b67ffffffffffffffff81111561391d5761391c612fda565b5b6139278254613391565b61393282828561386e565b600060209050601f8311600181146139655760008415613953578287015190505b61395d85826138df565b8655506139c5565b601f1984166139738661374f565b60005b8281101561399b57848901518255600182019150602085019450602081019050613976565b868310156139b857848901516139b4601f8916826138c1565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b60006139e382612980565b6139ed81856139cd565b93506139fd81856020860161299c565b80840191505092915050565b6000613a1582856139d8565b9150613a2182846139d8565b91508190509392505050565b6000613a48613a43613a3e846128fc565b6137d3565b612a32565b9050919050565b613a5881613a2d565b82525050565b6000604082019050613a736000830185613a4f565b613a806020830184612b58565b9392505050565b6000613a9282612a32565b915060008203613aa557613aa46133c2565b5b600182039050919050565b6000613abb82612a32565b9150613ac683612a32565b9250828201905080821115613ade57613add6133c2565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000613b0b82613ae4565b613b158185613aef565b9350613b2581856020860161299c565b613b2e816129c6565b840191505092915050565b6000608082019050613b4e6000830187612a95565b613b5b6020830186612a95565b613b686040830185612b58565b8181036060830152613b7a8184613b00565b905095945050505050565b600081519050613b948161280f565b92915050565b600060208284031215613bb057613baf6127d9565b5b6000613bbe84828501613b85565b9150509291505056fea26469706673582212202b91978b6fa6527819957f18f2c8d2722b3648584796dcf406ae78b31f26eb1764736f6c634300081c0033546865204469676974616c204173736574204d757365756d3a2047454e455349530000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002168747470733a2f2f6170692e74686564616d2e6172742f76312f746f6b656e732f00000000000000000000000000000000000000000000000000000000000000