5 txs
35 calls
constructor
constructor(address _owner, address _burner, address _checkin)
functions
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
burner
viewfunction burner() view returns (address)
burnPercentage
viewfunction burnPercentage() view returns (uint256)
checkIn
viewfunction checkIn() view returns (address)
currentMint
viewfunction currentMint() view returns (uint256)
currentMintBurnAmount
viewfunction currentMintBurnAmount() view returns (uint256)
currentMintRaffleAmount
viewfunction currentMintRaffleAmount() view returns (uint256)
description
viewfunction description() view returns (bytes)
hasEnteredRaffle
viewfunction hasEnteredRaffle(uint256, address) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
metadata
viewfunction metadata(uint256, uint256) view returns (bytes core, bytes name)
metadataForTokenId
viewfunction metadataForTokenId(uint256) view returns (uint256 background, uint256 face, uint256 eyes, uint256 mouth, uint256 hair)
mintById
viewfunction mintById(uint256) view returns (uint256 tokenId, uint256 mints, uint256 rewards, uint256 burned, address winner, uint256 startedAt, uint256 settledAt)
mintDuration
viewfunction mintDuration() view returns (uint256)
mintPrice
viewfunction mintPrice() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalBalanceOf
viewfunction totalBalanceOf(address account) view returns (uint256 total)
totalEntries
viewfunction totalEntries(uint256) view returns (uint256)
uri
viewfunction uri(uint256 _tokenId) view returns (string)
userEntryByAddress
viewfunction userEntryByAddress(uint256 _round, address _user) view returns (uint256)
userEntryByIndex
viewfunction userEntryByIndex(uint256 _round, uint256 _index) view returns (tuple)
userMintPrice
viewfunction userMintPrice(address _user) view returns (uint256)
willMintSettleRaffle
viewfunction willMintSettleRaffle() view returns (bool)
addArt
nonpayablefunction addArt(uint256 _array, tuple[] _data)
mint
payablefunction mint() payable
removeArt
nonpayablefunction removeArt(uint256 _array, uint256[] _indices)
renounceOwnership
nonpayablefunction renounceOwnership()
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] values, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setArt
nonpayablefunction setArt(uint256[] _tokenIds)
setBurnPercentage
nonpayablefunction setBurnPercentage(uint256 _burnPercentage)
setDescription
nonpayablefunction setDescription(bytes _description)
setMintDuration
nonpayablefunction setMintDuration(uint256 _mintDuration)
setMintPrice
nonpayablefunction setMintPrice(uint256 _mintPrice)
setPaused
nonpayablefunction setPaused(bool _setPaused)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
End
event End(uint256 tokenId, uint256 mints, address winner, uint256 reward, uint256 burned)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Start
event Start(uint256 tokenId)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
Unpaused
event Unpaused(address account)
URI
event URI(string value, uint256 indexed id)
errors
EnforcedPause
error EnforcedPause()
ERC1155InsufficientBalance
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId)
ERC1155InvalidApprover
error ERC1155InvalidApprover(address approver)
ERC1155InvalidArrayLength
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength)
ERC1155InvalidOperator
error ERC1155InvalidOperator(address operator)
ERC1155InvalidReceiver
error ERC1155InvalidReceiver(address receiver)
ERC1155InvalidSender
error ERC1155InvalidSender(address sender)
ERC1155MissingApprovalForAll
error ERC1155MissingApprovalForAll(address operator, address owner)
ExpectedPause
error ExpectedPause()
IndicesMustBeMonotonicallyDecreasing
error IndicesMustBeMonotonicallyDecreasing()
InputZero
error InputZero()
InvalidArray
error InvalidArray()
InvalidIndex
error InvalidIndex()
InvalidPercentage
error InvalidPercentage()
MustPayMintPrice
error MustPayMintPrice()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
TransferFailed
error TransferFailed()
creation bytecode
0x61024060405261014d60c08181529061509a60e0396008906100219082610297565b5034801561002e57600080fd5b506040516151e73803806151e783398101604081905261004d9161036e565b604080516020810190915260008152839061006781610101565b5060016004556001600160a01b03811661009b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100a481610111565b506005805460ff60a01b191690556001600160a01b03808316608052811660a052611388600955617080600a556602d79883d20000600b55600c546000908152601060205260409020600190556100f9610163565b5050506103bb565b600261010d8282610297565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61016b6101c3565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586101a63390565b6040516001600160a01b03909116815260200160405180910390a1565b6101d6600554600160a01b900460ff1690565b156101f45760405163d93c066560e01b815260040160405180910390fd5b565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061022057607f821691505b60208210810361024057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610292576000816000526020600020601f850160051c8101602086101561026f5750805b601f850160051c820191505b8181101561028e5782815560010161027b565b5050505b505050565b81516001600160401b038111156102b0576102b06101f6565b6102c4816102be845461020c565b84610246565b602080601f8311600181146102f957600084156102e15750858301515b600019600386901b1c1916600185901b17855561028e565b600085815260208120601f198616915b8281101561032857888601518255948401946001909101908401610309565b50858210156103465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038116811461036b57600080fd5b50565b60008060006060848603121561038357600080fd5b835161038e81610356565b602085015190935061039f81610356565b60408501519092506103b081610356565b809150509250925092565b60805160a051614ca56103f56000396000818161049201526114e20152600081816104eb015281816120e20152612e450152614ca56000f3fe6080604052600436106102be5760003560e01c80637284e4161161016e578063b501eaf5116100cb578063e985e9c51161007f578063f242432a11610064578063f242432a14610976578063f2fde38b14610996578063f4a0a528146109b657600080fd5b8063e985e9c51461090a578063f01f20df1461096057600080fd5b8063c0540e56116100b0578063c0540e5614610863578063c2435125146108d5578063c3f0d327146108ea57600080fd5b8063b501eaf51461082d578063bb902b5c1461084357600080fd5b8063a0b7992b11610122578063a52e5a4c11610107578063a52e5a4c146107ca578063a83ef515146107f7578063aaa58f651461080d57600080fd5b8063a0b7992b1461077c578063a22cb465146107aa57600080fd5b80637a5bbcfd116101535780637a5bbcfd1461071c5780638d2e4352146107315780638da5cb5b1461075157600080fd5b80637284e416146106e757806375ddbbd9146106fc57600080fd5b806327810b6e1161021c5780634e1273f4116101d057806364f6653d116101b557806364f6653d146106a75780636817c76c146106bc578063715018a6146106d257600080fd5b80634e1273f41461064a5780635c975abb1461067757600080fd5b80633c51c82b116102015780633c51c82b1461052d57806346dd18dd146105e75780634b0ee02a1461060757600080fd5b806327810b6e146104d95780632eb2c2d61461050d57600080fd5b80630ebe20b1116102735780631249c58b116102585780631249c58b1461045857806316c38b3c14610460578063183ff0851461048057600080fd5b80630ebe20b1146103cd578063110421dc1461041d57600080fd5b806307c9b7e1116102a457806307c9b7e11461032d5780630e83c7d71461037e5780630e89341c146103a057600080fd5b8062fdd58e146102ca57806301ffc9a7146102fd57600080fd5b366102c557005b600080fd5b3480156102d657600080fd5b506102ea6102e5366004613862565b6109d6565b6040519081526020015b60405180910390f35b34801561030957600080fd5b5061031d6103183660046138ba565b610a0b565b60405190151581526020016102f4565b34801561033957600080fd5b5061034d6103483660046138d7565b610aee565b60408051825173ffffffffffffffffffffffffffffffffffffffff16815260209283015192810192909252016102f4565b34801561038a57600080fd5b5061039e610399366004613945565b610bb7565b005b3480156103ac57600080fd5b506103c06103bb366004613991565b610e4c565b6040516102f49190613a18565b3480156103d957600080fd5b506102ea6103e8366004613a2b565b6000918252600f6020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205490565b34801561042957600080fd5b5061031d610438366004613a2b565b600e60209081526000928352604080842090915290825290205460ff1681565b61039e610e57565b34801561046c57600080fd5b5061039e61047b366004613a67565b610edf565b34801561048c57600080fd5b506104b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102f4565b3480156104e557600080fd5b506104b47f000000000000000000000000000000000000000000000000000000000000000081565b34801561051957600080fd5b5061039e610528366004613c21565b610eff565b34801561053957600080fd5b5061059c610548366004613991565b600d602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949593949293919273ffffffffffffffffffffffffffffffffffffffff909116919087565b60408051978852602088019690965294860193909352606085019190915273ffffffffffffffffffffffffffffffffffffffff16608084015260a083015260c082015260e0016102f4565b3480156105f357600080fd5b5061039e610602366004613991565b610fc2565b34801561061357600080fd5b506102ea610622366004613ccb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b34801561065657600080fd5b5061066a610665366004613ce6565b610fcf565b6040516102f49190613de2565b34801561068357600080fd5b5060055474010000000000000000000000000000000000000000900460ff1661031d565b3480156106b357600080fd5b5061031d6110b5565b3480156106c857600080fd5b506102ea600b5481565b3480156106de57600080fd5b5061039e6110e1565b3480156106f357600080fd5b506103c06110f3565b34801561070857600080fd5b5061039e610717366004613945565b611181565b34801561072857600080fd5b506102ea611274565b34801561073d57600080fd5b5061039e61074c366004613df5565b61128d565b34801561075d57600080fd5b5060055473ffffffffffffffffffffffffffffffffffffffff166104b4565b34801561078857600080fd5b5061079c6107973660046138d7565b61130b565b6040516102f4929190613e37565b3480156107b657600080fd5b5061039e6107c5366004613e65565b61145c565b3480156107d657600080fd5b506102ea6107e5366004613991565b60106020526000908152604090205481565b34801561080357600080fd5b506102ea600a5481565b34801561081957600080fd5b5061039e610828366004613e8f565b61146b565b34801561083957600080fd5b506102ea600c5481565b34801561084f57600080fd5b506102ea61085e366004613ccb565b611485565b34801561086f57600080fd5b506108ad61087e366004613991565b600760205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102f4565b3480156108e157600080fd5b506102ea6115a3565b3480156108f657600080fd5b5061039e610905366004613991565b6115c0565b34801561091657600080fd5b5061031d610925366004613f01565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b34801561096c57600080fd5b506102ea60095481565b34801561098257600080fd5b5061039e610991366004613f2b565b611609565b3480156109a257600080fd5b5061039e6109b1366004613ccb565b6116c7565b3480156109c257600080fd5b5061039e6109d1366004613991565b611728565b60008181526020818152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001480610a9e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b80610a0557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a05565b60408051808201909152600080825260208201526000838152600d60205260409020600701548210610b4c576040517f63df817100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d60205260409020600701805483908110610b6f57610b6f613f90565b600091825260209182902060408051808201909152600290920201805473ffffffffffffffffffffffffffffffffffffffff1682526001015491810191909152905092915050565b610bbf611735565b610bc883611788565b610bfe576040517f1ec5aa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819003610c3a576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82811015610e4457600086815260066020526040902054915081858583818110610c6a57610c6a613f90565b9050602002013510610ca8576040517f63df817100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081118015610cf45750848482818110610cc557610cc5613f90565b905060200201358585600184610cdb9190613fee565b818110610cea57610cea613f90565b9050602002013511155b15610d2b576040517f451b9d5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000868152600660205260409020610d44600184613fee565b81548110610d5457610d54613f90565b906000526020600020906002020160066000888152602001908152602001600020868684818110610d8757610d87613f90565b9050602002013581548110610d9e57610d9e613f90565b6000918252602090912060029091020180610db9838261409c565b50600181810190610dcc9084018261409c565b5050506000868152600660205260409020805480610dec57610dec6141d3565b6000828152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191600283020190610e2a82826137f0565b610e386001830160006137f0565b50509055600101610c3e565b505050505050565b6060610a05826117a1565b610e5f611ff1565b610e67612034565b610e6f6110b5565b15610e8957610e7c612089565b610e84612345565b610ed3565b610e9233611485565b341015610ecb576040517fa7e2194300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ed3612345565b610edd6001600455565b565b610ee7611735565b80610ef757610ef46124b9565b50565b610ef4612536565b3373ffffffffffffffffffffffffffffffffffffffff86168114801590610f59575073ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209385168352929052205460ff16155b15610fb5576040517fe237d92200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8083166004830152871660248201526044015b60405180910390fd5b610e4486868686866125a5565b610fca611735565b600a55565b6060815183511461101957815183516040517f5b05999100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610fac565b6000835167ffffffffffffffff81111561103557611035613a82565b60405190808252806020026020018201604052801561105e578160200160208202803683370190505b50905060005b84518110156110ad57602080820286010151611088906020808402870101516109d6565b82828151811061109a5761109a613f90565b6020908102919091010152600101611064565b509392505050565b600a54600c546000908152600d60205260408120600501549091906110da9042613fee565b1015905090565b6110e9611735565b610edd6000612652565b6008805461110090614001565b80601f016020809104026020016040519081016040528092919081815260200182805461112c90614001565b80156111795780601f1061114e57610100808354040283529160200191611179565b820191906000526020600020905b81548152906001019060200180831161115c57829003601f168201915b505050505081565b611189611735565b61119283611788565b6111c8576040517f1ec5aa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819003611204576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8181101561126d57600085815260066020526040902084848381811061122f5761122f613f90565b90506020028101906112419190614202565b81546001810183556000928352602090922090916002020161126382826143bf565b5050600101611207565b5050505050565b600061127e6115a3565b6112889047613fee565b905090565b611295611735565b8060008190036112d1576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015611305576112fd8484838181106112f1576112f1613f90565b905060200201356126c9565b6001016112d4565b50505050565b6006602052816000526040600020818154811061132757600080fd5b90600052602060002090600202016000915091505080600001805461134b90614001565b80601f016020809104026020016040519081016040528092919081815260200182805461137790614001565b80156113c45780601f10611399576101008083540402835291602001916113c4565b820191906000526020600020905b8154815290600101906020018083116113a757829003601f168201915b5050505050908060010180546113d990614001565b80601f016020809104026020016040519081016040528092919081815260200182805461140590614001565b80156114525780601f1061142757610100808354040283529160200191611452565b820191906000526020600020905b81548152906001019060200180831161143557829003601f168201915b5050505050905082565b61146733838361294e565b5050565b611473611735565b60086114808284836142a5565b505050565b600061149382600c546109d6565b600003611596576040517f1acc9b6200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690631acc9b6290602401606060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f919061450e565b50915050605a8161ffff1611156115645750605a5b60648161ffff16600b54611578919061454a565b6115829190614590565b600b5461158f9190613fee565b9392505050565b5050600b5490565b919050565b6000612710476009546115b6919061454a565b6112889190614590565b6115c8611735565b612710811115611604576040517f1f3b85d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600955565b3373ffffffffffffffffffffffffffffffffffffffff86168114801590611663575073ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209385168352929052205460ff16155b156116ba576040517fe237d92200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015287166024820152604401610fac565b610e448686868686612a36565b6116cf611735565b73ffffffffffffffffffffffffffffffffffffffff811661171f576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b610ef481612652565b611730611735565b600b55565b60055473ffffffffffffffffffffffffffffffffffffffff163314610edd576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610fac565b600060058211611799576001610a05565b600092915050565b6000818152600760209081526040808320815160a0810183528154815260018201548185015260028201549281019290925260038101546060838101919091526004909101546080830152838052600690925280517f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8805493949293909190811061182e5761182e613f90565b906000526020600020906002020160405180604001604052908160008201805461185790614001565b80601f016020809104026020016040519081016040528092919081815260200182805461188390614001565b80156118d05780601f106118a5576101008083540402835291602001916118d0565b820191906000526020600020905b8154815290600101906020018083116118b357829003601f168201915b505050505081526020016001820180546118e990614001565b80601f016020809104026020016040519081016040528092919081815260200182805461191590614001565b80156119625780601f1061193757610100808354040283529160200191611962565b820191906000526020600020905b81548152906001019060200180831161194557829003601f168201915b50505050508152505090506000600660006001815260200190815260200160002083602001518154811061199857611998613f90565b90600052602060002090600202016040518060400160405290816000820180546119c190614001565b80601f01602080910402602001604051908101604052809291908181526020018280546119ed90614001565b8015611a3a5780601f10611a0f57610100808354040283529160200191611a3a565b820191906000526020600020905b815481529060010190602001808311611a1d57829003601f168201915b50505050508152602001600182018054611a5390614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7f90614001565b8015611acc5780601f10611aa157610100808354040283529160200191611acc565b820191906000526020600020905b815481529060010190602001808311611aaf57829003601f168201915b505050505081525050905060006006600060028152602001908152602001600020846040015181548110611b0257611b02613f90565b9060005260206000209060020201604051806040016040529081600082018054611b2b90614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5790614001565b8015611ba45780601f10611b7957610100808354040283529160200191611ba4565b820191906000526020600020905b815481529060010190602001808311611b8757829003601f168201915b50505050508152602001600182018054611bbd90614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611be990614001565b8015611c365780601f10611c0b57610100808354040283529160200191611c36565b820191906000526020600020905b815481529060010190602001808311611c1957829003601f168201915b505050505081525050905060006006600060038152602001908152602001600020856060015181548110611c6c57611c6c613f90565b9060005260206000209060020201604051806040016040529081600082018054611c9590614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611cc190614001565b8015611d0e5780601f10611ce357610100808354040283529160200191611d0e565b820191906000526020600020905b815481529060010190602001808311611cf157829003601f168201915b50505050508152602001600182018054611d2790614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611d5390614001565b8015611da05780601f10611d7557610100808354040283529160200191611da0565b820191906000526020600020905b815481529060010190602001808311611d8357829003601f168201915b505050505081525050905060006006600060048152602001908152602001600020866080015181548110611dd657611dd6613f90565b9060005260206000209060020201604051806040016040529081600082018054611dff90614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611e2b90614001565b8015611e785780601f10611e4d57610100808354040283529160200191611e78565b820191906000526020600020905b815481529060010190602001808311611e5b57829003601f168201915b50505050508152602001600182018054611e9190614001565b80601f0160208091040260200160405190810160405280929190818152602001828054611ebd90614001565b8015611f0a5780601f10611edf57610100808354040283529160200191611f0a565b820191906000526020600020905b815481529060010190602001808311611eed57829003601f168201915b50505091909252505086518651865186518551604051969750600096611f3396506020016145c0565b6040516020818303038152906040529050611f4d89612b11565b6008611f5883612bcf565b604051602001611f6a939291906146f2565b60405160208183030381529060405290508086602001518660200151866020015186602001518660200151604051602001611faa9695949392919061487c565b6040516020818303038152906040529050611fc481612bcf565b604051602001611fd49190614a8e565b604051602081830303815290604052975050505050505050919050565b60026004540361202d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600455565b60055474010000000000000000000000000000000000000000900460ff1615610edd576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006120936115a3565b9050600061209f611274565b905060006120ab612d2f565b90508215612156576040517f42966c68000000000000000000000000000000000000000000000000000000008152600060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c689085906024016000604051808303818588803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b50505050505b60008173ffffffffffffffffffffffffffffffffffffffff168360405160006040518083038185875af1925050503d80600081146121b0576040519150601f19603f3d011682016040523d82523d6000602084013e6121b5565b606091505b50509050806121f0576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c80546000908152600d60209081526040808320600201879055835483528083206003018890558354835280832060040180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881690811790915584548452818420426006909101559354808452928190206001015481519384529183019190915281019190915260608101849052608081018590527f2038ccaa56554303631a099379b2ec8ab1f7a66cea4092c7d52e8564d5476d109060a00160405180910390a1600c600081546122da90614ad3565b90915550600c546122ea906126c9565b600c80546000818152600d602090815260409182902092835542600590930192909255915491519182527ff06a29c94c6f4edc1085072972d9441f7603e81c8535a308f214285d0653c850910160405180910390a150505050565b61236333600c54600160405180602001604052806000815250612e6c565b600c546000908152600d6020526040812060010180549161238383614ad3565b9091555050600c546000908152600e6020908152604080832033845290915290205460ff16610edd57600c80546000908152600e602090815260408083203380855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560038452828520805487548752600f865284872084885286528487208190558451808601865293845283860190815287548752600d865284872060070180548085018255908852868820855160029092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911781559051920191909155549454845260109092528220805491939290916124b1908490614b0b565b909155505050565b6124c1612eef565b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61253e612034565b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861250c3390565b73ffffffffffffffffffffffffffffffffffffffff84166125f5576040517f57f447ce00000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b73ffffffffffffffffffffffffffffffffffffffff8516612645576040517f01a8351400000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b61126d8585858585612f43565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516020808201849052428284015282518083038401815260608301808552815191830191909120610100840185526000808052600684527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546101208601839052610140808701839052875180880390910181526101609096019096528451949093019390932092939192909182916127659190614b1e565b815260016000819052600660209081527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916127ce9190614b1e565b815260026000819052600660209081527f8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916128379190614b1e565b815260036000819052600660209081527f75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916128a09190614b1e565b815260046000819052600660209081527fc5069e24aaadb2addc3e52e868fcf3f4f8acf5a87e24300992fd4540c2a87eed546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916129099190614b1e565b90526000938452600760209081526040948590208251815590820151600182015593810151600285015560608101516003850155608001516004909301929092555050565b73ffffffffffffffffffffffffffffffffffffffff821661299e576040517fced3e10000000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8416612a86576040517f57f447ce00000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b73ffffffffffffffffffffffffffffffffffffffff8516612ad6576040517f01a8351400000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b60408051600180825260208201869052818301908152606082018590526080820190925290612b088787848487612f43565b50505050505050565b60606000612b1e83612fa3565b600101905060008167ffffffffffffffff811115612b3e57612b3e613a82565b6040519080825280601f01601f191660200182016040528015612b68576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084612b7257509392505050565b60608151600003612bee57505060408051602081019091526000815290565b6000604051806060016040528060408152602001614c306040913990506000600384516002612c1d9190614b0b565b612c279190614590565b612c3290600461454a565b67ffffffffffffffff811115612c4a57612c4a613a82565b6040519080825280601f01601f191660200182016040528015612c74576020820181803683370190505b50905060018201602082018586518701602081018051600082525b82841015612cea576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865350600185019450612c8f565b9052505085516003900660018114612d095760028114612d1c57612d24565b603d6001830353603d6002830353612d24565b603d60018303535b509195945050505050565b600c546000908152601060209081526040808320548151438185015242818401528251808203840181526060909101909252815191909201208291612d7391614b1e565b600c546000908152600d602052604081206007015491925090815b81811015612e4257600c546000908152600d60205260409020600701805482908110612dbc57612dbc613f90565b906000526020600020906002020160010154925082841015612e2e57600c546000908152600d60205260409020600701805482908110612dfe57612dfe613f90565b600091825260209091206002909102015473ffffffffffffffffffffffffffffffffffffffff1695945050505050565b612e388385613fee565b9350600101612d8e565b507f0000000000000000000000000000000000000000000000000000000000000000935050505090565b73ffffffffffffffffffffffffffffffffffffffff8416612ebc576040517f57f447ce00000000000000000000000000000000000000000000000000000000815260006004820152602401610fac565b60408051600180825260208201869052818301908152606082018590526080820190925290610e44600087848487612f43565b60055474010000000000000000000000000000000000000000900460ff16610edd576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f4f85858585613085565b73ffffffffffffffffffffffffffffffffffffffff84161561126d5782513390600103612f955760208481015190840151612f8e83898985858961318b565b5050610e44565b610e4481878787878761337d565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612fec577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310613018576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061303657662386f26fc10000830492506010015b6305f5e100831061304e576305f5e100830492506008015b612710831061306257612710830492506004015b60648310613074576064830492506002015b600a8310610a055760010192915050565b6130918484848461350e565b805160005b81811015610e445760008382815181106130b2576130b2613f90565b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461312b5773ffffffffffffffffffffffffffffffffffffffff871660009081526003602052604081208054839290613125908490613fee565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8616156131825773ffffffffffffffffffffffffffffffffffffffff86166000908152600360205260408120805483929061317c908490614b0b565b90915550505b50600101613096565b73ffffffffffffffffffffffffffffffffffffffff84163b15610e44576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f23a6e61906132029089908990889088908890600401614b32565b6020604051808303816000875af192505050801561325b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261325891810190614b82565b60015b6132ea573d808015613289576040519150601f19603f3d011682016040523d82523d6000602084013e61328e565b606091505b5080516000036132e2576040517f57f447ce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602401610fac565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014612b08576040517f57f447ce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602401610fac565b73ffffffffffffffffffffffffffffffffffffffff84163b15610e44576040517fbc197c8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063bc197c81906133f49089908990889088908890600401614b9f565b6020604051808303816000875af192505050801561344d575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261344a91810190614b82565b60015b61347b573d808015613289576040519150601f19603f3d011682016040523d82523d6000602084013e61328e565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014612b08576040517f57f447ce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602401610fac565b805182511461355657815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610fac565b3360005b83518110156136c35760208181028581018201519085019091015173ffffffffffffffffffffffffffffffffffffffff88161561365a5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c16845290915290205481811015613626576040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a166004820152602481018290526044810183905260648101849052608401610fac565b60008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290209082900390555b73ffffffffffffffffffffffffffffffffffffffff8716156136b95760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8b168452909152812080548392906136b3908490614b0b565b90915550505b505060010161355a565b50825160010361376b57602083015160009060208401519091508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161375c929190918252602082015260400190565b60405180910390a4505061126d565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516137e1929190614c0a565b60405180910390a45050505050565b5080546137fc90614001565b6000825580601f1061380c575050565b601f016020900490600052602060002090810190610ef491905b8082111561383a5760008155600101613826565b5090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461159e57600080fd5b6000806040838503121561387557600080fd5b61387e8361383e565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610ef457600080fd5b6000602082840312156138cc57600080fd5b813561158f8161388c565b600080604083850312156138ea57600080fd5b50508035926020909101359150565b60008083601f84011261390b57600080fd5b50813567ffffffffffffffff81111561392357600080fd5b6020830191508360208260051b850101111561393e57600080fd5b9250929050565b60008060006040848603121561395a57600080fd5b83359250602084013567ffffffffffffffff81111561397857600080fd5b613984868287016138f9565b9497909650939450505050565b6000602082840312156139a357600080fd5b5035919050565b60005b838110156139c55781810151838201526020016139ad565b50506000910152565b600081518084526139e68160208601602086016139aa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061158f60208301846139ce565b60008060408385031215613a3e57600080fd5b82359150613a4e6020840161383e565b90509250929050565b8035801515811461159e57600080fd5b600060208284031215613a7957600080fd5b61158f82613a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613af857613af8613a82565b604052919050565b600067ffffffffffffffff821115613b1a57613b1a613a82565b5060051b60200190565b600082601f830112613b3557600080fd5b81356020613b4a613b4583613b00565b613ab1565b8083825260208201915060208460051b870101935086841115613b6c57600080fd5b602086015b84811015613b885780358352918301918301613b71565b509695505050505050565b600082601f830112613ba457600080fd5b813567ffffffffffffffff811115613bbe57613bbe613a82565b613bef60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613ab1565b818152846020838601011115613c0457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215613c3957600080fd5b613c428661383e565b9450613c506020870161383e565b9350604086013567ffffffffffffffff80821115613c6d57600080fd5b613c7989838a01613b24565b94506060880135915080821115613c8f57600080fd5b613c9b89838a01613b24565b93506080880135915080821115613cb157600080fd5b50613cbe88828901613b93565b9150509295509295909350565b600060208284031215613cdd57600080fd5b61158f8261383e565b60008060408385031215613cf957600080fd5b823567ffffffffffffffff80821115613d1157600080fd5b818501915085601f830112613d2557600080fd5b81356020613d35613b4583613b00565b82815260059290921b84018101918181019089841115613d5457600080fd5b948201945b83861015613d7957613d6a8661383e565b82529482019490820190613d59565b96505086013592505080821115613d8f57600080fd5b50613d9c85828601613b24565b9150509250929050565b60008151808452602080850194506020840160005b83811015613dd757815187529582019590820190600101613dbb565b509495945050505050565b60208152600061158f6020830184613da6565b60008060208385031215613e0857600080fd5b823567ffffffffffffffff811115613e1f57600080fd5b613e2b858286016138f9565b90969095509350505050565b604081526000613e4a60408301856139ce565b8281036020840152613e5c81856139ce565b95945050505050565b60008060408385031215613e7857600080fd5b613e818361383e565b9150613a4e60208401613a57565b60008060208385031215613ea257600080fd5b823567ffffffffffffffff80821115613eba57600080fd5b818501915085601f830112613ece57600080fd5b813581811115613edd57600080fd5b866020828501011115613eef57600080fd5b60209290920196919550909350505050565b60008060408385031215613f1457600080fd5b613f1d8361383e565b9150613a4e6020840161383e565b600080600080600060a08688031215613f4357600080fd5b613f4c8661383e565b9450613f5a6020870161383e565b93506040860135925060608601359150608086013567ffffffffffffffff811115613f8457600080fd5b613cbe88828901613b93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610a0557610a05613fbf565b600181811c9082168061401557607f821691505b60208210810361404e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115611480576000816000526020600020601f850160051c8101602086101561407d5750805b601f850160051c820191505b81811015610e4457828155600101614089565b8181036140a7575050565b6140b18254614001565b67ffffffffffffffff8111156140c9576140c9613a82565b6140dd816140d78454614001565b84614054565b6000601f82116001811461412f57600083156140f95750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17845561126d565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b838110156141875782860154825560019586019590910190602001614167565b50858310156141c357818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261423657600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261427557600080fd5b83018035915067ffffffffffffffff82111561429057600080fd5b60200191503681900382131561393e57600080fd5b67ffffffffffffffff8311156142bd576142bd613a82565b6142d1836142cb8354614001565b83614054565b6000601f84116001811461432357600085156142ed5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b17835561126d565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156143725786850135825560209485019460019092019101614352565b50868210156143ad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6143c98283614240565b67ffffffffffffffff8111156143e1576143e1613a82565b6143f5816143ef8554614001565b85614054565b6000601f82116001811461444757600083156144115750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1785556144dd565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690835b828110156144965786850135825560209485019460019092019101614476565b50848210156144d1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19848701351681555b505060018360011b0185555b505050506144ee6020830183614240565b6113058183600186016142a5565b805161ffff8116811461159e57600080fd5b60008060006060848603121561452357600080fd5b83519250614533602085016144fc565b9150614541604085016144fc565b90509250925092565b8082028115828204841417610a0557610a05613fbf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261459f5761459f614561565b500490565b600081516145b68185602086016139aa565b9290920192915050565b7f3c7376672077696474683d2234323022206865696768743d22343230222076698152600060207f6577426f783d22302030203231203231222066696c6c3d226e6f6e652220786d818401527f6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672260408401527f3e0000000000000000000000000000000000000000000000000000000000000060608401526061885161466b81838701858d016139aa565b88519085019061468081848401868d016139aa565b885191019061469481848401868c016139aa565b87519101906146a881848401868b016139aa565b86519101906146bc81848401868a016139aa565b7f3c2f7376673e000000000000000000000000000000000000000000000000000091019182015260670198975050505050505050565b7f7b226e616d65223a2022456d6f6a692042697420230000000000000000000000815260008451602061472c826015860160208a016139aa565b81840191507f222c20226465736372697074696f6e223a202200000000000000000000000000601583015260286000875461476681614001565b6001828116801561477e57600181146147b7576147e9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00841660288901526028831515840289010194506147e9565b8b600052602060002060005b848110156147de5781548a82018901529083019088016147c3565b505060288389010194505b50507f222c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b835250507f6261736536342c00000000000000000000000000000000000000000000000000602082015261486f61484660278301896145a4565b7f2200000000000000000000000000000000000000000000000000000000000000815260010190565b9998505050505050505050565b6000875161488e818460208c016139aa565b80830190507f2c202261747472696275746573223a205b7b2274726169745f74797065223a2081527f224261636b67726f756e64222c202276616c7565223a20220000000000000000602082015287516148ef816038840160208c016139aa565b8082019150507f227d2c207b2274726169745f74797065223a202246616365222c202276616c7560388201527f65223a2022000000000000000000000000000000000000000000000000000000806058830152875161495581605d850160208c016139aa565b7f227d2c207b2274726169745f74797065223a202245796573222c202276616c75605d9390910192830152607d8201528551614998816082840160208a016139aa565b614a80614a57614a51614a026149fc6082868801017f227d2c207b2274726169745f74797065223a20224d6f757468222c202276616c81527f7565223a20220000000000000000000000000000000000000000000000000000602082015260260190565b8a6145a4565b7f227d2c207b2274726169745f74797065223a202248616972222c202276616c7581527f65223a2022000000000000000000000000000000000000000000000000000000602082015260250190565b876145a4565b7f227d5d7d00000000000000000000000000000000000000000000000000000000815260040190565b9a9950505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251614ac681601d8501602087016139aa565b91909101601d0192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b0457614b04613fbf565b5060010190565b80820180821115610a0557610a05613fbf565b600082614b2d57614b2d614561565b500690565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152614b7760a08301846139ce565b979650505050505050565b600060208284031215614b9457600080fd5b815161158f8161388c565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a06040830152614bd860a0830186613da6565b8281036060840152614bea8186613da6565b90508281036080840152614bfe81856139ce565b98975050505050505050565b604081526000614c1d6040830185613da6565b8281036020840152613e5c8185613da656fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220a3748fa073a4a7fc0d28f24f8b8a9cf32fcab344d05023a0955a462cbb97a63064736f6c63430008190033496e73706972656420627920746865206f6c64657374206b6e6f776e20656d6f6a6973202853686172702050492d343030302c2031393934292c20456d6f6a69204269747320284f6e636861696e2053756d6d65722045646974696f6e2920697320612066756c6c79206f6e2d636861696e204e465420636f6c6c656374696f6e20666561747572696e67206578706572696d656e74616c206d696e74696e6720616e642067616d696669636174696f6e206d656368616e69736d732e204576657279203820686f7572732c2061206e657720456d6f6a692042697420697320626f726e2120353025206f66206d696e742070726f63656564732061726520726166666c6564206f666620746f206f6e65206c75636b792077696e6e65722c207768696c6520746865207265737420617265207573656420746f206275726e20424249545320746f6b656e732e000000000000000000000000d811f3803bee46fdce64e680aa29df3a4382e7e30000000000000000000000001595409cbaef3dd2485107fb1e328fa0fa505c10000000000000000000000000e842537260634175891925f058498f9099c102eb