0 txs
2.8k calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
collectorFee
viewfunction collectorFee() view returns (uint256)
currentPhase
viewfunction currentPhase() view returns (uint8)
currentPhaseId
viewfunction currentPhaseId() view returns (uint256)
didMintEnd
viewfunction didMintEnd() view returns (bool)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getMintStatus
viewfunction getMintStatus() view returns (tuple status, uint8 currentPhaseType, tuple activePhase)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isPhaseEnded
viewfunction isPhaseEnded(uint256 phaseId) view returns (bool)
isRevealed
viewfunction isRevealed() view returns (bool)
maxSupply
viewfunction maxSupply() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
phaseCount
viewfunction phaseCount() view returns (uint256)
phaseMinted
viewfunction phaseMinted(uint256, address) view returns (uint256)
phases
viewfunction phases(uint256) view returns (uint8 phaseType, uint256 startTime, uint256 endTime, uint256 mintPrice, uint256 maxPerAddress, uint256 maxSupply, uint256 mintedInPhase, bytes32 allowlistRoot)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address, uint256)
settings
viewfunction settings() view returns (uint256 maxPerAddress, uint256 publicMintPrice, uint256 mintStart, bool isContractSealed, string description, string placeholderImage, bool isFreeMint)
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 result)
verifySignature
purefunction verifySignature(bytes32 messageHash, tuple signature) pure returns (address)
withdrawRecipients
viewfunction withdrawRecipients(uint256) view returns (address recipientAddress, uint256 percentage)
addPhase
nonpayablefunction addPhase(uint8 phaseType, uint256 startTime, uint256 endTime, uint256 mintPrice, uint256 maxPerAddress, uint256 _maxSupply, bytes32 allowlistRoot)
addTraitsForLayers
nonpayablefunction addTraitsForLayers(uint256[] layerIds, uint256[][] traitIds, uint8[][] encodingTypes, bytes[][] datas, string[][] names)
allowlistMint
payablefunction allowlistMint(uint256 quantity, bytes32[] proof) payable
approve
payablefunction approve(address to, uint256 tokenId) payable
freeMint
payablefunction freeMint(uint256 quantity, bytes32[] proof) payable
initialize
nonpayablefunction initialize(string _name, string _symbol, uint256 _maxSupply, tuple _settings, tuple _royaltySettings, tuple[] _withdrawRecipients, tuple _factorySettings, address _pixelDataContract)
mint
payablefunction mint(uint256 quantity) payable
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) payable
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId) payable
sealContract
nonpayablefunction sealContract()
setAllowlistRoot
nonpayablefunction setAllowlistRoot(bytes32 _root)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string uri)
setCurrentPhase
nonpayablefunction setCurrentPhase(uint256 phaseId)
setMaxPerAddress
nonpayablefunction setMaxPerAddress(uint256 maxPerAddress)
setMintStart
nonpayablefunction setMintStart(uint256 mintStart)
setPixelDataContract
nonpayablefunction setPixelDataContract(address _pixelDataContract)
setPublicMintPrice
nonpayablefunction setPublicMintPrice(uint256 publicMintPrice)
setRenderOfTokenId
nonpayablefunction setRenderOfTokenId(uint256 tokenId, bool renderOffChain)
setRevealSeed
nonpayablefunction setRevealSeed()
signatureMint
payablefunction signatureMint(tuple signature, uint256 _nonce, uint256 _quantity, uint256 _maxPerAddress, uint256 _mintPrice, uint256 _collectorFee) payable
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw()
events
AllowlistRootUpdated
event AllowlistRootUpdated(bytes32 root)
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
ContractSealed
event ContractSealed()
CurrentPhaseChanged
event CurrentPhaseChanged(uint8 indexed phaseType, uint256 phaseId)
Initialized
event Initialized(uint8 version)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
Minted
event Minted(address indexed to, uint256 indexed tokenId, uint256 compositeIndex)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PhaseUpdated
event PhaseUpdated(uint256 indexed phaseId, (uint8 phaseType, uint256 startTime, uint256 endTime, uint256 mintPrice, uint256 maxPerAddress, uint256 maxSupply, uint256 mintedInPhase, bytes32 allowlistRoot) phase)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
ExceedsMaxPerAddress
error ExceedsMaxPerAddress()
ExceedsSupply
error ExceedsSupply()
InvalidPayment
error InvalidPayment()
InvalidPhase
error InvalidPhase()
InvalidTime
error InvalidTime()
MintbayInvalidInput
error MintbayInvalidInput(string message)
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotAuthorized
error NotAuthorized()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
NotInAllowlist
error NotInAllowlist()
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
PhaseNotActive
error PhaseNotActive()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615d8180620000f36000396000f3fe6080604052600436106102e45760003560e01c80636c0360eb11610190578063a0712d68116100dc578063dbe9875f11610095578063e4faf2881161006f578063e4faf288146108c8578063e985e9c5146108de578063f103eaaf146108fe578063f2fde38b1461091557600080fd5b8063dbe9875f1461086d578063e06174e41461088d578063e2f36dce146108b557600080fd5b8063a0712d68146107d0578063a22cb465146107e3578063b88d4fde14610803578063bc0e7a9d14610816578063c87b56dd14610836578063d5abeb011461085657600080fd5b80637bddd65b116101495780638da5cb5b116101235780638da5cb5b146107595780638e0acd1214610777578063941ada0e1461079757806395d89b41146107bb57600080fd5b80637bddd65b146106f95780637d3e1ee414610719578063876171dc1461073957600080fd5b80636c0360eb1461064457806370a0823114610659578063715018a6146106795780637960c27f1461068e5780637bc00761146106ae5780637bc9200e146106e657600080fd5b806340c5b34e1161024f57806355f804b3116102085780635fb91bf4116101e25780635fb91bf4146105da5780636352211e146105fa57806368bd580e1461061a57806369393a771461062f57600080fd5b806355f804b31461057a578063570360781461059a5780635d82cf6e146105ba57600080fd5b806340c5b34e146104f457806342842e0e1461050a57806344e963a51461051d578063464a52de146105325780634e07e2c81461055257806354214f691461056557600080fd5b806323b872dd116102a157806323b872dd146103d75780632431ec01146103ea5780632a55205a1461040a5780632dadd603146104495780632e37eef6146104695780633ccfd60b146104df57600080fd5b806301ffc9a7146102e9578063055ad42e1461031e57806306fdde0314610345578063081812fc14610367578063095ea7b31461039f57806318160ddd146103b4575b600080fd5b3480156102f557600080fd5b50610309610304366004614596565b610935565b60405190151581526020015b60405180910390f35b34801561032a57600080fd5b5060fb546103389060ff1681565b60405161031591906145eb565b34801561035157600080fd5b5061035a610955565b6040516103159190614649565b34801561037357600080fd5b5061038761038236600461465c565b6109f0565b6040516001600160a01b039091168152602001610315565b6103b26103ad366004614695565b610a34565b005b3480156103c057600080fd5b506103c9610a44565b604051908152602001610315565b6103b26103e53660046146c1565b610a7b565b3480156103f657600080fd5b506103b2610405366004614845565b610c3e565b34801561041657600080fd5b5061042a610425366004614936565b611254565b604080516001600160a01b039093168352602083019190915201610315565b34801561045557600080fd5b5061030961046436600461465c565b611302565b34801561047557600080fd5b506104cb61048436600461465c565b60fd602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015460ff909616969495939492939192909188565b604051610315989796959493929190614958565b3480156104eb57600080fd5b506103b2611403565b34801561050057600080fd5b506103c960fc5481565b6103b26105183660046146c1565b6114d4565b34801561052957600080fd5b506103096114f4565b34801561053e57600080fd5b5061038761054d3660046149ae565b611508565b6103b26105603660046149db565b6115d3565b34801561057157600080fd5b5061030961189b565b34801561058657600080fd5b506103b2610595366004614a27565b61190f565b3480156105a657600080fd5b506103b26105b5366004614a98565b6119af565b3480156105c657600080fd5b506103b26105d536600461465c565b611cf8565b3480156105e657600080fd5b506103b26105f5366004614af1565b611d7f565b34801561060657600080fd5b5061038761061536600461465c565b611ed4565b34801561062657600080fd5b506103b2611edf565b34801561063b57600080fd5b506103b2611f20565b34801561065057600080fd5b5061035a6120fa565b34801561066557600080fd5b506103c9610674366004614af1565b612189565b34801561068557600080fd5b506103b26121e8565b34801561069a57600080fd5b506103b26106a936600461465c565b6121fa565b3480156106ba57600080fd5b506103c96106c9366004614b0e565b60ff60209081526000928352604080842090915290825290205481565b6103b26106f4366004614b3e565b61226a565b34801561070557600080fd5b506103b261071436600461465c565b612339565b34801561072557600080fd5b506103b261073436600461465c565b61237d565b34801561074557600080fd5b5061042a61075436600461465c565b612466565b34801561076557600080fd5b506033546001600160a01b0316610387565b34801561078357600080fd5b506103b261079236600461465c565b61249f565b3480156107a357600080fd5b506107ac612520565b60405161031593929190614bbc565b3480156107c757600080fd5b5061035a61274b565b6103b26107de36600461465c565b612763565b3480156107ef57600080fd5b506103b26107fe366004614c88565b61280b565b6103b2610811366004614cb6565b612888565b34801561082257600080fd5b506103b2610831366004615105565b6128c9565b34801561084257600080fd5b5061035a61085136600461465c565b612a52565b34801561086257600080fd5b506103c96101065481565b34801561087957600080fd5b506103b26108883660046151d6565b612d80565b34801561089957600080fd5b506108a2612e06565b60405161031597969594939291906151fb565b6103b26108c3366004614b3e565b612f4b565b3480156108d457600080fd5b506103c960fe5481565b3480156108ea57600080fd5b506103096108f9366004615251565b612f9b565b34801561090a57600080fd5b506103c96101025481565b34801561092157600080fd5b506103b2610930366004614af1565b612fd8565b60006109408261304e565b8061094f575061094f8261309c565b92915050565b606061095f6130d1565b600201805461096d9061527f565b80601f01602080910402602001604051908101604052809291908181526020018280546109999061527f565b80156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b5050505050905090565b60006109fb826130f5565b610a0f57610a0f6333d1c03960e21b61314d565b610a176130d1565b60009283526006016020525060409020546001600160a01b031690565b610a4082826001613157565b5050565b600080610a4f6130d1565b60010154610a5b6130d1565b5403039050600019805b14610a7857610a726130d1565b60080154015b90565b6000610a8682613208565b6001600160a01b039485169490915081168414610aac57610aac62a1148160e81b61314d565b600080610ab8846132c3565b91509150610add8187610ac83390565b6001600160a01b039081169116811491141790565b610aff57610aeb8633612f9b565b610aff57610aff632ce44b5f60e11b61314d565b8015610b0a57600082555b610b126130d1565b6001600160a01b0387166000908152600591909101602052604090208054600019019055610b3e6130d1565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610b756130d1565b60008681526004919091016020526040812091909155600160e11b84169003610beb5760018401610ba46130d1565b600082815260049190910160205260408120549003610be957610bc56130d1565b548114610be95783610bd56130d1565b600083815260049190910160205260409020555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a480600003610c3557610c35633a954ecd60e21b61314d565b50505050505050565b600080516020615d2c83398151915254610100900460ff16610c7357600080516020615d2c8339815191525460ff1615610c77565b303b155b610cee5760405162461bcd60e51b815260206004820152603760248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f20697320616c726561647920696e697469616c697a656400000000000000000060648201526084015b60405180910390fd5b600080516020615d2c83398151915254610100900460ff16158015610d2a57600080516020615d2c833981519152805461ffff19166101011790555b600054610100900460ff1615808015610d4a5750600054600160ff909116105b80610d645750303b158015610d64575060005460ff166001145b610dc75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ce5565b6000805460ff191660011790558015610dea576000805461ff0019166101001790555b61010a5460ff1615610e0f5760405163ea8e4eb560e01b815260040160405180910390fd5b881580610e2357506001600160a01b038316155b80610e3a5750610e3660808901896152b3565b1590505b15610e9257604051637695cecf60e01b815260206004820152602160248201527f496e76616c696420696e697469616c697a6174696f6e20706172616d657465726044820152607360f81b6064820152608401610ce5565b610e9c8b8b6132eb565b610ea4613329565b610eac613358565b610eb4613387565b87610107610ec282826153ff565b505061010689905561011180546001600160a01b0319166001600160a01b0385169081179091556040805163f132914b60e01b815290518b929163f132914b9160048083019260209291908290030181865afa158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a919061549c565b1015610f9357604051637695cecf60e01b8152602060048201526017602482015276496e73756666696369656e7420636f6d706f736974657360481b6044820152606401610ce5565b610fa36040850160208601614af1565b61010180546001600160a01b0319166001600160a01b0392909216919091179055604084013561010255610fda6020850185614af1565b61010080546001600160a01b0319166001600160a01b039290921691909117905560a08401356101035561101460e0890160c08a016154b5565b80156110235750602088013515155b1561104157604051637695cecf60e01b8152600401610ce5906154d2565b61104e60a08901896152b3565b905060000361105e576000610104555b60005b858110156110b65761010e87878381811061107e5761107e615509565b8354600181018555600094855260209094206040909102929092019260020290910190506110ac828261551f565b5050600101611061565b506110dc6110c76020890189614af1565b6110d760408a0160208b01615555565b6133ae565b60fb805460ff19908116909155600060fc81905560408051610100810182528281526020808201849052918101839052606081018390526080810183905260a0810183905260c0810183905260e0810183905291805260fd905280517fc34a738ec333e394a3927794cadc6dd0eb7d9eed0999d1e55021ea223ac362cc8054929390928391166001836003811115611176576111766145b3565b02179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155905050600160fe819055506111e28460600160208101906109309190614af1565b8015611228576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50801561124857600080516020615d2c833981519152805461ff00191690555b50505050505050505050565b60008281526098602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916112c95750604080518082019091526097546001600160a01b0381168252600160a01b90046001600160601b031660208201525b6020810151600090612710906112e8906001600160601b031687615594565b6112f291906155c1565b91519350909150505b9250929050565b600081815260fd602052604080822081516101008101909252805483929190829060ff166003811115611337576113376145b3565b6003811115611348576113486145b3565b815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e09091015290506000815160038111156113a9576113a96145b3565b14806113c657506040810151158015906113c65750806040015142115b806113e7575060a0810151158015906113e757508060a001518160c0015110155b806113fc5750610106546113f96134ab565b10155b9392505050565b61140b6134c3565b61141361351d565b4760005b61010e548110156114ab57600061010e828154811061143857611438615509565b6000918252602082206002909102015461010e80546001600160a01b039092169350612710918590811061146e5761146e615509565b9060005260206000209060020201600101548561148b9190615594565b61149591906155c1565b90506114a18282613576565b5050600101611417565b506114c76114c16033546001600160a01b031690565b47613576565b506114d2600160c955565b565b6114ef83838360405180602001604052806000815250612888565b505050565b6000610106546115026134ab565b14905090565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018390526000908190605c0160405160208183030381529060405280519060200120905060018184604001602081019061156e91906155d5565b604080516000815260208181018084529490945260ff909216908201528535606082015290850135608082015260a0016020604051602081039080840390855afa1580156115c0573d6000803e3d6000fd5b5050604051601f19015195945050505050565b6115db61351d565b6115e3613696565b6040805160208082018890526001600160601b031930606090811b82168486015233901b166054830152606882018790526088820186905260a8820185905260c882018490524660e880840191909152835180840390910181526101088301808552815191830191909120610100546305b7633d60e41b90925293516001600160a01b03909116928392635b7633d09261010c808401938290030181865afa158015611693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b791906155f0565b6001600160a01b03166116ca838a611508565b6001600160a01b0316146116f15760405163ea8e4eb560e01b815260040160405180910390fd5b346116fc848661560d565b6117069088615594565b14158061174457508415801590611744575060fc54600090815260ff60209081526040808320338452909152902054859061174290889061560d565b115b8061175f575033600090815261010f60205260409020548711155b806117785750436101035488611775919061560d565b11155b156117d057604051637695cecf60e01b815260206004820152602160248201527f496e76616c6964207369676e6174757265206d696e7420706172616d657465726044820152607360f81b6064820152608401610ce5565b33600081815261010f6020908152604080832043905560fc54835260ff8252808320938352929052908120805488929061180b90849061560d565b909155505060fc54600090815260fd60205260408120600601805488929061183490849061560d565b90915550503332146118595760405163ea8e4eb560e01b815260040160405180910390fd5b6118633387613748565b600061186f8488615594565b1115611887576118876118828488615594565b613a40565b5050611893600160c955565b505050505050565b61011154604080516354214f6960e01b815290516000926001600160a01b0316916354214f699160048083019260209291908290030181865afa1580156118e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190a9190615620565b905090565b6119176134c3565b61010a5460ff161561193c5760405163ea8e4eb560e01b815260040160405180910390fd5b61010561194a82848361533f565b5060006119556134ab565b1115610a40577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600060016119886134ab565b611992919061563d565b604080519283526020830191909152015b60405180910390a15050565b6119b76134c3565b61010a5460ff16156119dc5760405163ea8e4eb560e01b815260040160405180910390fd5b60008760038111156119f0576119f06145b3565b03611a0e5760405163268dbf6760e21b815260040160405180910390fd5b42861015611a2f576040516337bf561360e11b815260040160405180910390fd5b8415801590611a3e5750858511155b15611a5c576040516337bf561360e11b815260040160405180910390fd5b611a646134ab565b61010654611a72919061563d565b821115611a9257604051632d573a5560e01b815260040160405180910390fd5b6003876003811115611aa657611aa66145b3565b148015611ab257508315155b15611ad057604051637695cecf60e01b8152600401610ce5906154d2565b600060fe54118015611af4575060fc54600090815260fd6020526040902060020154155b15611b545760fc8054600090815260fd6020526040808220600201899055915480825290829020915190917f03168e93f4aa97e42c109e650f1bec26c13c0e198322dac5620a02abc902e72991611b4b9190615650565b60405180910390a25b60fe5460408051610100810190915280896003811115611b7657611b766145b3565b815260208082018a905260408083018a9052606083018990526080830188905260a08301879052600060c0840181905260e090930186905284835260fd909152902081518154829060ff19166001836003811115611bd657611bd66145b3565b02179055506020820151600182015560408201516002820155606082015160038201556080820151600482015560a0820151600582015560c0820151600682015560e09091015160079091015560fe8054906000611c33836156b2565b909155505060fb805489919060ff19166001836003811115611c5757611c576145b3565b021790555060fc819055600081815260fd602052604090819020905182917f03168e93f4aa97e42c109e650f1bec26c13c0e198322dac5620a02abc902e72991611ca19190615650565b60405180910390a2876003811115611cbb57611cbb6145b3565b6040518281527f4515337a999f33f35d722adce8da94274ef087e7f122aa9e48376d923397ae7e9060200160405180910390a25050505050505050565b611d006134c3565b61010a5460ff1615611d255760405163ea8e4eb560e01b815260040160405180910390fd5b600360fb5460ff166003811115611d3e57611d3e6145b3565b148015611d4a57508015155b15611d6857604051637695cecf60e01b8152600401610ce5906154d2565b60fc54600090815260fd6020526040902060030155565b611d876134c3565b61010a5460ff1615611dac5760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b038116611e0357604051637695cecf60e01b815260206004820152601960248201527f496e76616c696420506978656c446174612061646472657373000000000000006044820152606401610ce5565b61011180546001600160a01b0319166001600160a01b038316908117909155610106546040805163f132914b60e01b8152905191929163f132914b916004808201926020929091908290030181865afa158015611e64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e88919061549c565b1015611ed157604051637695cecf60e01b8152602060048201526017602482015276496e73756666696369656e7420636f6d706f736974657360481b6044820152606401610ce5565b50565b600061094f82613208565b611ee76134c3565b61010a805460ff191660011790556040517fa0058887862c892ade184993a48c672897bca2e36ebf7fa2b4703d4805fc3a0190600090a1565b611f286134c3565b61010a5460ff1615611f4d5760405163ea8e4eb560e01b815260040160405180910390fd5b61011160009054906101000a90046001600160a01b03166001600160a01b03166354214f696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc59190615620565b15611fe35760405163ea8e4eb560e01b815260040160405180910390fd5b3a434244611ff260018461563d565b6040805160208101969096528501939093526060808501929092526080840152904060a083015233901b6001600160601b03191660c082015260d40160408051601f1981840301815290829052805160209091012061010481905561011154634cd875b160e11b83526001600160a01b0316916399b0eb629161207b9160040190815260200190565b600060405180830381600087803b15801561209557600080fd5b505af11580156120a9573d6000803e3d6000fd5b505050507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c60006001610106546120e0919061563d565b6040805192835260208301919091520160405180910390a1565b61010580546121089061527f565b80601f01602080910402602001604051908101604052809291908181526020018280546121349061527f565b80156121815780601f1061215657610100808354040283529160200191612181565b820191906000526020600020905b81548152906001019060200180831161216457829003601f168201915b505050505081565b60006001600160a01b0382166121a9576121a96323d3ad8160e21b61314d565b6001600160401b036121b96130d1565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b6121f06134c3565b6114d26000613ac7565b6122026134c3565b61010a5460ff16156122275760405163ea8e4eb560e01b815260040160405180910390fd5b801580159061223557504281105b15612253576040516337bf561360e11b815260040160405180910390fd5b60fc54600090815260fd6020526040902060010155565b61227261351d565b6122dc83600184848080602002602001604051908101604052809392919081815260200183836020028082843760009201829052506101025460fc54825260fd6020526040909120600301546122cd9450909250905061560d565b6122d79088615594565b613b19565b3332146122fc5760405163ea8e4eb560e01b815260040160405180910390fd5b6123063384613748565b600061010254846123179190615594565b111561232f5761232f61010254846118829190615594565b6114ef600160c955565b6123416134c3565b61010a5460ff16156123665760405163ea8e4eb560e01b815260040160405180910390fd5b60fc54600090815260fd6020526040902060040155565b6123856134c3565b61010a5460ff16156123aa5760405163ea8e4eb560e01b815260040160405180910390fd5b60fe54811015806123bf57506123bf81611302565b156123dd5760405163268dbf6760e21b815260040160405180910390fd5b600081815260fd602052604090205460fb805460ff9092169160ff1916600183600381111561240e5761240e6145b3565b021790555060fc81905560fb5460ff16600381111561242f5761242f6145b3565b6040518281527f4515337a999f33f35d722adce8da94274ef087e7f122aa9e48376d923397ae7e906020015b60405180910390a250565b61010e818154811061247757600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6124a76134c3565b61010a5460ff16156124cc5760405163ea8e4eb560e01b815260040160405180910390fd5b60fc54600090815260fd602052604090819020600701829055517f3acc3a8ccad9989eb960fa656ab3fe7c50873af2f06d0e4eeddd7081890e7e5e906125159083815260200190565b60405180910390a150565b6125646040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b60006125b26040805161010081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b6040805160e08101825260fc54600081815260fd602081815285832060018101548652939092528152600390910154908201526101065491810191909152606081016125fc6134ab565b815260200161010254815260200161011160009054906101000a90046001600160a01b03166001600160a01b03166354214f696040518163ffffffff1660e01b8152600401602060405180830381865afa15801561265e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126829190615620565b15158152602001600360fb5460ff1660038111156126a2576126a26145b3565b14905260fb5460fc54600090815260fd60205260409081902081516101008101909252805493965060ff92831695509092909183911660038111156126e9576126e96145b3565b60038111156126fa576126fa6145b3565b81526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815250509050909192565b60606127556130d1565b600301805461096d9061527f565b61276b61351d565b604080516000808252602080830184526101025460fc54835260fd909152929020600301546127ae92849260029290916127a49161560d565b6122d79086615594565b3332146127ce5760405163ea8e4eb560e01b815260040160405180910390fd5b6127d83382613748565b600061010254826127e99190615594565b11156128015761280161010254826118829190615594565b611ed1600160c955565b806128146130d1565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b612893848484610a7b565b6001600160a01b0383163b156128c3576128af84848484613dfd565b6128c3576128c36368d2bf6b60e11b61314d565b50505050565b6128d16134c3565b61010a5460ff16156128f65760405163ea8e4eb560e01b815260040160405180910390fd5b83518551148015612908575082518551145b8015612915575081518551145b8015612922575080518551145b6129625760405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606401610ce5565b60005b8551811015611893576101115486516001600160a01b039091169063efca8f089088908490811061299857612998615509565b60200260200101518784815181106129b2576129b2615509565b60200260200101518685815181106129cc576129cc615509565b60200260200101518686815181106129e6576129e6615509565b60200260200101516040518563ffffffff1660e01b8152600401612a0d9493929190615720565b600060405180830381600087803b158015612a2757600080fd5b505af1158015612a3b573d6000803e3d6000fd5b505050508080612a4a906156b2565b915050612965565b6060612a5d826130f5565b612aa157604051637695cecf60e01b8152602060048201526014602482015273151bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b6044820152606401610ce5565b6040805162020060810190915262020040815260006020909101908152612afe612ac9610955565b612ad285613ee0565b604051612ae792919061010b90602001615848565b60408051601f198184030181529190528290613f72565b61011160009054906101000a90046001600160a01b03166001600160a01b03166354214f696040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b769190615620565b612b9657604051612b9190612ae79061010c906020016158f7565b612d50565b600083815261011260205260408120546101058054919291612bb79061527f565b9050118015612bd557506000848152610110602052604090205460ff165b15612c2057612c1b610105612be986613ee0565b612bf246613ee0565b604051602001612c0493929190615937565b60408051601f198184030181529190528390613f72565b612cca565b6101115460405163d56fd88f60e01b8152600481018390526000916001600160a01b03169063d56fd88f90602401600060405180830381865afa158015612c6b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c9391908101906159d8565b9050612cc8612ca182613ff7565b604051602001612cb19190615a20565b60408051601f198184030181529190528490613f72565b505b6101115460405163f2824b5360e01b815260048101839052612d4e916001600160a01b03169063f2824b5390602401600060405180830381865afa158015612d16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d3e91908101906159d8565b604051602001612c049190615a82565b505b612d5981613ff7565b604051602001612d699190615ac3565b604051602081830303815290604052915050919050565b612d8982611ed4565b6001600160a01b0316336001600160a01b031614612dba5760405163ea8e4eb560e01b815260040160405180910390fd5b60008281526101106020908152604091829020805460ff191684151517905590518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce791016119a3565b6101078054610108546101095461010a5461010b805494959394929360ff90921692612e319061527f565b80601f0160208091040260200160405190810160405280929190818152602001828054612e5d9061527f565b8015612eaa5780601f10612e7f57610100808354040283529160200191612eaa565b820191906000526020600020905b815481529060010190602001808311612e8d57829003601f168201915b505050505090806005018054612ebf9061527f565b80601f0160208091040260200160405190810160405280929190818152602001828054612eeb9061527f565b8015612f385780601f10612f0d57610100808354040283529160200191612f38565b820191906000526020600020905b815481529060010190602001808311612f1b57829003601f168201915b5050506006909301549192505060ff1687565b612f5361351d565b6122dc83600384848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050610102546122d79250905088615594565b6000612fa56130d1565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b612fe06134c3565b6001600160a01b0381166130455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce5565b611ed181613ac7565b60006301ffc9a760e01b6001600160e01b03198316148061307f57506380ac58cd60e01b6001600160e01b03198316145b8061094f5750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b148061094f57506301ffc9a760e01b6001600160e01b031983161461094f565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4090565b60006130ff6130d1565b548210156131485760005b6131126130d1565b60008481526004919091016020526040812054915081900361313e5761313783615b08565b925061310a565b600160e01b161590505b919050565b8060005260046000fd5b600061316283611ed4565b905081801561317a5750336001600160a01b03821614155b1561319d576131898133612f9b565b61319d5761319d6367d9dca160e11b61314d565b836131a66130d1565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b60006132126130d1565b600083815260049190910160205260409020549050806000036132a0576132376130d1565b54821061324e5761324e636f96cda160e11b61314d565b6132566130d1565b60001990920160008181526004939093016020526040909220549050801561324e57600160e01b811660000361328b57919050565b61329b636f96cda160e11b61314d565b61324e565b600160e01b81166000036132b357919050565b613148636f96cda160e11b61314d565b60008060006132d06130d1565b60009485526006016020525050604090912080549092909150565b600080516020615d2c83398151915254610100900460ff1661331f5760405162461bcd60e51b8152600401610ce590615b1f565b610a40828261401d565b600054610100900460ff166133505760405162461bcd60e51b8152600401610ce590615b73565b6114d2614090565b600054610100900460ff1661337f5760405162461bcd60e51b8152600401610ce590615b73565b6114d26140c0565b600054610100900460ff166114d25760405162461bcd60e51b8152600401610ce590615b73565b6127106001600160601b038216111561341c5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610ce5565b6001600160a01b0382166134725760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610ce5565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217609755565b6000806134b66130d1565b5403905060001980610a65565b6033546001600160a01b031633146114d25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ce5565b600260c9540361356f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ce5565b600260c955565b804710156135c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610ce5565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613613576040519150601f19603f3d011682016040523d82523d6000602084013e613618565b606091505b50509050806114ef5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610ce5565b600160c955565b6136a160fc54611302565b156114d257600060fc5460016136b7919061560d565b905060fe54811080156136d057506136ce81611302565b155b1561370657600081815260fd602052604090205460fb805460ff9092169160ff1916600183600381111561240e5761240e6145b3565b60fb805460ff19169055600060fc819055604051600081527f4515337a999f33f35d722adce8da94274ef087e7f122aa9e48376d923397ae7e9060200161245b565b6001600160a01b038216158061375c575080155b8061377b5750610106548161376f6134ab565b613779919061560d565b115b156137c957604051637695cecf60e01b815260206004820152601760248201527f496e76616c6964206d696e7420706172616d65746572730000000000000000006044820152606401610ce5565b610111546040805163f132914b60e01b815290516000926001600160a01b03169163f132914b9160048083019260209291908290030181865afa158015613814573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613838919061549c565b905080826101145461384a919061560d565b11156138a357604051637695cecf60e01b815260206004820152602160248201527f496e73756666696369656e7420636f6d706f73697465732072656d61696e696e6044820152606760f81b6064820152608401610ce5565b60006138ad6134ab565b9050600061011454836138c0919061563d565b905060005b8481101561189357600086306138db848761560d565b604080516001600160a01b03948516602082015293909216918301919091526060820152608081018490524260a082015260c00160408051601f198184030181529190528051602090910120905060006139358483615bbe565b9050600061394382866140e7565b905086811061399557604051637695cecf60e01b815260206004820152601760248201527f496e76616c696420636f6d706f7369746520696e6465780000000000000000006044820152606401610ce5565b8061011260006139a5878a61560d565b81526020810191909152604001600020556139c1896001614170565b6139cb848761560d565b896001600160a01b03167f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff83604051613a0691815260200190565b60405180910390a36101148054906000613a1f836156b2565b91905055508480613a2f90615b08565b9550508360010193505050506138c5565b6000613a4d6002836155c1565b610101546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114613aa0576040519150601f19603f3d011682016040523d82523d6000602084013e613aa5565b606091505b50509050806114ef5760405163ea8e4eb560e01b815260040160405180910390fd5b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b613b21613696565b826003811115613b3357613b336145b3565b60fb5460ff166003811115613b4a57613b4a6145b3565b14613b68576040516321094a9b60e01b815260040160405180910390fd5b60fc54600090815260fd6020526040808220815161010081019092528054829060ff166003811115613b9c57613b9c6145b3565b6003811115613bad57613bad6145b3565b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152505090508060200151421080613c1c5750604081015115801590613c1c5750806040015142115b15613c3a576040516321094a9b60e01b815260040160405180910390fd5b8060a00151858260c00151613c4f919061560d565b1180613c6f57506101065485613c636134ab565b613c6d919061560d565b115b15613c8d57604051632d573a5560e01b815260040160405180910390fd5b608081015115801590613cca5750608081015160fc54600090815260ff60209081526040808320338452909152902054613cc890879061560d565b115b15613ce85760405163061b63e160e31b815260040160405180910390fd5b6033546001600160a01b03163314801590613d035750813414155b15613d215760405163078d696560e31b815260040160405180910390fd5b60e081015115801590613d35575060008351115b15613d9c576040516001600160601b03193360601b166020820152600090603401604051602081830303815290604052805190602001209050613d7d848360e0015183614264565b613d9a576040516315ebf2b560e21b815260040160405180910390fd5b505b60fc54600090815260ff6020908152604080832033845290915281208054879290613dc890849061560d565b909155505060fc54600090815260fd602052604081206006018054879290613df190849061560d565b90915550505050505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290613e32903390899088908890600401615bd2565b6020604051808303816000875af1925050508015613e6d575060408051601f3d908101601f19168201909252613e6a91810190615c0f565b60015b613ec2573d808015613e9b576040519150601f19603f3d011682016040523d82523d6000602084013e613ea0565b606091505b508051600003613eba57613eba6368d2bf6b60e11b61314d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60606000613eed8361427a565b60010190506000816001600160401b03811115613f0c57613f0c614702565b6040519080825280601f01601f191660200182016040528015613f36576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613f4057509392505050565b601f1982015182518251603f19909201918290613f8f908361560d565b1115613fed5760405162461bcd60e51b815260206004820152602760248201527f44796e616d69634275666665723a20417070656e64696e67206f7574206f66206044820152663137bab732399760c91b6064820152608401610ce5565b6128c38484614352565b606061094f82604051806060016040528060408152602001615cec604091396001614388565b600080516020615d2c83398151915254610100900460ff166140515760405162461bcd60e51b8152600401610ce590615b1f565b8161405a6130d1565b600201906140689082615c2c565b50806140726130d1565b600301906140809082615c2c565b50600061408b6130d1565b555050565b600054610100900460ff166140b75760405162461bcd60e51b8152600401610ce590615b73565b6114d233613ac7565b600054610100900460ff1661368f5760405162461bcd60e51b8152600401610ce590615b73565b600082815261011360205260408120548181156141045781614106565b845b9050600061411560018661563d565b6000818152610113602052604090205490915086821461414e57801561413b578061413d565b815b600088815261011360205260409020555b801561416557600082815261011360205260408120555b509095945050505050565b600061417a6130d1565b54905060008290036141965761419663b562e8dd60e01b61314d565b6001600160a01b0383164260a01b6001841460e11b17176141b56130d1565b600083815260049190910160205260409020556801000000000000000182026141dc6130d1565b6001600160a01b038516600081815260059290920160205260408220805490930190925581900361421657614216622e076360e81b61314d565b818301825b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a481816001019150810361421b578161425a6130d1565b55506114ef915050565b6000826142718584614507565b14949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142b95772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106142e5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061430357662386f26fc10000830492506010015b6305f5e100831061431b576305f5e100830492506008015b612710831061432f57612710830492506004015b60648310614341576064830492506002015b600a831061094f5760010192915050565b8051602082019150808201602084510184015b8184101561437d578351815260209384019301614365565b505082510190915250565b606083516000036143a857506040805160208101909152600081526113fc565b6000826143d9576003855160046143bf9190615594565b6143ca90600261560d565b6143d491906155c1565b6143fe565b6003855160026143e9919061560d565b6143f391906155c1565b6143fe906004615594565b90506000816001600160401b0381111561441a5761441a614702565b6040519080825280601f01601f191660200182016040528015614444576020820181803683370190505b50905060018501602082018788518901602081018051600082525b828410156144ba576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f811687015186535060018501945061445f565b9052505085156144fb576003885106600181146144de57600281146144f1576144f9565b603d6001830353603d60028303536144f9565b603d60018303535b505b50909695505050505050565b600081815b845181101561454c576145388286838151811061452b5761452b615509565b6020026020010151614554565b915080614544816156b2565b91505061450c565b509392505050565b60008183106145705760008281526020849052604090206113fc565b5060009182526020526040902090565b6001600160e01b031981168114611ed157600080fd5b6000602082840312156145a857600080fd5b81356113fc81614580565b634e487b7160e01b600052602160045260246000fd5b600481106145e757634e487b7160e01b600052602160045260246000fd5b9052565b6020810161094f82846145c9565b60005b838110156146145781810151838201526020016145fc565b50506000910152565b600081518084526146358160208601602086016145f9565b601f01601f19169290920160200192915050565b6020815260006113fc602083018461461d565b60006020828403121561466e57600080fd5b5035919050565b6001600160a01b0381168114611ed157600080fd5b803561314881614675565b600080604083850312156146a857600080fd5b82356146b381614675565b946020939093013593505050565b6000806000606084860312156146d657600080fd5b83356146e181614675565b925060208401356146f181614675565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561474057614740614702565b604052919050565b60006001600160401b0382111561476157614761614702565b50601f01601f191660200190565b600082601f83011261478057600080fd5b813561479361478e82614748565b614718565b8181528460208386010111156147a857600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082840312156147d757600080fd5b50919050565b6000604082840312156147d757600080fd5b60008083601f84011261480157600080fd5b5081356001600160401b0381111561481857600080fd5b6020830191508360208260061b85010111156112fb57600080fd5b600060c082840312156147d757600080fd5b60008060008060008060008060006101c08a8c03121561486457600080fd5b89356001600160401b038082111561487b57600080fd5b6148878d838e0161476f565b9a5060208c013591508082111561489d57600080fd5b6148a98d838e0161476f565b995060408c0135985060608c01359150808211156148c657600080fd5b6148d28d838e016147c5565b97506148e18d60808e016147dd565b965060c08c01359150808211156148f757600080fd5b506149048c828d016147ef565b909550935061491890508b60e08c01614833565b91506149276101a08b0161468a565b90509295985092959850929598565b6000806040838503121561494957600080fd5b50508035926020909101359150565b6101008101614967828b6145c9565b602082019890985260408101969096526060860194909452608085019290925260a084015260c083015260e090910152919050565b6000606082840312156147d757600080fd5b600080608083850312156149c157600080fd5b823591506149d2846020850161499c565b90509250929050565b60008060008060008061010087890312156149f557600080fd5b6149ff888861499c565b986060880135985060808801359760a0810135975060c0810135965060e00135945092505050565b60008060208385031215614a3a57600080fd5b82356001600160401b0380821115614a5157600080fd5b818501915085601f830112614a6557600080fd5b813581811115614a7457600080fd5b866020828501011115614a8657600080fd5b60209290920196919550909350505050565b600080600080600080600060e0888a031215614ab357600080fd5b873560048110614ac257600080fd5b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b600060208284031215614b0357600080fd5b81356113fc81614675565b60008060408385031215614b2157600080fd5b823591506020830135614b3381614675565b809150509250929050565b600080600060408486031215614b5357600080fd5b8335925060208401356001600160401b0380821115614b7157600080fd5b818601915086601f830112614b8557600080fd5b813581811115614b9457600080fd5b8760208260051b8501011115614ba957600080fd5b6020830194508093505050509250925092565b600061020082019050845182526020850151602083015260408501516040830152606085015160608301526080850151608083015260a0850151151560a083015260c0850151151560c0830152614c1660e08301856145c9565b614c25610100830184516145c9565b602083015161012083015260408301516101408301526060830151610160830152608083015161018083015260a08301516101a083015260c08301516101c083015260e08301516101e0830152949350505050565b8015158114611ed157600080fd5b60008060408385031215614c9b57600080fd5b8235614ca681614675565b91506020830135614b3381614c7a565b60008060008060808587031215614ccc57600080fd5b8435614cd781614675565b93506020850135614ce781614675565b92506040850135915060608501356001600160401b03811115614d0957600080fd5b614d158782880161476f565b91505092959194509250565b60006001600160401b03821115614d3a57614d3a614702565b5060051b60200190565b600082601f830112614d5557600080fd5b81356020614d6561478e83614d21565b82815260059290921b84018101918181019086841115614d8457600080fd5b8286015b84811015614d9f5780358352918301918301614d88565b509695505050505050565b600082601f830112614dbb57600080fd5b81356020614dcb61478e83614d21565b82815260059290921b84018101918181019086841115614dea57600080fd5b8286015b84811015614d9f5780356001600160401b03811115614e0d5760008081fd5b614e1b8986838b0101614d44565b845250918301918301614dee565b803560ff8116811461314857600080fd5b600082601f830112614e4b57600080fd5b81356020614e5b61478e83614d21565b828152600592831b8501820192828201919087851115614e7a57600080fd5b8387015b85811015614f145780356001600160401b03811115614e9d5760008081fd5b8801603f81018a13614eaf5760008081fd5b858101356040614ec161478e83614d21565b82815291851b8301810191888101908d841115614ede5760008081fd5b938201935b83851015614f0357614ef485614e29565b82529389019390890190614ee3565b885250505093850193508401614e7e565b5090979650505050505050565b600082601f830112614f3257600080fd5b81356020614f4261478e83614d21565b82815260059290921b84018101918181019086841115614f6157600080fd5b8286015b84811015614d9f5780356001600160401b0380821115614f8457600080fd5b818901915089603f830112614f9857600080fd5b85820135614fa861478e82614d21565b81815260059190911b830160400190878101908c831115614fc857600080fd5b604085015b8381101561500157803585811115614fe457600080fd5b614ff38f6040838a010161476f565b845250918901918901614fcd565b50875250505092840192508301614f65565b600082601f83011261502457600080fd5b8135602061503461478e83614d21565b82815260059290921b8401810191818101908684111561505357600080fd5b8286015b84811015614d9f5780356001600160401b038082111561507657600080fd5b818901915089603f83011261508a57600080fd5b8582013561509a61478e82614d21565b81815260059190911b830160400190878101908c8311156150ba57600080fd5b604085015b838110156150f3578035858111156150d657600080fd5b6150e58f6040838a010161476f565b8452509189019189016150bf565b50875250505092840192508301615057565b600080600080600060a0868803121561511d57600080fd5b85356001600160401b038082111561513457600080fd5b61514089838a01614d44565b9650602088013591508082111561515657600080fd5b61516289838a01614daa565b9550604088013591508082111561517857600080fd5b61518489838a01614e3a565b9450606088013591508082111561519a57600080fd5b6151a689838a01614f21565b935060808801359150808211156151bc57600080fd5b506151c988828901615013565b9150509295509295909350565b600080604083850312156151e957600080fd5b823591506020830135614b3381614c7a565b878152866020820152856040820152841515606082015260e06080820152600061522860e083018661461d565b82810360a084015261523a818661461d565b91505082151560c083015298975050505050505050565b6000806040838503121561526457600080fd5b823561526f81614675565b91506020830135614b3381614675565b600181811c9082168061529357607f821691505b6020821081036147d757634e487b7160e01b600052602260045260246000fd5b6000808335601e198436030181126152ca57600080fd5b8301803591506001600160401b038211156152e457600080fd5b6020019150368190038213156112fb57600080fd5b601f8211156114ef57600081815260208120601f850160051c810160208610156153205750805b601f850160051c820191505b818110156118935782815560010161532c565b6001600160401b0383111561535657615356614702565b61536a83615364835461527f565b836152f9565b6000601f84116001811461539e57600085156153865750838201355b600019600387901b1c1916600186901b1783556153f8565b600083815260209020601f19861690835b828110156153cf57868501358255602094850194600190920191016153af565b50868210156153ec5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813581556020820135600182015560408201356002820155606082013561542581614c7a565b60038201805460ff191660ff831515161790555061544660808301836152b3565b61545481836004860161533f565b505061546360a08301836152b3565b61547181836005860161533f565b505060c082013561548181614c7a565b60068201805482151560ff1660ff1991909116179055505050565b6000602082840312156154ae57600080fd5b5051919050565b6000602082840312156154c757600080fd5b81356113fc81614c7a565b6020808252601d908201527f46726565206d696e742077697468206e6f6e2d7a65726f207072696365000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b813561552a81614675565b81546001600160a01b0319166001600160a01b03919091161781556020919091013560019190910155565b60006020828403121561556757600080fd5b81356001600160601b03811681146113fc57600080fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761094f5761094f61557e565b634e487b7160e01b600052601260045260246000fd5b6000826155d0576155d06155ab565b500490565b6000602082840312156155e757600080fd5b6113fc82614e29565b60006020828403121561560257600080fd5b81516113fc81614675565b8082018082111561094f5761094f61557e565b60006020828403121561563257600080fd5b81516113fc81614c7a565b8181038181111561094f5761094f61557e565b6000610100820190506156678260ff8554166145c9565b60018301546020830152600283015460408301526003830154606083015260048301546080830152600583015460a0830152600683015460c083015260079092015460e09091015290565b6000600182016156c4576156c461557e565b5060010190565b600081518084526020808501808196508360051b8101915082860160005b8581101561571357828403895261570184835161461d565b988501989350908401906001016156e9565b5091979650505050505050565b600060808201868352602060808185015281875180845260a086019150828901935060005b8181101561576157845183529383019391830191600101615745565b5050848103604086015286518082528282019350600581901b8201830183890160005b838110156157b257601f198584030187526157a083835161461d565b96860196925090850190600101615784565b505086810360608801526157c681896156cb565b9b9a5050505050505050505050565b600081546157e28161527f565b600182811680156157fa576001811461580f5761583e565b60ff198416875282151583028701945061583e565b8560005260208060002060005b858110156158355781548a82015290840190820161581c565b50505082870194505b5050505092915050565b683d913730b6b2911d1160b91b8152835160009061586d8160098501602089016145f9565b61202360f01b600991840191820152845161588f81600b8401602089016145f9565b701116113232b9b1b934b83a34b7b7111d1160791b600b92909101918201526158bb601c8201856157d5565b7f222c226261636b67726f756e645f636f6c6f72223a227472616e73706172656e8152621d088b60ea1b60208201526023019695505050505050565b681134b6b0b3b2911d1160b91b8152600061591560098301846157d5565b71222c2261747472696275746573223a5b5d7d60701b81526012019392505050565b681134b6b0b3b2911d1160b91b8152600061595560098301866157d5565b84516159658183602089016145f9565b6a3f6e6574776f726b49643d60a81b9101908152835161598c81600b8401602088016145f9565b61088b60f21b600b9290910191820152600d0195945050505050565b60006159b661478e84614748565b90508281528383830111156159ca57600080fd5b6113fc8360208301846145f9565b6000602082840312156159ea57600080fd5b81516001600160401b03811115615a0057600080fd5b8201601f81018413615a1157600080fd5b613ed8848251602084016159a8565b7f22696d6167655f64617461223a22646174613a696d6167652f7376672b786d6c8152670ed8985cd94d8d0b60c21b602082015260008251615a698160288501602087016145f9565b61088b60f21b6028939091019283015250602a01919050565b6c1130ba3a3934b13aba32b9911d60991b81528151600090615aab81600d8501602087016145f9565b607d60f81b600d939091019283015250600e01919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251615afb81601d8501602087016145f9565b91909101601d0192915050565b600081615b1757615b1761557e565b506000190190565b60208082526034908201527f455243373231415f5f496e697469616c697a61626c653a20636f6e7472616374604082015273206973206e6f7420696e697469616c697a696e6760601b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082615bcd57615bcd6155ab565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615c059083018461461d565b9695505050505050565b600060208284031215615c2157600080fd5b81516113fc81614580565b81516001600160401b03811115615c4557615c45614702565b615c5981615c53845461527f565b846152f9565b602080601f831160018114615c8e5760008415615c765750858301515b600019600386901b1c1916600185901b178555611893565b600085815260208120601f198616915b82811015615cbd57888601518255948401946001909101908401615c9e565b5085821015615cdb5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85fa2646970667358221220bf9b2a6949096852717617bb43b9d8daf15cbaac982d5147a14b3f34487df44064736f6c63430008140033