1.6k txs
2.3k calls
constructor
constructor(address _owner, address _artist, address _burner, address _checkIn)
functions
artist
viewfunction artist() view returns (address)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
burner
viewfunction burner() view returns (address)
burnPercentage
viewfunction burnPercentage() view returns (uint256)
checkIn
viewfunction checkIn() view returns (address)
description
viewfunction description() view returns (bytes)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, 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 body, uint256 head, uint256 mouth, uint256 eyes)
mintFee
viewfunction mintFee() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
supplyCap
viewfunction supplyCap() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
userMintPrice
viewfunction userMintPrice(address _user) view returns (uint256)
addArt
nonpayablefunction addArt(uint256 _array, tuple[] _data)
approve
nonpayablefunction approve(address to, uint256 tokenId)
mint
payablefunction mint() payable
removeArt
nonpayablefunction removeArt(uint256 _array, uint256[] _indices)
renounceOwnership
nonpayablefunction renounceOwnership()
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)
setArt
nonpayablefunction setArt(uint256 _tokenId)
setBurnPercentage
nonpayablefunction setBurnPercentage(uint256 _newBurnPercentage)
setDescription
nonpayablefunction setDescription(bytes _description)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
CapExceeded
error CapExceeded()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
IndicesMustBeMonotonicallyDecreasing
error IndicesMustBeMonotonicallyDecreasing()
InputZero
error InputZero()
InsufficientETHPaid
error InsufficientETHPaid()
InvalidArray
error InvalidArray()
InvalidIndex
error InvalidIndex()
InvalidPercentage
error InvalidPercentage()
NotNFTOwner
error NotNFTOwner()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
TransferFailed
error TransferFailed()
creation bytecode
0x6101c06040526089610100818152906141dc61012039600a906100229082610212565b5034801561002f57600080fd5b5060405161426538038061426583398101604081905261004e916102ed565b8360405180604001604052806008815260200167141d5b9ad85b1bdd60c21b8152506040518060400160405280600581526020016450554e4b5360d81b815250816000908161009d9190610212565b5060016100aa8282610212565b50506001600655506001600160a01b0381166100e057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100e98161011f565b506001600160a01b0392831660c0529082166080521660a05250611388600d556103e860e0526605543df729c000600c55610341565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061019b57607f821691505b6020821081036101bb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561020d576000816000526020600020601f850160051c810160208610156101ea5750805b601f850160051c820191505b81811015610209578281556001016101f6565b5050505b505050565b81516001600160401b0381111561022b5761022b610171565b61023f816102398454610187565b846101c1565b602080601f831160018114610274576000841561025c5750858301515b600019600386901b1c1916600185901b178555610209565b600085815260208120601f198616915b828110156102a357888601518255948401946001909101908401610284565b50858210156102c15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146102e857600080fd5b919050565b6000806000806080858703121561030357600080fd5b61030c856102d1565b935061031a602086016102d1565b9250610328604086016102d1565b9150610336606086016102d1565b905092959194509250565b60805160a05160c05160e051613e46610396600039600081816104f10152610b6f0152600081816103e80152610d00015260008181610340015261136b0152600081816103940152610c9e0152613e466000f3fe6080604052600436106102025760003560e01c8063715018a61161011d578063aaa58f65116100b0578063c3f0d3271161007f578063e985e9c511610064578063e985e9c514610688578063f01f20df146106de578063f2fde38b146106f457600080fd5b8063c3f0d32714610648578063c87b56dd1461066857600080fd5b8063aaa58f6514610576578063b88d4fde14610596578063bb902b5c146105b6578063c0540e56146105d657600080fd5b80638f770ad0116100ec5780638f770ad0146104df57806395d89b4114610513578063a0b7992b14610528578063a22cb4651461055657600080fd5b8063715018a61461046a5780637284e4161461047f57806375ddbbd9146104945780638da5cb5b146104b457600080fd5b8063183ff0851161019557806343bc16121161016457806343bc1612146103d6578063562cb29a1461040a5780636352211e1461042a57806370a082311461044a57600080fd5b8063183ff0851461032e57806323b872dd1461036257806327810b6e1461038257806342842e0e146103b657600080fd5b80630e83c7d7116101d15780630e83c7d7146102cc5780631249c58b146102ec57806313966db5146102f457806318160ddd1461031857600080fd5b806301ffc9a71461020e57806306fdde0314610243578063081812fc14610265578063095ea7b3146102aa57600080fd5b3661020957005b600080fd5b34801561021a57600080fd5b5061022e610229366004612d6e565b610714565b60405190151581526020015b60405180910390f35b34801561024f57600080fd5b506102586107f9565b60405161023a9190612e00565b34801561027157600080fd5b50610285610280366004612e13565b61088b565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023a565b3480156102b657600080fd5b506102ca6102c5366004612e55565b6108c1565b005b3480156102d857600080fd5b506102ca6102e7366004612ecb565b6108d0565b6102ca610b65565b34801561030057600080fd5b5061030a600c5481565b60405190815260200161023a565b34801561032457600080fd5b5061030a600b5481565b34801561033a57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b34801561036e57600080fd5b506102ca61037d366004612f17565b610df6565b34801561038e57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c257600080fd5b506102ca6103d1366004612f17565b610eec565b3480156103e257600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b34801561041657600080fd5b506102ca610425366004612e13565b610f0c565b34801561043657600080fd5b50610285610445366004612e13565b610f6f565b34801561045657600080fd5b5061030a610465366004612f53565b610f7a565b34801561047657600080fd5b506102ca610ff5565b34801561048b57600080fd5b50610258611007565b3480156104a057600080fd5b506102ca6104af366004612ecb565b611095565b3480156104c057600080fd5b5060075473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156104eb57600080fd5b5061030a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561051f57600080fd5b50610258611188565b34801561053457600080fd5b50610548610543366004612f6e565b611197565b60405161023a929190612f90565b34801561056257600080fd5b506102ca610571366004612fbe565b6112e8565b34801561058257600080fd5b506102ca610591366004612ffa565b6112f3565b3480156105a257600080fd5b506102ca6105b136600461309b565b611308565b3480156105c257600080fd5b5061030a6105d1366004612f53565b61131f565b3480156105e257600080fd5b506106206105f1366004612e13565b600960205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a00161023a565b34801561065457600080fd5b506102ca610663366004612e13565b611472565b34801561067457600080fd5b50610258610683366004612e13565b6114bb565b34801561069457600080fd5b5061022e6106a3366004613195565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106ea57600080fd5b5061030a600d5481565b34801561070057600080fd5b506102ca61070f366004612f53565b6114d0565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806107a757507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806107f357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b606060008054610808906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610834906131c8565b80156108815780601f1061085657610100808354040283529160200191610881565b820191906000526020600020905b81548152906001019060200180831161086457829003601f168201915b5050505050905090565b600061089682611531565b5060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166107f3565b6108cc828233611590565b5050565b6108d861159d565b6108e1836115f0565b610917576040517f1ec5aa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819003610953576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82811015610b5d576000868152600860205260409020549150818585838181106109835761098361321b565b90506020020135106109c1576040517f63df817100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081118015610a0d57508484828181106109de576109de61321b565b9050602002013585856001846109f49190613279565b818110610a0357610a0361321b565b9050602002013511155b15610a44576040517f451b9d5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000868152600860205260409020610a5d600184613279565b81548110610a6d57610a6d61321b565b906000526020600020906002020160086000888152602001908152602001600020868684818110610aa057610aa061321b565b9050602002013581548110610ab757610ab761321b565b6000918252602090912060029091020180610ad283826132d4565b50600181810190610ae5908401826132d4565b5050506000868152600860205260409020805480610b0557610b0561340b565b6000828152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191600283020190610b438282612cf2565b610b51600183016000612cf2565b50509055600101610957565b505050505050565b610b6d611609565b7f0000000000000000000000000000000000000000000000000000000000000000600b5410610bc8576040517fa4875a4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610bd33361131f565b905080341015610c0f576040517f2c316f2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54811015610c3a57336000908152600e60205260408120805491610c348361343a565b91905055505b6000612710600d5483610c4d9190613472565b610c5791906134b8565b6040517f42966c680000000000000000000000000000000000000000000000000000000081526000600482015290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906342966c689083906024016000604051808303818588803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b505050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168284610d419190613279565b604051600081818185875af1925050503d8060008114610d7d576040519150601f19603f3d011682016040523d82523d6000602084013e610d82565b606091505b5050905080610dbd576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dc8600b5461164c565b600b8054610de7913391906000610dde8361343a565b919050556118d1565b505050610df46001600655565b565b73ffffffffffffffffffffffffffffffffffffffff8216610e4b576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6000610e58838333611982565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ee6576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80861660048301526024820184905282166044820152606401610e42565b50505050565b610f0783838360405180602001604052806000815250611308565b505050565b33610f1682610f6f565b73ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f4088c61c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f6c8161164c565b50565b60006107f382611531565b600073ffffffffffffffffffffffffffffffffffffffff8216610fcc576040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152602401610e42565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b610ffd61159d565b610df46000611aff565b600a8054611014906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611040906131c8565b801561108d5780601f106110625761010080835404028352916020019161108d565b820191906000526020600020905b81548152906001019060200180831161107057829003601f168201915b505050505081565b61109d61159d565b6110a6836115f0565b6110dc576040517f1ec5aa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819003611118576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156111815760008581526008602052604090208484838181106111435761114361321b565b905060200281019061115591906134cc565b8154600181018355600092835260209092209091600202016111778282613689565b505060010161111b565b5050505050565b606060018054610808906131c8565b600860205281600052604060002081815481106111b357600080fd5b9060005260206000209060020201600091509150508060000180546111d7906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611203906131c8565b80156112505780601f1061122557610100808354040283529160200191611250565b820191906000526020600020905b81548152906001019060200180831161123357829003601f168201915b505050505090806001018054611265906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611291906131c8565b80156112de5780601f106112b3576101008083540402835291602001916112de565b820191906000526020600020905b8154815290600101906020018083116112c157829003601f168201915b5050505050905082565b6108cc338383611b76565b6112fb61159d565b600a610f0782848361356f565b611313848484610df6565b610ee684848484611c73565b6040517f1acc9b6200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152600091829182917f000000000000000000000000000000000000000000000000000000000000000090911690631acc9b6290602401606060405180830381865afa1580156113b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d891906137d8565b5073ffffffffffffffffffffffffffffffffffffffff86166000908152600e60205260409020549193509150600311801561141e57506202a30061141c8342613279565b105b1561146757605a8161ffff1611156114345750605a5b60648161ffff16600c546114489190613472565b61145291906134b8565b600c5461145f9190613279565b949350505050565b5050600c5492915050565b61147a61159d565b6127108111156114b6576040517f1f3b85d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d55565b60606114c682611531565b506107f382611e63565b6114d861159d565b73ffffffffffffffffffffffffffffffffffffffff8116611528576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610e42565b610f6c81611aff565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107f3576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101849052602401610e42565b610f0783838360016126b3565b60075473ffffffffffffffffffffffffffffffffffffffff163314610df4576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610e42565b6000600482116116015760016107f3565b600092915050565b600260065403611645576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600655565b604080516020808201849052428284015282518083038401815260608301808552815191830191909120610100840185526000808052600884527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7546101208601839052610140808701839052875180880390910181526101609096019096528451949093019390932092939192909182916116e89190613814565b815260016000819052600860209081527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916117519190613814565b815260026000819052600860209081527f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916117ba9190613814565b815260036000819052600860209081527f625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d26455546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916118239190613814565b815260046000819052600860209081527f9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b85460408051808401899052808201949094528051808503820181526060909401905282519282019290922092019161188c9190613814565b90526000938452600960209081526040948590208251815590820151600182015593810151600285015560608101516003850155608001516004909301929092555050565b73ffffffffffffffffffffffffffffffffffffffff8216611921576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260006004820152602401610e42565b600061192f83836000611982565b905073ffffffffffffffffffffffffffffffffffffffff811615610f07576040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260006004820152602401610e42565b60008281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff908116908316156119bc576119bc81848661287e565b73ffffffffffffffffffffffffffffffffffffffff811615611a32576119e66000856000806126b3565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff851615611a7b5773ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611bdb576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610e42565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15610ee6576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290611ce8903390889087908790600401613828565b6020604051808303816000875af1925050508015611d41575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d3e91810190613871565b60015b611dd0573d808015611d6f576040519150601f19603f3d011682016040523d82523d6000602084013e611d74565b606091505b508051600003611dc8576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e42565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014611181576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e42565b6000818152600960209081526040808320815160a0810183528154815260018201548185015260028201549281019290925260038101546060838101919091526004909101546080830152838052600890925280517f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c78054939492939091908110611ef057611ef061321b565b9060005260206000209060020201604051806040016040529081600082018054611f19906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611f45906131c8565b8015611f925780601f10611f6757610100808354040283529160200191611f92565b820191906000526020600020905b815481529060010190602001808311611f7557829003601f168201915b50505050508152602001600182018054611fab906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd7906131c8565b80156120245780601f10611ff957610100808354040283529160200191612024565b820191906000526020600020905b81548152906001019060200180831161200757829003601f168201915b50505050508152505090506000600860006001815260200190815260200160002083602001518154811061205a5761205a61321b565b9060005260206000209060020201604051806040016040529081600082018054612083906131c8565b80601f01602080910402602001604051908101604052809291908181526020018280546120af906131c8565b80156120fc5780601f106120d1576101008083540402835291602001916120fc565b820191906000526020600020905b8154815290600101906020018083116120df57829003601f168201915b50505050508152602001600182018054612115906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054612141906131c8565b801561218e5780601f106121635761010080835404028352916020019161218e565b820191906000526020600020905b81548152906001019060200180831161217157829003601f168201915b5050505050815250509050600060086000600281526020019081526020016000208460400151815481106121c4576121c461321b565b90600052602060002090600202016040518060400160405290816000820180546121ed906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054612219906131c8565b80156122665780601f1061223b57610100808354040283529160200191612266565b820191906000526020600020905b81548152906001019060200180831161224957829003601f168201915b5050505050815260200160018201805461227f906131c8565b80601f01602080910402602001604051908101604052809291908181526020018280546122ab906131c8565b80156122f85780601f106122cd576101008083540402835291602001916122f8565b820191906000526020600020905b8154815290600101906020018083116122db57829003601f168201915b50505050508152505090506000600860006003815260200190815260200160002085606001518154811061232e5761232e61321b565b9060005260206000209060020201604051806040016040529081600082018054612357906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054612383906131c8565b80156123d05780601f106123a5576101008083540402835291602001916123d0565b820191906000526020600020905b8154815290600101906020018083116123b357829003601f168201915b505050505081526020016001820180546123e9906131c8565b80601f0160208091040260200160405190810160405280929190818152602001828054612415906131c8565b80156124625780601f1061243757610100808354040283529160200191612462565b820191906000526020600020905b81548152906001019060200180831161244557829003601f168201915b5050505050815250509050600060086000600481526020019081526020016000208660800151815481106124985761249861321b565b90600052602060002090600202016040518060400160405290816000820180546124c1906131c8565b80601f01602080910402602001604051908101604052809291908181526020018280546124ed906131c8565b801561253a5780601f1061250f5761010080835404028352916020019161253a565b820191906000526020600020905b81548152906001019060200180831161251d57829003601f168201915b50505050508152602001600182018054612553906131c8565b80601f016020809104026020016040519081016040528092919081815260200182805461257f906131c8565b80156125cc5780601f106125a1576101008083540402835291602001916125cc565b820191906000526020600020905b8154815290600101906020018083116125af57829003601f168201915b505050919092525050865186518651865185516040519697506000966125f596506020016138aa565b604051602081830303815290604052905061260f8961292e565b600a61261a836129ec565b60405160200161262c939291906139dc565b6040516020818303038152906040529050808660200151866020015186602001518660200151866020015160405160200161266c96959493929190613b66565b6040516020818303038152906040529050612686816129ec565b6040516020016126969190613d78565b604051602081830303815290604052975050505050505050919050565b80806126d4575073ffffffffffffffffffffffffffffffffffffffff821615155b156128295760006126e484611531565b905073ffffffffffffffffffffffffffffffffffffffff83161580159061273757508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612776575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209387168352929052205460ff16155b156127c5576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610e42565b811561282757838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612889838383612b4c565b610f075773ffffffffffffffffffffffffffffffffffffffff83166128dd576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101829052602401610e42565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101829052604401610e42565b6060600061293b83612c10565b600101905060008167ffffffffffffffff81111561295b5761295b61306c565b6040519080825280601f01601f191660200182016040528015612985576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461298f57509392505050565b60608151600003612a0b57505060408051602081019091526000815290565b6000604051806060016040528060408152602001613dd16040913990506000600384516002612a3a9190613dbd565b612a4491906134b8565b612a4f906004613472565b67ffffffffffffffff811115612a6757612a6761306c565b6040519080825280601f01601f191660200182016040528015612a91576020820181803683370190505b50905060018201602082018586518701602081018051600082525b82841015612b07576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865350600185019450612aac565b9052505085516003900660018114612b265760028114612b3957612b41565b603d6001830353603d6002830353612b41565b603d60018303535b509195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff83161580159061145f57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612bda575073ffffffffffffffffffffffffffffffffffffffff80851660009081526005602090815260408083209387168352929052205460ff165b8061145f57505060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614919050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612c59577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612c85576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612ca357662386f26fc10000830492506010015b6305f5e1008310612cbb576305f5e100830492506008015b6127108310612ccf57612710830492506004015b60648310612ce1576064830492506002015b600a83106107f35760010192915050565b508054612cfe906131c8565b6000825580601f10612d0e575050565b601f016020900490600052602060002090810190610f6c91905b80821115612d3c5760008155600101612d28565b5090565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610f6c57600080fd5b600060208284031215612d8057600080fd5b8135612d8b81612d40565b9392505050565b60005b83811015612dad578181015183820152602001612d95565b50506000910152565b60008151808452612dce816020860160208601612d92565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612d8b6020830184612db6565b600060208284031215612e2557600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612e5057600080fd5b919050565b60008060408385031215612e6857600080fd5b612e7183612e2c565b946020939093013593505050565b60008083601f840112612e9157600080fd5b50813567ffffffffffffffff811115612ea957600080fd5b6020830191508360208260051b8501011115612ec457600080fd5b9250929050565b600080600060408486031215612ee057600080fd5b83359250602084013567ffffffffffffffff811115612efe57600080fd5b612f0a86828701612e7f565b9497909650939450505050565b600080600060608486031215612f2c57600080fd5b612f3584612e2c565b9250612f4360208501612e2c565b9150604084013590509250925092565b600060208284031215612f6557600080fd5b612d8b82612e2c565b60008060408385031215612f8157600080fd5b50508035926020909101359150565b604081526000612fa36040830185612db6565b8281036020840152612fb58185612db6565b95945050505050565b60008060408385031215612fd157600080fd5b612fda83612e2c565b915060208301358015158114612fef57600080fd5b809150509250929050565b6000806020838503121561300d57600080fd5b823567ffffffffffffffff8082111561302557600080fd5b818501915085601f83011261303957600080fd5b81358181111561304857600080fd5b86602082850101111561305a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156130b157600080fd5b6130ba85612e2c565b93506130c860208601612e2c565b925060408501359150606085013567ffffffffffffffff808211156130ec57600080fd5b818701915087601f83011261310057600080fd5b8135818111156131125761311261306c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156131585761315861306c565b816040528281528a602084870101111561317157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156131a857600080fd5b6131b183612e2c565b91506131bf60208401612e2c565b90509250929050565b600181811c908216806131dc57607f821691505b602082108103613215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156107f3576107f361324a565b601f821115610f07576000816000526020600020601f850160051c810160208610156132b55750805b601f850160051c820191505b81811015610b5d578281556001016132c1565b8181036132df575050565b6132e982546131c8565b67ffffffffffffffff8111156133015761330161306c565b6133158161330f84546131c8565b8461328c565b6000601f82116001811461336757600083156133315750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611181565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b838110156133bf578286015482556001958601959091019060200161339f565b50858310156133fb57818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361346b5761346b61324a565b5060010190565b80820281158282048414176107f3576107f361324a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826134c7576134c7613489565b500490565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261350057600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261353f57600080fd5b83018035915067ffffffffffffffff82111561355a57600080fd5b602001915036819003821315612ec457600080fd5b67ffffffffffffffff8311156135875761358761306c565b61359b8361359583546131c8565b8361328c565b6000601f8411600181146135ed57600085156135b75750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611181565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561363c578685013582556020948501946001909201910161361c565b5086821015613677577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b613693828361350a565b67ffffffffffffffff8111156136ab576136ab61306c565b6136bf816136b985546131c8565b8561328c565b6000601f82116001811461371157600083156136db5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1785556137a7565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690835b828110156137605786850135825560209485019460019092019101613740565b508482101561379b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19848701351681555b505060018360011b0185555b505050506137b8602083018361350a565b610ee681836001860161356f565b805161ffff81168114612e5057600080fd5b6000806000606084860312156137ed57600080fd5b835192506137fd602085016137c6565b915061380b604085016137c6565b90509250925092565b60008261382357613823613489565b500690565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526138676080830184612db6565b9695505050505050565b60006020828403121561388357600080fd5b8151612d8b81612d40565b600081516138a0818560208601612d92565b9290920192915050565b7f3c7376672077696474683d2237323022206865696768743d22373230222076698152600060207f6577426f783d22302030203234203234222066696c6c3d226e6f6e652220786d818401527f6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672260408401527f3e0000000000000000000000000000000000000000000000000000000000000060608401526061885161395581838701858d01612d92565b88519085019061396a81848401868d01612d92565b885191019061397e81848401868c01612d92565b875191019061399281848401868b01612d92565b86519101906139a681848401868a01612d92565b7f3c2f7376673e000000000000000000000000000000000000000000000000000091019182015260670198975050505050505050565b7f7b226e616d65223a202250756e6b616c6f7420230000000000000000000000008152600084516020613a16826014860160208a01612d92565b81840191507f222c20226465736372697074696f6e223a2022000000000000000000000000006014830152602760008754613a50816131c8565b60018281168015613a685760018114613aa157613ad3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084166027890152602783151584028901019450613ad3565b8b600052602060002060005b84811015613ac85781548a8201890152908301908801613aad565b505060278389010194505b50507f222c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b835250507f6261736536342c000000000000000000000000000000000000000000000000006020820152613b59613b30602783018961388e565b7f2200000000000000000000000000000000000000000000000000000000000000815260010190565b9998505050505050505050565b60008751613b78818460208c01612d92565b80830190507f2c202261747472696275746573223a205b7b2274726169745f74797065223a2081527f224261636b67726f756e64222c202276616c7565223a2022000000000000000060208201528751613bd9816038840160208c01612d92565b8082019150507f227d2c207b2274726169745f74797065223a2022426f6479222c202276616c7560388201527f65223a20220000000000000000000000000000000000000000000000000000008060588301528751613c3f81605d850160208c01612d92565b7f227d2c207b2274726169745f74797065223a202248656164222c202276616c75605d9390910192830152607d8201528551613c82816082840160208a01612d92565b613d6a613d41613d3b613cec613ce66082868801017f227d2c207b2274726169745f74797065223a20224d6f757468222c202276616c81527f7565223a20220000000000000000000000000000000000000000000000000000602082015260260190565b8a61388e565b7f227d2c207b2274726169745f74797065223a202245796573222c202276616c7581527f65223a2022000000000000000000000000000000000000000000000000000000602082015260250190565b8761388e565b7f227d5d7d00000000000000000000000000000000000000000000000000000000815260040190565b9a9950505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613db081601d850160208701612d92565b91909101601d0192915050565b808201808211156107f3576107f361324a56fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220a001687e404cf91e842308d2f2e2a654173b148913ce5a74d48c588d3f46837164736f6c634300081900334576657279206d696e7465642070756e6b2063616e20626520656e646c6573736c792072656d6978656420746f20637265617465206120756e6971756520636f6d62696e6174696f6e206f66207472616974732e2054686520617274776f726b206279206361726c6f7374686567726574612e6574682069732066756c6c79206f6e2d636861696e2e000000000000000000000000d811f3803bee46fdce64e680aa29df3a4382e7e30000000000000000000000005f81f6fb766d40ceb7111fb1eaa5c2632a6178040000000000000000000000001595409cbaef3dd2485107fb1e328fa0fa505c10000000000000000000000000e842537260634175891925f058498f9099c102eb