255 txs
529 calls
constructor
constructor(address _infinityVeilAddress, address _bookOfLoreAddress, string _baseURI)
functions
_archiveBurnIdx
viewfunction _archiveBurnIdx() view returns (uint256)
_baseTokenArchiveURI
viewfunction _baseTokenArchiveURI() view returns (string)
_baseTokenURI
viewfunction _baseTokenURI() view returns (string)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseArchiveURI
viewfunction baseArchiveURI() view returns (string)
baseURI
viewfunction baseURI() view returns (string)
bookOfLoreAddress
viewfunction bookOfLoreAddress() view returns (address)
burnIdxToSoulId
viewfunction burnIdxToSoulId(uint256) view returns (uint256)
flammableAddresses
viewfunction flammableAddresses(uint256) view returns (address)
flammables
viewfunction flammables(address) view returns (uint256 offset, uint256 startBlock)
flammableTokenToSoulId
viewfunction flammableTokenToSoulId(address, uint256) view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
infinityVeilAddress
viewfunction infinityVeilAddress() view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
MAX_SUPPLY
viewfunction MAX_SUPPLY() view returns (uint256)
name
viewfunction name() view returns (string)
nextBurnIdx
viewfunction nextBurnIdx() view returns (uint256)
numFlammableAddresses
viewfunction numFlammableAddresses() view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
provenanceHash
viewfunction provenanceHash() view returns (string)
sacredFlameTokenId
viewfunction sacredFlameTokenId() view returns (uint256)
soulIdToBurnIdx
viewfunction soulIdToBurnIdx(uint256) view returns (uint256)
soulIdToFlammableTokenId
viewfunction soulIdToFlammableTokenId(uint256) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokensOfOwner
viewfunction tokensOfOwner(address _owner) view returns (uint256[])
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
addFlammable
nonpayablefunction addFlammable(address contractAddress, uint256 offset, uint256 startBlock)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burnSoulTokenItselfDestroyingItForever
nonpayablefunction burnSoulTokenItselfDestroyingItForever(uint256 tokenId)
forwardERC20s
nonpayablefunction forwardERC20s(address _token, uint256 _amount)
mint
nonpayablefunction mint(address _tokenContract, uint256 _tokenId)
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)
setBaseURI
nonpayablefunction setBaseURI(string _newBaseURI)
setBookOfLoreContractAddress
nonpayablefunction setBookOfLoreContractAddress(address _bookOfLoreAddress)
setFlameTokenId
nonpayablefunction setFlameTokenId(uint256 _sacredFlameTokenId)
setFlammable
nonpayablefunction setFlammable(address contractAddress, uint256 offset, uint256 startBlock)
setInfinityVeilContractAddress
nonpayablefunction setInfinityVeilContractAddress(address _infinityVeilAddress)
setProvenanceHash
nonpayablefunction setProvenanceHash(string _newProvenanceHash)
setTokenArchiveURI
nonpayablefunction setTokenArchiveURI(string _newTokenArchiveURI, uint256 _newArchiveBurnIdx)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
uploadAttributes
nonpayablefunction uploadAttributes(bytes s)
uploadImages
nonpayablefunction uploadImages(bytes s)
withdrawAll
payablefunction withdrawAll() payable
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)
SoulBurned
event SoulBurned(address tokenContract, uint256 tokenId, uint256 soulId, uint256 burnIdx)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
No errors.
creation bytecode
0x60806040526000601755600060185560006019553480156200002057600080fd5b50604051620036433803806200364383398101604081905262000043916200029c565b604080518082018252600e81526d466f72676f7474656e536f756c7360901b602080830191825283518085019094526005845264534f554c5360d81b9084015281519192916200009691600091620001d9565b508051620000ac906001906020840190620001d9565b50506001600a5550620000c8620000c26200010c565b62000110565b601380546001600160a01b038086166001600160a01b0319928316179092556012805492851692909116919091179055620001038162000162565b5050506200041b565b3390565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200016c6200010c565b6001600160a01b03166200017f620001ca565b6001600160a01b031614620001b15760405162461bcd60e51b8152600401620001a89062000393565b60405180910390fd5b8051620001c6906015906020840190620001d9565b5050565b600b546001600160a01b031690565b828054620001e790620003c8565b90600052602060002090601f0160209004810192826200020b576000855562000256565b82601f106200022657805160ff191683800117855562000256565b8280016001018555821562000256579182015b828111156200025657825182559160200191906001019062000239565b506200026492915062000268565b5090565b5b8082111562000264576000815560010162000269565b80516001600160a01b03811681146200029757600080fd5b919050565b600080600060608486031215620002b1578283fd5b620002bc846200027f565b92506020620002cd8186016200027f565b60408601519093506001600160401b0380821115620002ea578384fd5b818701915087601f830112620002fe578384fd5b81518181111562000313576200031362000405565b604051601f8201601f191681018501838111828210171562000339576200033962000405565b60405281815283820185018a101562000350578586fd5b8592505b8183101562000373578383018501518184018601529184019162000354565b818311156200038457858583830101525b80955050505050509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600281046001821680620003dd57607f821691505b60208210811415620003ff57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b613218806200042b6000396000f3fe6080604052600436106102fe5760003560e01c806370a0823111610190578063a22cb465116100dc578063c6ab67a311610095578063d4cb1a4a1161006f578063d4cb1a4a1461085c578063e756ed541461088a578063e985e9c5146108aa578063f2fde38b146108ca576102fe565b8063c6ab67a314610812578063c87b56dd14610827578063cfc86f7b14610847576102fe565b8063a22cb46514610772578063b61fca16146103ea578063b6e6e1c114610792578063b7fe71f7146107b2578063b88d4fde146107d2578063c66dc90c146107f2576102fe565b8063853828b61161014957806395d89b411161012357806395d89b41146107135780639727151a146107285780639a578341146107485780639baa96f61461075d576102fe565b8063853828b6146106d657806389d93e2b146106de5780638da5cb5b146106fe576102fe565b806370a082311461061f578063715018a61461063f5780637a86aa6b1461065457806383e2fa1b1461067457806383f3958a146106945780638462151c146106a9576102fe565b806332cb6b0c1161024f5780634f6ccce7116102085780636352211e116101e25780636352211e146105b557806368ae97ea146105d55780636c0360eb146105f55780636c319a221461060a576102fe565b80634f6ccce714610560578063537875ca1461058057806355f804b314610595576102fe565b806332cb6b0c146104b65780633bfec1b7146104cb5780633fb83809146104eb57806340c10f191461050057806342842e0e14610520578063469caf8614610540576102fe565b806312e2cfca116102bc5780631f639eef116102965780631f639eef1461044157806323b872dd146104615780632f745c591461048157806331c78bed146104a1576102fe565b806312e2cfca146103ea57806313e269041461040a57806318160ddd1461042c576102fe565b8062c8fe871461030357806301ffc9a71461032557806306fdde031461035b578063081812fc1461037d578063095ea7b3146103aa57806310969523146103ca575b600080fd5b34801561030f57600080fd5b5061032361031e3660046127cb565b6108ea565b005b34801561033157600080fd5b506103456103403660046126b0565b61092c565b6040516103529190612a15565b60405180910390f35b34801561036757600080fd5b50610370610959565b6040516103529190612a20565b34801561038957600080fd5b5061039d6103983660046127cb565b6109eb565b60405161035291906128e9565b3480156103b657600080fd5b506103236103c5366004612635565b610a2e565b3480156103d657600080fd5b506103236103e5366004612755565b610ac6565b3480156103f657600080fd5b506103236104053660046126e8565b610b1c565b34801561041657600080fd5b5061041f610b5b565b6040516103529190613071565b34801561043857600080fd5b5061041f610b61565b34801561044d57600080fd5b5061041f61045c366004612635565b610b67565b34801561046d57600080fd5b5061032361047c36600461254b565b610b84565b34801561048d57600080fd5b5061041f61049c366004612635565b610bb6565b3480156104ad57600080fd5b5061041f610c08565b3480156104c257600080fd5b5061041f610c0e565b3480156104d757600080fd5b5061041f6104e63660046127cb565b610c14565b3480156104f757600080fd5b50610370610c26565b34801561050c57600080fd5b5061032361051b366004612635565b610cb4565b34801561052c57600080fd5b5061032361053b36600461254b565b6110d7565b34801561054c57600080fd5b5061032361055b366004612660565b6110f2565b34801561056c57600080fd5b5061041f61057b3660046127cb565b611187565b34801561058c57600080fd5b506103706111e2565b3480156105a157600080fd5b506103236105b0366004612755565b6111f1565b3480156105c157600080fd5b5061039d6105d03660046127cb565b611243565b3480156105e157600080fd5b506103236105f0366004612788565b611278565b34801561060157600080fd5b506103706112f2565b34801561061657600080fd5b5061039d611301565b34801561062b57600080fd5b5061041f61063a3660046124db565b611310565b34801561064b57600080fd5b50610323611354565b34801561066057600080fd5b5061032361066f3660046124db565b61139f565b34801561068057600080fd5b5061032361068f3660046124db565b611400565b3480156106a057600080fd5b5061041f611461565b3480156106b557600080fd5b506106c96106c43660046124db565b611467565b60405161035291906129d1565b610323611548565b3480156106ea57600080fd5b5061041f6106f93660046127cb565b6115ab565b34801561070a57600080fd5b5061039d6115bd565b34801561071f57600080fd5b506103706115cc565b34801561073457600080fd5b50610323610743366004612635565b6115db565b34801561075457600080fd5b5061039d61169a565b34801561076957600080fd5b5061041f6116a9565b34801561077e57600080fd5b5061032361078d366004612608565b6116af565b34801561079e57600080fd5b506103236107ad3660046127cb565b61177d565b3480156107be57600080fd5b506103236107cd366004612660565b6117c1565b3480156107de57600080fd5b506103236107ed36600461258b565b611822565b3480156107fe57600080fd5b5061039d61080d3660046127cb565b611861565b34801561081e57600080fd5b5061037061188b565b34801561083357600080fd5b506103706108423660046127cb565b611898565b34801561085357600080fd5b50610370611923565b34801561086857600080fd5b5061087c6108773660046124db565b611930565b60405161035292919061307a565b34801561089657600080fd5b5061041f6108a53660046127cb565b611949565b3480156108b657600080fd5b506103456108c5366004612513565b61195b565b3480156108d657600080fd5b506103236108e53660046124db565b611989565b6108fb6108f56119f7565b826119fb565b6109205760405162461bcd60e51b815260040161091790613021565b60405180910390fd5b61092981611a80565b50565b60006001600160e01b0319821663780e9d6360e01b1480610951575061095182611b27565b90505b919050565b60606000805461096890613103565b80601f016020809104026020016040519081016040528092919081815260200182805461099490613103565b80156109e15780601f106109b6576101008083540402835291602001916109e1565b820191906000526020600020905b8154815290600101906020018083116109c457829003601f168201915b5050505050905090565b60006109f682611b67565b610a125760405162461bcd60e51b815260040161091790612dac565b506000908152600460205260409020546001600160a01b031690565b6000610a3982611243565b9050806001600160a01b0316836001600160a01b03161415610a6d5760405162461bcd60e51b815260040161091790612ec5565b806001600160a01b0316610a7f6119f7565b6001600160a01b03161480610a9b5750610a9b816108c56119f7565b610ab75760405162461bcd60e51b815260040161091790612c87565b610ac18383611b84565b505050565b610ace6119f7565b6001600160a01b0316610adf6115bd565b6001600160a01b031614610b055760405162461bcd60e51b815260040161091790612df8565b8051610b189060149060208401906123ac565b5050565b610b246119f7565b6001600160a01b0316610b356115bd565b6001600160a01b031614610b185760405162461bcd60e51b815260040161091790612df8565b600d5490565b60085490565b601160209081526000928352604080842090915290825290205481565b610b8f6108f56119f7565b610bab5760405162461bcd60e51b815260040161091790612f06565b610ac1838383611bf2565b6000610bc183611310565b8210610bdf5760405162461bcd60e51b815260040161091790612a33565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60185481565b61045881565b60106020526000908152604090205481565b60168054610c3390613103565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5f90613103565b8015610cac5780601f10610c8157610100808354040283529160200191610cac565b820191906000526020600020905b815481529060010190602001808311610c8f57829003601f168201915b505050505081565b6002600a541415610cd75760405162461bcd60e51b815260040161091790612fea565b6002600a556001600160a01b0382166000908152600c602052604090206001015415801590610d2057506001600160a01b0382166000908152600c602052604090206001015443115b610d3c5760405162461bcd60e51b815260040161091790612c60565b610d446119f7565b6001600160a01b0316826001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610d799190613071565b60206040518083038186803b158015610d9157600080fd5b505afa158015610da5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc991906124f7565b6001600160a01b031614610def5760405162461bcd60e51b815260040161091790612fa3565b6013546000906001600160a01b031662fdd58e610e0a6119f7565b6019546040518363ffffffff1660e01b8152600401610e2a92919061293a565b60206040518083038186803b158015610e4257600080fd5b505afa158015610e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7a91906127e3565b11610e975760405162461bcd60e51b815260040161091790612bf1565b61045860185410610eba5760405162461bcd60e51b815260040161091790612fc6565b6001600160a01b0382166000908152600c6020526040812054610edd9083613094565b6000818152600e60209081526040808320869055601854600f83528184208190558352601082528083208490556001600160a01b038088168452601183528184208785529092529091208290556012549192501615610fa05760125460405163cfc2450160e01b81526001600160a01b039091169063cfc2450190610f6d90869086906000908190600401612953565b600060405180830381600087803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b505050505b6013546001600160a01b031663f5298aca610fb96119f7565b60195460016040518463ffffffff1660e01b8152600401610fdc9392919061298a565b600060405180830381600087803b158015610ff657600080fd5b505af115801561100a573d6000803e3d6000fd5b5050604051630852cd8d60e31b81526001600160a01b03861692506342966c68915061103a908590600401613071565b600060405180830381600087803b15801561105457600080fd5b505af1158015611068573d6000803e3d6000fd5b5050505061107d6110776119f7565b82611d1f565b7f260eb26ec2743e08ce9ffbdc6282e315cefa254b413b254e3d575cc3f2d780898383836018546040516110b494939291906129ab565b60405180910390a16018546110ca906001613094565b60185550506001600a5550565b610ac183838360405180602001604052806000815250611822565b6110fa6119f7565b6001600160a01b031661110b6115bd565b6001600160a01b0316146111315760405162461bcd60e51b815260040161091790612df8565b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b038516179055610ac18383836117c1565b6000611191610b61565b82106111af5760405162461bcd60e51b815260040161091790612f57565b600882815481106111d057634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b60606016805461096890613103565b6111f96119f7565b6001600160a01b031661120a6115bd565b6001600160a01b0316146112305760405162461bcd60e51b815260040161091790612df8565b8051610b189060159060208401906123ac565b6000818152600260205260408120546001600160a01b0316806109515760405162461bcd60e51b815260040161091790612d2e565b6112806119f7565b6001600160a01b03166112916115bd565b6001600160a01b0316146112b75760405162461bcd60e51b815260040161091790612df8565b60185481106112d85760405162461bcd60e51b815260040161091790612b4d565b81516112eb9060169060208501906123ac565b5060175550565b60606015805461096890613103565b6013546001600160a01b031681565b60006001600160a01b0382166113385760405162461bcd60e51b815260040161091790612ce4565b506001600160a01b031660009081526003602052604090205490565b61135c6119f7565b6001600160a01b031661136d6115bd565b6001600160a01b0316146113935760405162461bcd60e51b815260040161091790612df8565b61139d6000611d39565b565b6113a76119f7565b6001600160a01b03166113b86115bd565b6001600160a01b0316146113de5760405162461bcd60e51b815260040161091790612df8565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6114086119f7565b6001600160a01b03166114196115bd565b6001600160a01b03161461143f5760405162461bcd60e51b815260040161091790612df8565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60195481565b6060600061147483611310565b905080611491575050604080516000815260208101909152610954565b60008167ffffffffffffffff8111156114ba57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114e3578160200160208202803683370190505b50905060005b82811015611538576114fb8582610bb6565b82828151811061151b57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061153081613138565b9150506114e9565b5091506109549050565b50919050565b6115506119f7565b6001600160a01b03166115616115bd565b6001600160a01b0316146115875760405162461bcd60e51b815260040161091790612df8565b60405133904780156108fc02916000818181858888f1935050505061139d57600080fd5b600f6020526000908152604090205481565b600b546001600160a01b031690565b60606001805461096890613103565b6115e36119f7565b6001600160a01b03166115f46115bd565b6001600160a01b03161461161a5760405162461bcd60e51b815260040161091790612df8565b60405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb90611648903390859060040161293a565b602060405180830381600087803b15801561166257600080fd5b505af1158015611676573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190612694565b6012546001600160a01b031681565b60175481565b6116b76119f7565b6001600160a01b0316826001600160a01b031614156116e85760405162461bcd60e51b815260040161091790612bba565b80600560006116f56119f7565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556117396119f7565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117719190612a15565b60405180910390a35050565b6117856119f7565b6001600160a01b03166117966115bd565b6001600160a01b0316146117bc5760405162461bcd60e51b815260040161091790612df8565b601955565b6117c96119f7565b6001600160a01b03166117da6115bd565b6001600160a01b0316146118005760405162461bcd60e51b815260040161091790612df8565b6001600160a01b039092166000908152600c6020526040902090815560010155565b61183361182d6119f7565b836119fb565b61184f5760405162461bcd60e51b815260040161091790612f06565b61185b84848484611d8b565b50505050565b600d818154811061187157600080fd5b6000918252602090912001546001600160a01b0316905081565b60148054610c3390613103565b60606118a382611b67565b6118bf5760405162461bcd60e51b815260040161091790612e76565b60006017541180156118e157506017546000838152600f602052604090205411155b156119185760166118f183611dbe565b604051602001611902929190612843565b6040516020818303038152906040529050610954565b60156118f183611dbe565b60158054610c3390613103565b600c602052600090815260409020805460019091015482565b600e6020526000908152604090205481565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6119916119f7565b6001600160a01b03166119a26115bd565b6001600160a01b0316146119c85760405162461bcd60e51b815260040161091790612df8565b6001600160a01b0381166119ee5760405162461bcd60e51b815260040161091790612ad0565b61092981611d39565b3390565b6000611a0682611b67565b611a225760405162461bcd60e51b815260040161091790612c14565b6000611a2d83611243565b9050806001600160a01b0316846001600160a01b03161480611a685750836001600160a01b0316611a5d846109eb565b6001600160a01b0316145b80611a785750611a78818561195b565b949350505050565b6000611a8b82611243565b9050611a9981600084611ed9565b611aa4600083611b84565b6001600160a01b0381166000908152600360205260408120805460019290611acd9084906130c0565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006001600160e01b031982166380ac58cd60e01b1480611b5857506001600160e01b03198216635b5e139f60e01b145b80610951575061095182611f62565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611bb982611243565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b826001600160a01b0316611c0582611243565b6001600160a01b031614611c2b5760405162461bcd60e51b815260040161091790612e2d565b6001600160a01b038216611c515760405162461bcd60e51b815260040161091790612b76565b611c5c838383611ed9565b611c67600082611b84565b6001600160a01b0383166000908152600360205260408120805460019290611c909084906130c0565b90915550506001600160a01b0382166000908152600360205260408120805460019290611cbe908490613094565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b18828260405180602001604052806000815250611f7b565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611d96848484611bf2565b611da284848484611fae565b61185b5760405162461bcd60e51b815260040161091790612a7e565b606081611de357506040805180820190915260018152600360fc1b6020820152610954565b8160005b8115611e0d5780611df781613138565b9150611e069050600a836130ac565b9150611de7565b60008167ffffffffffffffff811115611e3657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611e60576020820181803683370190505b5090505b8415611a7857611e756001836130c0565b9150611e82600a86613153565b611e8d906030613094565b60f81b818381518110611eb057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611ed2600a866130ac565b9450611e64565b611ee4838383610ac1565b6001600160a01b038316611f0057611efb816120c9565b611f23565b816001600160a01b0316836001600160a01b031614611f2357611f23838261210d565b6001600160a01b038216611f3f57611f3a816121aa565b610ac1565b826001600160a01b0316826001600160a01b031614610ac157610ac18282612283565b6001600160e01b031981166301ffc9a760e01b14919050565b611f8583836122c7565b611f926000848484611fae565b610ac15760405162461bcd60e51b815260040161091790612a7e565b6000611fc2846001600160a01b03166123a6565b156120be57836001600160a01b031663150b7a02611fde6119f7565b8786866040518563ffffffff1660e01b815260040161200094939291906128fd565b602060405180830381600087803b15801561201a57600080fd5b505af192505050801561204a575060408051601f3d908101601f19168201909252612047918101906126cc565b60015b6120a4573d808015612078576040519150601f19603f3d011682016040523d82523d6000602084013e61207d565b606091505b50805161209c5760405162461bcd60e51b815260040161091790612a7e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611a78565b506001949350505050565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6000600161211a84611310565b61212491906130c0565b600083815260076020526040902054909150808214612177576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906121bc906001906130c0565b600083815260096020526040812054600880549394509092849081106121f257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806008838154811061222157634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061226757634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061228e83611310565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b0382166122ed5760405162461bcd60e51b815260040161091790612d77565b6122f681611b67565b156123135760405162461bcd60e51b815260040161091790612b16565b61231f60008383611ed9565b6001600160a01b0382166000908152600360205260408120805460019290612348908490613094565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b8280546123b890613103565b90600052602060002090601f0160209004810192826123da5760008555612420565b82601f106123f357805160ff1916838001178555612420565b82800160010185558215612420579182015b82811115612420578251825591602001919060010190612405565b5061242c929150612430565b5090565b5b8082111561242c5760008155600101612431565b600067ffffffffffffffff8084111561246057612460613193565b604051601f8501601f19168101602001828111828210171561248457612484613193565b60405284815291508183850186101561249c57600080fd5b8484602083013760006020868301015250509392505050565b600082601f8301126124c5578081fd5b6124d483833560208501612445565b9392505050565b6000602082840312156124ec578081fd5b81356124d4816131a9565b600060208284031215612508578081fd5b81516124d4816131a9565b60008060408385031215612525578081fd5b8235612530816131a9565b91506020830135612540816131a9565b809150509250929050565b60008060006060848603121561255f578081fd5b833561256a816131a9565b9250602084013561257a816131a9565b929592945050506040919091013590565b600080600080608085870312156125a0578081fd5b84356125ab816131a9565b935060208501356125bb816131a9565b925060408501359150606085013567ffffffffffffffff8111156125dd578182fd5b8501601f810187136125ed578182fd5b6125fc87823560208401612445565b91505092959194509250565b6000806040838503121561261a578182fd5b8235612625816131a9565b91506020830135612540816131be565b60008060408385031215612647578182fd5b8235612652816131a9565b946020939093013593505050565b600080600060608486031215612674578283fd5b833561267f816131a9565b95602085013595506040909401359392505050565b6000602082840312156126a5578081fd5b81516124d4816131be565b6000602082840312156126c1578081fd5b81356124d4816131cc565b6000602082840312156126dd578081fd5b81516124d4816131cc565b600080602083850312156126fa578182fd5b823567ffffffffffffffff80821115612711578384fd5b818501915085601f830112612724578384fd5b813581811115612732578485fd5b866020828501011115612743578485fd5b60209290920196919550909350505050565b600060208284031215612766578081fd5b813567ffffffffffffffff81111561277c578182fd5b611a78848285016124b5565b6000806040838503121561279a578182fd5b823567ffffffffffffffff8111156127b0578283fd5b6127bc858286016124b5565b95602094909401359450505050565b6000602082840312156127dc578081fd5b5035919050565b6000602082840312156127f4578081fd5b5051919050565b600081518084526128138160208601602086016130d7565b601f01601f19169290920160200192915050565b600081516128398185602086016130d7565b9290920192915050565b825460009081906002810460018083168061285f57607f831692505b602080841082141561287f57634e487b7160e01b87526022600452602487fd5b81801561289357600181146128a4576128d0565b60ff198616895284890196506128d0565b6128ad8b613088565b885b868110156128c85781548b8201529085019083016128af565b505084890196505b5050505050506128e08185612827565b95945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612930908301846127fb565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03949094168452602084019290925260408301521515606082015260a06080820181905260009082015260c00190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252825182820181905260009190848201906040850190845b81811015612a09578351835292840192918401916001016129ed565b50909695505050505050565b901515815260200190565b6000602082526124d460208301846127fb565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252600f908201526e1393d517d0d4915055115117d65155608a1b604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252600990820152684e4f5f464c414d455360b81b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252600d908201526c4e4f545f464c414d4d41424c4560981b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252600a90820152694d41585f535550504c5960b01b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b918252602082015260400190565b60009081526020902090565b600082198211156130a7576130a7613167565b500190565b6000826130bb576130bb61317d565b500490565b6000828210156130d2576130d2613167565b500390565b60005b838110156130f25781810151838201526020016130da565b8381111561185b5750506000910152565b60028104600182168061311757607f821691505b6020821081141561154257634e487b7160e01b600052602260045260246000fd5b600060001982141561314c5761314c613167565b5060010190565b6000826131625761316261317d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092957600080fd5b801515811461092957600080fd5b6001600160e01b03198116811461092957600080fdfea2646970667358221220223df4a1bf9ec6029a29817ec238575a9125a9ca4a648fe243932d0073e200ee64736f6c6343000800003300000000000000000000000031158181b4b91a423bfdc758fc3bf8735711f9c50000000000000000000000004218948d1da133cf4b0758639a8c065dbdccb2bb0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003168747470733a2f2f706f7274616c2e666f72676f7474656e72756e65732e636f6d2f6170692f736f756c732f646174612f000000000000000000000000000000