1 tx
2 calls
constructor
constructor(string htmlContent, string previewImageDataUri)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
CONTRACT_HOLDER
viewfunction CONTRACT_HOLDER() view returns (address)
eligibleNFT
viewfunction eligibleNFT() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getHtmlContent
viewfunction getHtmlContent() view returns (string)
getHtmlRegistryCount
viewfunction getHtmlRegistryCount() view returns (uint256)
getHtmlRegistryEntry
viewfunction getHtmlRegistryEntry(uint256 entryId) view returns (string)
getHtmlUsageCount
viewfunction getHtmlUsageCount(uint256 entryId) view returns (uint256)
getPreviewImage
viewfunction getPreviewImage() view returns (string)
getPreviewRegistryCount
viewfunction getPreviewRegistryCount() view returns (uint256)
getPreviewRegistryEntry
viewfunction getPreviewRegistryEntry(uint256 entryId) view returns (string)
getPreviewUsageCount
viewfunction getPreviewUsageCount(uint256 entryId) view returns (uint256)
getTokenHtmlEntryId
viewfunction getTokenHtmlEntryId(uint256 tokenId) view returns (uint256)
getTokenPreviewEntryId
viewfunction getTokenPreviewEntryId(uint256 tokenId) view returns (uint256)
hasFreeMinted
viewfunction hasFreeMinted(address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
MAX_SUPPLY
viewfunction MAX_SUPPLY() view returns (uint256)
metadataFrozen
viewfunction metadataFrozen() view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
PUBLIC_MINT_PRICE
viewfunction PUBLIC_MINT_PRICE() view returns (uint256)
remainingSupply
viewfunction remainingSupply() view returns (uint256)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 amount)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
batchMint
payablefunction batchMint(uint256 quantity) payable returns (uint256[])
createHtmlEntry
nonpayablefunction createHtmlEntry(uint256 tokenId, string newHtml)
createPreviewEntry
nonpayablefunction createPreviewEntry(uint256 tokenId, string newPreview)
freezeMetadata
nonpayablefunction freezeMetadata()
linkToHtmlEntry
nonpayablefunction linkToHtmlEntry(uint256 tokenId, uint256 entryId)
linkToPreviewEntry
nonpayablefunction linkToPreviewEntry(uint256 tokenId, uint256 entryId)
mint
payablefunction mint() payable returns (uint256)
pause
nonpayablefunction pause()
refreshMetadata
nonpayablefunction refreshMetadata(uint256 tokenId)
renounceOwnership
nonpayablefunction renounceOwnership()
resetTokenHtmlContent
nonpayablefunction resetTokenHtmlContent(uint256 tokenId)
resetTokenPreviewImage
nonpayablefunction resetTokenPreviewImage(uint256 tokenId)
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)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint96 feeNumerator)
setEligibleNFT
nonpayablefunction setEligibleNFT(address newEligibleNFT)
setHtmlContent
nonpayablefunction setHtmlContent(string newHtml)
setPreviewImage
nonpayablefunction setPreviewImage(string newPreviewDataUri)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(address to)
events
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)
EligibleNFTUpdated
event EligibleNFTUpdated(address indexed newEligibleNFT)
HtmlEntryCreated
event HtmlEntryCreated(uint256 indexed entryId)
HtmlUpdated
event HtmlUpdated()
MetadataFrozen
event MetadataFrozen()
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
Minted
event Minted(address indexed minter, address indexed to, uint256 indexed tokenId, uint256 valuePaid)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused()
PreviewEntryCreated
event PreviewEntryCreated(uint256 indexed entryId)
PreviewUpdated
event PreviewUpdated()
RoyaltyUpdated
event RoyaltyUpdated(address indexed receiver, uint96 feeNumerator)
TokenHtmlReset
event TokenHtmlReset(uint256 indexed tokenId)
TokenHtmlUpdated
event TokenHtmlUpdated(uint256 indexed tokenId, uint256 entryId)
TokenPreviewReset
event TokenPreviewReset(uint256 indexed tokenId)
TokenPreviewUpdated
event TokenPreviewUpdated(uint256 indexed tokenId, uint256 entryId)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused()
Withdrawn
event Withdrawn(address indexed to, uint256 amount)
errors
ERC2981InvalidDefaultRoyalty
error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator)
ERC2981InvalidDefaultRoyaltyReceiver
error ERC2981InvalidDefaultRoyaltyReceiver(address receiver)
ERC2981InvalidTokenRoyalty
error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator)
ERC2981InvalidTokenRoyaltyReceiver
error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver)
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)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60806040523480156200001157600080fd5b506040516200419f3803806200419f8339810160408190526200003491620002f5565b336040518060400160405280600d81526020016c31333337204372752047616d6560981b8152506040518060400160405280600781526020016643525547414d4560c81b81525081600090816200008c9190620003ee565b5060016200009b8282620003ee565b5050506001600160a01b038116620000ce57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000d98162000137565b506001600955600c620000ed8382620003ee565b50600d620000fc8282620003ee565b50600a80546001600160a01b03191690556200012f73019b0ee245fb09aaf92ac93ca3309832b79746816101f462000189565b5050620004ba565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b038216811015620001ca57604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401620000c5565b6001600160a01b038316620001f657604051635b6cc80560e11b815260006004820152602401620000c5565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600655565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200025857600080fd5b81516001600160401b038082111562000275576200027562000230565b604051601f8301601f19908116603f01168101908282118183101715620002a057620002a062000230565b81604052838152602092508683858801011115620002bd57600080fd5b600091505b83821015620002e15785820183015181830184015290820190620002c2565b600093810190920192909252949350505050565b600080604083850312156200030957600080fd5b82516001600160401b03808211156200032157600080fd5b6200032f8683870162000246565b935060208501519150808211156200034657600080fd5b50620003558582860162000246565b9150509250929050565b600181811c908216806200037457607f821691505b6020821081036200039557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003e957600081815260208120601f850160051c81016020861015620003c45750805b601f850160051c820191505b81811015620003e557828155600101620003d0565b5050505b505050565b81516001600160401b038111156200040a576200040a62000230565b62000422816200041b84546200035f565b846200039b565b602080601f8311600181146200045a5760008415620004415750858301515b600019600386901b1c1916600185901b178555620003e5565b600085815260208120601f198616915b828110156200048b578886015182559484019460019091019084016200046a565b5085821015620004aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613cd580620004ca6000396000f3fe6080604052600436106102f75760003560e01c806370a0823111610196578063a22cb465116100eb578063da0239a61161008f578063f2fde38b1161006c578063f2fde38b14610934578063f54f0e5a14610954578063f75e1d4a14610974578063fb3cc6c21461098957005b8063da0239a6146108c6578063e985e9c5146108db578063ef6187a4146108fb57005b8063c87b56dd116100c8578063c87b56dd14610851578063cb7e63cb14610871578063d111515d14610891578063d95ba42f146108a657005b8063a22cb465146107f1578063afa2375214610811578063b88d4fde1461083157005b80638456cb59116101525780638889011e1161012f5780638889011e1461077e5780638da5cb5b1461079e57806391539368146107bc57806395d89b41146107dc57005b80638456cb59146107295780638467be0d1461073e578063853990921461075e57005b806370a0823114610672578063715018a614610692578063756b7f5a146106a75780637c40ae49146106c75780637d8f61d0146106f45780638381398f1461070957005b806323b872dd1161024c57806342842e0e116102085780636352211e116101e55780636352211e146105f55780636949d38514610615578063695631f5146106425780636bde26271461065757005b806342842e0e1461059b57806351cff8d9146105bb5780635c975abb146105db57005b806323b872dd146104bc5780632a55205a146104dc5780632faf04c61461051b57806332cb6b0c146105485780633a0309f01461055e5780633f4ba83a1461058657005b8063095ea7b3116102b357806315e2379a1161029057806315e2379a1461045257806318160ddd1461046757806319ae41351461047c5780631db25cbb1461049c57005b8063095ea7b31461040a5780630cbf97eb1461042a5780631249c58b1461044a57005b8063012093d81461030057806301ffc9a71461034057806302456cfc1461037057806304634d8d1461039057806306fdde03146103b0578063081812fc146103d257005b366102fe57005b005b34801561030c57600080fd5b5061032d61031b3660046130f7565b60009081526017602052604090205490565b6040519081526020015b60405180910390f35b34801561034c57600080fd5b5061036061035b366004613126565b6109a3565b6040519015158152602001610337565b34801561037c57600080fd5b506102fe61038b3660046130f7565b6109ce565b34801561039c57600080fd5b506102fe6103ab366004613158565b610b00565b3480156103bc57600080fd5b506103c5610b5d565b60405161033791906131ed565b3480156103de57600080fd5b506103f26103ed3660046130f7565b610bef565b6040516001600160a01b039091168152602001610337565b34801561041657600080fd5b506102fe610425366004613200565b610c18565b34801561043657600080fd5b506102fe61044536600461326e565b610c27565b61032d610deb565b34801561045e57600080fd5b506103c56110f1565b34801561047357600080fd5b50600b5461032d565b34801561048857600080fd5b506102fe61049736600461326e565b611100565b3480156104a857600080fd5b50600a546103f2906001600160a01b031681565b3480156104c857600080fd5b506102fe6104d73660046132ba565b611296565b3480156104e857600080fd5b506104fc6104f73660046132fb565b611321565b604080516001600160a01b039093168352602083019190915201610337565b34801561052757600080fd5b5061032d6105363660046130f7565b60009081526015602052604090205490565b34801561055457600080fd5b5061032d61053981565b34801561056a57600080fd5b506103f273019b0ee245fb09aaf92ac93ca3309832b797468181565b34801561059257600080fd5b506102fe6113a8565b3480156105a757600080fd5b506102fe6105b63660046132ba565b611424565b3480156105c757600080fd5b506102fe6105d636600461331d565b611444565b3480156105e757600080fd5b506010546103609060ff1681565b34801561060157600080fd5b506103f26106103660046130f7565b61157e565b34801561062157600080fd5b5061032d6106303660046130f7565b60009081526016602052604090205490565b34801561064e57600080fd5b506103c5611589565b34801561066357600080fd5b5061032d6604bffe9210900081565b34801561067e57600080fd5b5061032d61068d36600461331d565b611598565b34801561069e57600080fd5b506102fe6115e0565b3480156106b357600080fd5b506102fe6106c23660046132fb565b6115f4565b3480156106d357600080fd5b5061032d6106e23660046130f7565b60009081526018602052604090205490565b34801561070057600080fd5b5060145461032d565b34801561071557600080fd5b506103c56107243660046130f7565b6117a8565b34801561073557600080fd5b506102fe61184a565b61075161074c3660046130f7565b6118ce565b604051610337919061333a565b34801561076a57600080fd5b506102fe61077936600461331d565b611c56565b34801561078a57600080fd5b506102fe6107993660046130f7565b611cf0565b3480156107aa57600080fd5b506008546001600160a01b03166103f2565b3480156107c857600080fd5b506102fe6107d73660046132fb565b611e12565b3480156107e857600080fd5b506103c5611f9c565b3480156107fd57600080fd5b506102fe61080c366004613372565b611fab565b34801561081d57600080fd5b506102fe61082c3660046133a5565b611fb6565b34801561083d57600080fd5b506102fe61084c3660046133fd565b61205b565b34801561085d57600080fd5b506103c561086c3660046130f7565b612073565b34801561087d57600080fd5b506103c561088c3660046130f7565b61229a565b34801561089d57600080fd5b506102fe6122b7565b3480156108b257600080fd5b506102fe6108c13660046130f7565b61233b565b3480156108d257600080fd5b5061032d6123f9565b3480156108e757600080fd5b506103606108f63660046134dd565b612410565b34801561090757600080fd5b5061036061091636600461331d565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561094057600080fd5b506102fe61094f36600461331d565b61243e565b34801561096057600080fd5b506102fe61096f3660046133a5565b612479565b34801561098057600080fd5b5060135461032d565b34801561099557600080fd5b50600e546103609060ff1681565b6000632483248360e11b6001600160e01b0319831614806109c857506109c88261251e565b92915050565b336109d882612543565b6001600160a01b031614610a075760405162461bcd60e51b81526004016109fe9061350b565b60405180910390fd5b600e5460ff1615610a2a5760405162461bcd60e51b81526004016109fe90613542565b6000610a3582612543565b6001600160a01b031603610a5b5760405162461bcd60e51b81526004016109fe9061356e565b60008181526015602052604090205415610ab057600081815260156020908152604080832054835260179091528120805460019290610a9b9084906135b2565b90915550506000818152601560205260408120555b60405181907f904a25bdb98aa5cbb9d89379d4ad98deb8786e2ced81faa5297f266a51754b0890600090a2604051818152600080516020613c80833981519152906020015b60405180910390a150565b610b0861255e565b610b12828261258b565b6040516001600160601b03821681526001600160a01b038316907f8039bd6e4e7dba001c8840eb2e118d9d131246faa7d0d04335f7305127ec0b109060200160405180910390a25050565b606060008054610b6c906135c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610b98906135c5565b8015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905090565b6000610bfa8261262e565b506000828152600460205260409020546001600160a01b03166109c8565b610c23828233612666565b5050565b33610c3184612543565b6001600160a01b031614610c575760405162461bcd60e51b81526004016109fe9061350b565b600e5460ff1615610c7a5760405162461bcd60e51b81526004016109fe90613542565b6000610c8584612543565b6001600160a01b031603610cab5760405162461bcd60e51b81526004016109fe9061356e565b60008381526015602052604090205415610cf157600083815260156020908152604080832054835260179091528120805460019290610ceb9084906135b2565b90915550505b600160136000828254610d0491906135ff565b90915550506013546000908152601160205260409020610d25828483613658565b50601354600084815260156020908152604080832084905592825260179052908120805460019290610d589084906135ff565b90915550506013546040517ff601050d866d7f9cb737d0801b0c235fff4255fe13394e7261e3d6644d3aba8390600090a2827f24d3d92c51c1a1529cb095ebd4e5dc9a544c20baadd6d5d7c540e19a65341728601354604051610dbd91815260200190565b60405180910390a2604051838152600080516020613c808339815191529060200160405180910390a1505050565b6000610df5612673565b60105460ff1615610e3c5760405162461bcd60e51b8152602060048201526011602482015270135a5b9d1a5b99c81a5cc81c185d5cd959607a1b60448201526064016109fe565b610539600b5410610e845760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b60448201526064016109fe565b600a546000906001600160a01b031615801590610f0b5750600a546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f099190613718565b115b90506000818015610f2c5750336000908152600f602052604090205460ff16155b8015610f36575034155b9050600081610f4c576604bffe92109000610f4f565b60005b905081610fa0576604bffe92109000341015610fa05760405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b60448201526064016109fe565b6001600b6000828254610fb391906135ff565b9091555050600b548215610fdc57336000908152600f60205260409020805460ff191660011790555b610fe6338261269d565b6000610ff283346135b2565b9050801561108457604051600090339083908381818185875af1925050503d806000811461103c576040519150601f19603f3d011682016040523d82523d6000602084013e611041565b606091505b50509050806110825760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016109fe565b505b6040513481528290339081907f03f17d66ad3bf18e9412eb06582908831508cdb9b8da9cddb1431f645a5b86329060200160405180910390a4604051828152600080516020613c808339815191529060200160405180910390a15093505050506110ee6001600955565b90565b6060600c8054610b6c906135c5565b3361110a84612543565b6001600160a01b0316146111305760405162461bcd60e51b81526004016109fe9061350b565b600e5460ff16156111535760405162461bcd60e51b81526004016109fe90613542565b600061115e84612543565b6001600160a01b0316036111845760405162461bcd60e51b81526004016109fe9061356e565b600083815260166020526040902054156111ca576000838152601660209081526040808320548352601890915281208054600192906111c49084906135b2565b90915550505b6001601460008282546111dd91906135ff565b909155505060145460009081526012602052604090206111fe828483613658565b506014546000848152601660209081526040808320849055928252601890529081208054600192906112319084906135ff565b90915550506014546040517f1dbb93945d77efa13e9f65aec06c14ca1c9c8182b15d431025d0f62fce7ca57290600090a2827fa8733cc1c9184551ab741cc0cd7253d86233225c8f66fb027b28bce10bc2709b601454604051610dbd91815260200190565b6001600160a01b0382166112c057604051633250574960e11b8152600060048201526024016109fe565b60006112cd8383336126b7565b9050836001600160a01b0316816001600160a01b03161461131b576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109fe565b50505050565b600082815260076020526040812080548291906001600160a01b03811690600160a01b90046001600160601b0316816113755750506006546001600160a01b03811690600160a01b90046001600160601b03165b600061271061138d6001600160601b03841689613731565b6113979190613748565b9295509193505050505b9250929050565b6113b061255e565b60105460ff166113ef5760405162461bcd60e51b815260206004820152600a602482015269139bdd081c185d5cd95960b21b60448201526064016109fe565b6010805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b61143f8383836040518060200160405280600081525061205b565b505050565b61144c61255e565b611454612673565b47806114975760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b60448201526064016109fe565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146114e4576040519150601f19603f3d011682016040523d82523d6000602084013e6114e9565b606091505b505090508061152c5760405162461bcd60e51b815260206004820152600f60248201526e15da5d1a191c985dc819985a5b1959608a1b60448201526064016109fe565b826001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58360405161156791815260200190565b60405180910390a2505061157b6001600955565b50565b60006109c88261262e565b6060600d8054610b6c906135c5565b60006001600160a01b0382166115c4576040516322718ad960e21b8152600060048201526024016109fe565b506001600160a01b031660009081526003602052604090205490565b6115e861255e565b6115f260006127ad565b565b336115fe83612543565b6001600160a01b0316146116245760405162461bcd60e51b81526004016109fe9061350b565b600e5460ff16156116475760405162461bcd60e51b81526004016109fe90613542565b600061165283612543565b6001600160a01b0316036116785760405162461bcd60e51b81526004016109fe9061356e565b60008181526012602052604081208054611691906135c5565b9050116116d25760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a5908195b9d1c9e5259608a1b60448201526064016109fe565b60008281526016602052604090205415611718576000828152601660209081526040808320548352601890915281208054600192906117129084906135b2565b90915550505b6000828152601660209081526040808320849055838352601890915281208054600192906117479084906135ff565b909155505060405181815282907fa8733cc1c9184551ab741cc0cd7253d86233225c8f66fb027b28bce10bc2709b906020015b60405180910390a2604051828152600080516020613c80833981519152906020015b60405180910390a15050565b60008181526012602052604090208054606091906117c5906135c5565b80601f01602080910402602001604051908101604052809291908181526020018280546117f1906135c5565b801561183e5780601f106118135761010080835404028352916020019161183e565b820191906000526020600020905b81548152906001019060200180831161182157829003601f168201915b50505050509050919050565b61185261255e565b60105460ff16156118965760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481c185d5cd95960921b60448201526064016109fe565b6010805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b60606118d8612673565b60105460ff161561191f5760405162461bcd60e51b8152602060048201526011602482015270135a5b9d1a5b99c81a5cc81c185d5cd959607a1b60448201526064016109fe565b6000821161196f5760405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e20300060448201526064016109fe565b61053982600b5461198091906135ff565b11156119c35760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b60448201526064016109fe565b6119d4826604bffe92109000613731565b341015611a165760405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b60448201526064016109fe565b60008267ffffffffffffffff811115611a3157611a316133e7565b604051908082528060200260200182016040528015611a5a578160200160208202803683370190505b50905060005b83811015611b14576001600b6000828254611a7b91906135ff565b9091555050600b54611a8d338261269d565b80838381518110611aa057611aa061376a565b60200260200101818152505080336001600160a01b0316336001600160a01b03167f03f17d66ad3bf18e9412eb06582908831508cdb9b8da9cddb1431f645a5b86326604bffe92109000604051611af991815260200190565b60405180910390a45080611b0c81613780565b915050611a60565b506000611b28846604bffe92109000613731565b90506000611b3682346135b2565b90508015611bc857604051600090339083908381818185875af1925050503d8060008114611b80576040519150601f19603f3d011682016040523d82523d6000602084013e611b85565b606091505b5050905080611bc65760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016109fe565b505b7f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c83600081518110611bfc57611bfc61376a565b602002602001015184600188611c1291906135b2565b81518110611c2257611c2261376a565b6020026020010151604051611c41929190918252602082015260400190565b60405180910390a15050600160095592915050565b611c5e61255e565b6001600160a01b038116611ca65760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016109fe565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517ff73808abe4bc3f214b5ad63d3445f9d260ce7dca5023995eded913db46ff4a6390600090a250565b33611cfa82612543565b6001600160a01b031614611d205760405162461bcd60e51b81526004016109fe9061350b565b600e5460ff1615611d435760405162461bcd60e51b81526004016109fe90613542565b6000611d4e82612543565b6001600160a01b031603611d745760405162461bcd60e51b81526004016109fe9061356e565b60008181526016602052604090205415611dc957600081815260166020908152604080832054835260189091528120805460019290611db49084906135b2565b90915550506000818152601660205260408120555b60405181907f7d655bfc51f43b67b0168c971d79f2f03a818ad23e1a9bb06538acee7e1e772790600090a2604051818152600080516020613c8083398151915290602001610af5565b33611e1c83612543565b6001600160a01b031614611e425760405162461bcd60e51b81526004016109fe9061350b565b600e5460ff1615611e655760405162461bcd60e51b81526004016109fe90613542565b6000611e7083612543565b6001600160a01b031603611e965760405162461bcd60e51b81526004016109fe9061356e565b60008181526011602052604081208054611eaf906135c5565b905011611ef05760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a5908195b9d1c9e5259608a1b60448201526064016109fe565b60008281526015602052604090205415611f3657600082815260156020908152604080832054835260179091528120805460019290611f309084906135b2565b90915550505b600082815260156020908152604080832084905583835260179091528120805460019290611f659084906135ff565b909155505060405181815282907f24d3d92c51c1a1529cb095ebd4e5dc9a544c20baadd6d5d7c540e19a653417289060200161177a565b606060018054610b6c906135c5565b610c233383836127ff565b611fbe61255e565b600e5460ff1615611fe15760405162461bcd60e51b81526004016109fe90613542565b600d611fee828483613658565b506040517fc67390e5e885f2f845e2d2eba5617818a49f28e5a3266747f3d3c8e5b53fbbca90600090a1600b5415610c2357600b54604080516001815260208101929092527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910161179c565b612066848484611296565b61131b338585858561289e565b6060600061208083612543565b6001600160a01b0316036120a65760405162461bcd60e51b81526004016109fe9061356e565b60006120b1836129c9565b6040516020016120c191906137b5565b60408051601f1981840301815291815260008581526015602052908120549192509081036120f057600c61210c565b6000848152601560209081526040808320548352601190915290205b8054612117906135c5565b80601f0160208091040260200160405190810160405280929190818152602001828054612143906135c5565b80156121905780601f1061216557610100808354040283529160200191612190565b820191906000526020600020905b81548152906001019060200180831161217357829003601f168201915b50505060008781526016602052604081205493945092830391506121b7905057600d6121d3565b6000858152601660209081526040808320548352601290915290205b80546121de906135c5565b80601f016020809104026020016040519081016040528092919081815260200182805461220a906135c5565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b5050506000888152601560209081526040808320546016909252909120549394501515921515915061228f905085858585858c612a5c565b979650505050505050565b60008181526011602052604090208054606091906117c5906135c5565b6122bf61255e565b600e5460ff16156123035760405162461bcd60e51b815260206004820152600e60248201526d20b63932b0b23c90333937bd32b760911b60448201526064016109fe565b600e805460ff191660011790556040517feef043febddf4e1d1cf1f72ff1407b84e036e805aa0934418cb82095da8d716490600090a1565b600061234682612543565b6001600160a01b03160361236c5760405162461bcd60e51b81526004016109fe9061356e565b6008546001600160a01b031633148061239e575061238981612543565b6001600160a01b0316336001600160a01b0316145b6123db5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064016109fe565b604051818152600080516020613c8083398151915290602001610af5565b6000600b5461053961240b91906135b2565b905090565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61244661255e565b6001600160a01b03811661247057604051631e4fbdf760e01b8152600060048201526024016109fe565b61157b816127ad565b61248161255e565b600e5460ff16156124a45760405162461bcd60e51b81526004016109fe90613542565b600c6124b1828483613658565b506040517f4e2fc1a53973e9cf26c8919189015262b33983346ea11c6c0d9806dea4c7dbb490600090a1600b5415610c2357600b54604080516001815260208101929092527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910161179c565b60006001600160e01b0319821663152a902d60e11b14806109c857506109c882612aea565b6000908152600260205260409020546001600160a01b031690565b6008546001600160a01b031633146115f25760405163118cdaa760e01b81523360048201526024016109fe565b6127106001600160601b0382168110156125ca57604051636f483d0960e01b81526001600160601b0383166004820152602481018290526044016109fe565b6001600160a01b0383166125f457604051635b6cc80560e11b8152600060048201526024016109fe565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600655565b60008061263a83612543565b90506001600160a01b0381166109c857604051637e27328960e01b8152600481018490526024016109fe565b61143f8383836001612b3a565b60026009540361269657604051633ee5aeb560e01b815260040160405180910390fd5b6002600955565b610c23828260405180602001604052806000815250612c40565b6000806126c384612543565b90506001600160a01b038316156126df576126df818486612c58565b6001600160a01b0381161561271d576126fc600085600080612b3a565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561274c576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a490505b9392505050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661283157604051630b61174360e31b81526001600160a01b03831660048201526024016109fe565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156129c257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906128e09088908890879087906004016137ec565b6020604051808303816000875af192505050801561291b575060408051601f3d908101601f1916820190925261291891810190613829565b60015b612984573d808015612949576040519150601f19603f3d011682016040523d82523d6000602084013e61294e565b606091505b50805160000361297c57604051633250574960e11b81526001600160a01b03851660048201526024016109fe565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146129c057604051633250574960e11b81526001600160a01b03851660048201526024016109fe565b505b5050505050565b606060006129d683612cbc565b600101905060008167ffffffffffffffff8111156129f6576129f66133e7565b6040519080825280601f01601f191660200182016040528015612a20576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612a2a57509392505050565b60606000612a6b858585612d94565b90506000886040518061014001604052806101108152602001613b706101109139888a85604051602001612aa3959493929190613846565b6040516020818303038152906040529050612abd81612e86565b604051602001612acd9190613957565b604051602081830303815290604052925050509695505050505050565b60006001600160e01b031982166380ac58cd60e01b1480612b1b57506001600160e01b03198216635b5e139f60e01b145b806109c857506301ffc9a760e01b6001600160e01b03198316146109c8565b8080612b4e57506001600160a01b03821615155b15612c10576000612b5e8461262e565b90506001600160a01b03831615801590612b8a5750826001600160a01b0316816001600160a01b031614155b8015612b9d5750612b9b8184612410565b155b15612bc65760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016109fe565b8115612c0e5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612c4a8383612eac565b61143f33600085858561289e565b612c63838383612f11565b61143f576001600160a01b038316612c9157604051637e27328960e01b8152600481018290526024016109fe565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109fe565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612cfb5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612d27576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612d4557662386f26fc10000830492506010015b6305f5e1008310612d5d576305f5e100830492506008015b6127108310612d7157612710830492506004015b60648310612d83576064830492506002015b600a83106109c85760010192915050565b6000818152601560209081526040808320546016909252822054606092612dba836129c9565b90506000612dc7836129c9565b905087612df1576040518060400160405280600581526020016466616c736560d81b815250612e0f565b604051806040016040528060048152602001637472756560e01b8152505b87612e37576040518060400160405280600581526020016466616c736560d81b815250612e55565b604051806040016040528060048152602001637472756560e01b8152505b8383604051602001612e6a949392919061399c565b6040516020818303038152906040529450505050509392505050565b60606109c882604051806060016040528060408152602001613b30604091396001612f77565b6001600160a01b038216612ed657604051633250574960e11b8152600060048201526024016109fe565b6000612ee4838360006126b7565b90506001600160a01b0381161561143f576040516339e3563760e11b8152600060048201526024016109fe565b60006001600160a01b03831615801590612f6f5750826001600160a01b0316846001600160a01b03161480612f4b5750612f4b8484612410565b80612f6f57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b60608351600003612f9757506040805160208101909152600081526127a6565b600082612fc857600385516004612fae9190613731565b612fb99060026135ff565b612fc39190613748565b612fed565b600385516002612fd891906135ff565b612fe29190613748565b612fed906004613731565b905060008167ffffffffffffffff81111561300a5761300a6133e7565b6040519080825280601f01601f191660200182016040528015613034576020820181803683370190505b50905060018501602082018788518901602081018051600082525b828410156130aa576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f811687015186535060018501945061304f565b9052505085156130eb576003885106600181146130ce57600281146130e1576130e9565b603d6001830353603d60028303536130e9565b603d60018303535b505b50909695505050505050565b60006020828403121561310957600080fd5b5035919050565b6001600160e01b03198116811461157b57600080fd5b60006020828403121561313857600080fd5b81356127a681613110565b6001600160a01b038116811461157b57600080fd5b6000806040838503121561316b57600080fd5b823561317681613143565b915060208301356001600160601b038116811461319257600080fd5b809150509250929050565b60005b838110156131b85781810151838201526020016131a0565b50506000910152565b600081518084526131d981602086016020860161319d565b601f01601f19169290920160200192915050565b6020815260006127a660208301846131c1565b6000806040838503121561321357600080fd5b823561321e81613143565b946020939093013593505050565b60008083601f84011261323e57600080fd5b50813567ffffffffffffffff81111561325657600080fd5b6020830191508360208285010111156113a157600080fd5b60008060006040848603121561328357600080fd5b83359250602084013567ffffffffffffffff8111156132a157600080fd5b6132ad8682870161322c565b9497909650939450505050565b6000806000606084860312156132cf57600080fd5b83356132da81613143565b925060208401356132ea81613143565b929592945050506040919091013590565b6000806040838503121561330e57600080fd5b50508035926020909101359150565b60006020828403121561332f57600080fd5b81356127a681613143565b6020808252825182820181905260009190848201906040850190845b818110156130eb57835183529284019291840191600101613356565b6000806040838503121561338557600080fd5b823561339081613143565b91506020830135801515811461319257600080fd5b600080602083850312156133b857600080fd5b823567ffffffffffffffff8111156133cf57600080fd5b6133db8582860161322c565b90969095509350505050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561341357600080fd5b843561341e81613143565b9350602085013561342e81613143565b925060408501359150606085013567ffffffffffffffff8082111561345257600080fd5b818701915087601f83011261346657600080fd5b813581811115613478576134786133e7565b604051601f8201601f19908116603f011681019083821181831017156134a0576134a06133e7565b816040528281528a60208487010111156134b957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156134f057600080fd5b82356134fb81613143565b9150602083013561319281613143565b6020808252601d908201527f43616c6c6572206973206e6f742074686520746f6b656e206f776e6572000000604082015260600190565b60208082526012908201527126b2ba30b230ba309034b990333937bd32b760711b604082015260600190565b602080825260149082015273151bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156109c8576109c861359c565b600181811c908216806135d957607f821691505b6020821081036135f957634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156109c8576109c861359c565b601f82111561143f57600081815260208120601f850160051c810160208610156136395750805b601f850160051c820191505b818110156129c057828155600101613645565b67ffffffffffffffff831115613670576136706133e7565b6136848361367e83546135c5565b83613612565b6000601f8411600181146136b857600085156136a05750838201355b600019600387901b1c1916600186901b1783556129c2565b600083815260209020601f19861690835b828110156136e957868501358255602094850194600190920191016136c9565b50868210156137065760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006020828403121561372a57600080fd5b5051919050565b80820281158282048414176109c8576109c861359c565b60008261376557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016137925761379261359c565b5060010190565b600081516137ab81856020860161319d565b9290920192915050565b6e31333337204372752047616d65202360881b8152600082516137df81600f85016020870161319d565b91909101600f0192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061381f908301846131c1565b9695505050505050565b60006020828403121561383b57600080fd5b81516127a681613110565b683d913730b6b2911d1160b91b8152855160009061386b816009850160208b0161319d565b61088b60f21b60099184019182018190526e113232b9b1b934b83a34b7b7111d1160891b600b83015287516138a781601a850160208c0161319d565b601a9201918201819052681134b6b0b3b2911d1160b91b601c83015286516138d6816025850160208b0161319d565b6025920191820152701130b734b6b0ba34b7b72fbab936111d1160791b602782015261394b61393e61393861391f613911603886018a613799565b61088b60f21b815260020190565b6c1130ba3a3934b13aba32b9911d60991b8152600d0190565b86613799565b607d60f81b815260010190565b98975050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161398f81601d85016020870161319d565b91909101601d0192915050565b605b60f81b81527f7b2274726169745f74797065223a2248544d4c20437573746f6d697a6564222c600182015268113b30b63ab2911d1160b91b602182015284516000906139f181602a850160208a0161319d565b62089f4b60ea1b602a9184019182018190527f7b2274726169745f74797065223a225072657669657720496d61676520437573602d830152713a37b6b4bd32b21116113b30b63ab2911d1160711b604d8301528651613a5781605f850160208b0161319d565b605f9201918201527f7b2274726169745f74797065223a2248544d4c20526567697374727920456e7460628201526f393c9024a21116113b30b63ab2911d1160811b608282015261228f613b22613b14613b0e613ac9613aba609287018b613799565b62089f4b60ea1b815260030190565b7f7b2274726169745f74797065223a22507265766965772052656769737472792081527222b73a393c9024a21116113b30b63ab2911d1160691b602082015260330190565b87613799565b61227d60f01b815260020190565b605d60f81b81526001019056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f31333337204352552047414d4520697320612066756c6c79206f6e2d636861696e2048544d4c20617263616465204e46542e204561636820746f6b656e20697320626f7468206120636f6c6c65637469626c6520616e64206120706c617961626c652067616d652c2073746f72656420656e746972656c79206f6e20457468657265756d2e204d696e74696e6720636f6e6e6563747320796f7520746f207468652031333337204352553a2061206469676974616c20626c6f636b636861696e20435255206f6620646576732c2063726561746f727320616e6420636f6c6c6563746f72732e20437573746f6d697a61626c652c204343302c20616e6420666f7265766572206f6e2d636861696e2e20f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7a26469706673582212207885d331c40b03e10f05dcf558f8eefd1a94db0abb253a51f89c4a83604d5d0764736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002c5e646174613a746578742f68746d6c3b6261736536342c5043466b62324e306558426c494768306257772b44516f3861485274624342735957356e505756755067304b5047686c5957512b44516f38625756305953426a614746796332563050565655526930345067304b5047316c64474567626d46745a54313261575633634739796443426a623235305a57353050534a33615752306144316b5a585a705932557464326c6b644767736157357064476c686243317a593246735a5430784c47316865476c746457307463324e68624755394d537831633256794c584e6a59577868596d786c50573576496a344e436a7830615852735a5434784d7a4d3349454e53565342485155314650433930615852735a54344e436a787a64486c735a5435696232523565323168636d6470626a6f774f3342685a475270626d63364d447476646d56795a6d7876647a706f6157526b5a573437614756705a3268304f6a45774d485a6f4f324a685932746e636d3931626d51745932397362334936497a41774d4474306233566a614331685933527062323436626d39755a58316a5957353259584e376347397a61585270623234365a6d6c345a575137644739774f6a41376247566d64446f774f3364705a48526f4f6a45774d435537614756705a3268304f6a45774d435537596d39795a4756794f6a4a776543427a623278705a43416a4d4759774f324a766543317a61587070626d6336596d39795a4756794c574a766544746b61584e77624746354f6d4a7362324e7266547776633352356247552b44516f384c32686c5957512b44516f38596d396b6554344e436a786a5957353259584d67615751395a3246745a554e68626e5a68637a34384c324e68626e5a68637a344e436a787a59334a706348512b593239756333516759324675646d467a50575276593356745a5735304c6d646c644556735a57316c626e524365556c6b4b434a6e5957316c51324675646d467a49696b735933523450574e68626e5a686379356e5a585244623235305a5868304b4349795a4349704f32786c6443427a593246735a555a6859335276636a30784c476468625756546158706c505451774d4378765a6d5a7a5a5852595054417362325a6d63325630575430774f325a31626d4e306157397549484a6c63326c365a554e68626e5a686379677065324e76626e4e304947553964326c755a4739334c6e5a706333566862465a705a58647762334a30664878336157356b623363736444316c4c6e64705a48526f664878336157356b62336375615735755a584a58615752306143786850575575614756705a326830664878336157356b62336375615735755a584a495a576c6e6148513759324675646d467a4c6e64705a48526f5058517359324675646d467a4c6d686c6157646f644431684c476468625756546158706c505531686447677562576c754b4851744e4378684c5451704c484e6a5957786c526d466a6447397950576468625756546158706c4c7a51774d4378765a6d5a7a5a585259505368304c576468625756546158706c4b5338794c47396d5a6e4e6c64466b394b4745745a3246745a564e70656d55704c7a4a39636d567a6158706c51324675646d467a4b436b7364326c755a4739334c6d466b5a4556325a57353054476c7a644756755a58496f496e4a6c63326c365a534973636d567a6158706c51324675646d467a4b5378336157356b62336375646d6c7a64574673566d6c6c64334276636e516d4a6e6470626d52766479353261584e31595778576157563363473979644335685a475246646d5675644578706333526c626d56794b434a795a584e70656d55694c484a6c63326c365a554e68626e5a6863796b37624756304947646862575654644746305a54306963484a6c646d6c6c6479497363324e76636d55394d43786d6247467a61454a685932746e636d3931626d5139495445735a6d786863326846626d52556157316c5054413759323975633351675a6d78686332684564584a6864476c76626a30784d44413762475630494756346347787663326c76626c4268636e52705932786c637a31625853786c6548427362334e70623235546447467964465270625755394d44746a6232357a6443426c6548427362334e706232354564584a6864476c76626a30314d444137624756304948427359586c6c636a313765446f784f4463754e5378354f6a45344e7934314c4864705a48526f4f6a49314c47686c6157646f64446f794e53787a6347566c5a446f316654746a6232357a64434277624746355a584a5463484a7064475539573173774c4445734d5377784c4442644c4673784c4441734d5377774c4446644c4673784c4445734d4377784c4446644c4673774c4445734d5377784c444264585378776158686c62464e70656d553963477868655756794c6e64705a48526f4c7a55735a57356c62586c536233647a505455735a57356c62586c446232787a505445784c4756755a57313556326c6b644767394d5455735a57356c62586c495a576c6e614851394d5455735a57356c62586c546347466a6157356e505445794f32786c6443426c626d56746157567a505674644c4756755a5731355533426c5a5751394e53786c626d5674655552766432355464475677505445774c4756755a57313552476c795a574e3061573975505445735a57356c62586c4e62335a6c51323931626e51394d44746a6232357a644342745958684e62335a6c51323931626e51394d544137624756304947786863335246626d567465553176646d5539524746305a5335756233636f4b53786c626d567465553176646d564a626e526c636e5a68624430314d444173596e567362475630637a316258537869645778735a5852546347566c5a4430744e53786a5957355461473976644430684d43787a614739766445526c62474635505455774d43786962323169637a316258537869623231695533426c5a5751394d5378696232316952484a7663456c7564475679646d46735054466c4d79787359584e30516d3974596b5279623341394d43786a5a57786c596e4a6864476c76626b4a7662574a7a505674644c474e6c62475669636d463061573975516d3974596c4e775a57566b505449736247467a64454e6c62475669636d46306157397552484a76634430774c474e6c62475669636d46306157397552484a7663456c7564475679646d467350544d774d44746a6232357a6443426a62327876636e4d395779496a526b59774d44417749697769497a4177526b59774d43497349694d774d444177526b59694c43496a526b5a47526a41774969776949305a47526b5a4752694a644f32786c644342306233566a61464e3059584a3057443175645778734c48527664574e6f55335268636e52556157316c50573531624777736247467a6446527664574e6f57443175645778734c476c7a52484a685a326470626d6339495445375a6e567559335270623234676157357064476c6862476c365a5556755a5731705a584d6f4b58746c626d56746157567a505674644f325a76636968735a5851675a5430774f3255384e54746c4b7973705a6d39794b47786c6443423050544137644477784d5474304b7973705a57356c62576c6c6379357764584e6f4b4874344f6a49334b6e51724d7a417365546f794e79706c4b7a55774c4864705a48526f4f6a45314c47686c6157646f64446f784e53786862476c325a546f684d48307066575a31626d4e306157397549476c756158527059577870656d56466548427362334e706232346f4b58746c6548427362334e706232355159584a3061574e735a584d39573130375a6d39794b47786c6443426c505441375a5477304f3255724b796c6d6233496f62475630494851394d44743050445537644373724b576c6d4b44453950543177624746355a584a5463484a70644756625a5631626446307065324e76626e4e30494745394d69704e5958526f4c6e4a68626d5276625367704b6b31686447677555456b73615430314d4373314d43704e5958526f4c6e4a68626d5276625367704f3256346347787663326c76626c4268636e52705932786c6379357764584e6f4b4874344f6e427359586c6c636935344b33517163476c345a5778546158706c4b3342706547567355326c365a5338794c486b3663477868655756794c6e6b725a5370776158686c62464e70656d557263476c345a5778546158706c4c7a4973646e6736545746306143356a62334d6f59536b71615378326554704e5958526f4c6e4e70626968684b5370704c47397759574e7064486b364d583070665756346347787663326c76626c4e3059584a3056476c745a5431455958526c4c6d35766479677066575a31626d4e306157397549484a6c63325630523246745a5367706532646862575654644746305a5430696347786865576c755a79497363477868655756794c6e67394d5467774c48427359586c6c63693535505451774d433177624746355a584975614756705a3268304c484e6a62334a6c50544173596e567362475630637a31625853786962323169637a31625853786a5a57786c596e4a6864476c76626b4a7662574a7a505674644c4756346347787663326c76626c4268636e52705932786c637a31625853786c626d567465555270636d566a64476c76626a30784c4756755a573135545739325a554e7664573530505441736247467a644556755a573135545739325a5431455958526c4c6d3576647967704c4756755a573135545739325a556c7564475679646d4673505455774d43786d6247467a61454a685932746e636d3931626d5139495445736157357064476c6862476c365a5556755a5731705a584d6f4b5831735a58516761325635637a31376654746d6457356a64476c7662694231634752686447556f4b5874705a6967695a3246745a5539325a584969495430395a3246745a564e305958526c6648786c626d56746157567a4c6d56325a584a354b43686c505434685a53356862476c325a536b704b5874705a69676963484a6c646d6c6c647949395054316e5957316c55335268644755704f325673633255676157596f496d646862575650646d5679496a30395057646862575654644746305a53596d5a57356c62576c6c6379356c646d56796553676f5a54302b4957557559577870646d55704b536c3763477868655756794c6e6b394d7a417363477868655756794c6e67725058427359586c6c6369357a6347566c5a43706c626d567465555270636d566a64476c766269776f63477868655756794c6e677263477868655756794c6e64705a48526f506a30304d4442386648427359586c6c63693534504430774b53596d4b4756755a57313552476c795a574e30615739754b6a30744d537877624746355a5849756544314e5958526f4c6d3168654367774c4531686447677562576c754b48427359586c6c636935344c4451774d433177624746355a58497564326c6b644767704b53786d6247467a61454a685932746e636d3931626d5139495441735a6d786863326846626d52556157316c5055526864475575626d39334b436b724d5441774b5474735a5851675a5431455958526c4c6d3576647967704f326c6d4b4755746247467a64454e6c62475669636d46306157397552484a766344356a5a57786c596e4a6864476c76626b52796233424a626e526c636e5a686243596d54574630614335795957356b6232306f4b5477754d696c3762475630494851395932397362334a7a57303168644767755a6d78766233496f54574630614335795957356b6232306f4b53706a62327876636e4d75624756755a33526f4b563037593256735a574a795958527062323543623231696379357764584e6f4b4874344f6e427359586c6c636935344b33427359586c6c6369353361575230614338794c486b3663477868655756794c6e6b7263477868655756794c6d686c6157646f644378336157523061446f324c47686c6157646f64446f324c474e76624739794f6e52394b53787359584e30513256735a574a795958527062323545636d397750575639593256735a574a79595852706232354362323169637a316a5a57786c596e4a6864476c76626b4a7662574a7a4c6d5a706248526c6369676f5a54302b5a533535504451774d436b704c474e6c62475669636d463061573975516d3974596e4d755a6d39795257466a6143676f5a54302b5a5335354b7a316a5a57786c596e4a6864476c76626b4a7662574a546347566c5a436b704c475a7359584e6f516d466a61326479623356755a43596d524746305a5335756233636f4b54356d6247467a614556755a4652706257556d4a69686d6247467a61454a685932746e636d3931626d51394954457066575673633255676157596f496e427359586c70626d6369505430395a3246745a564e305958526c4b5874725a586c7a4c6b4679636d39335447566d6443596d63477868655756794c6e672b4d43596d4b48427359586c6c636935344c543177624746355a5849756333426c5a5751704c47746c65584d7551584a79623364536157646f6443596d63477868655756794c6e67384e4441774c58427359586c6c63693533615752306143596d4b48427359586c6c636935344b7a3177624746355a5849756333426c5a5751704f32786c6443426c5055526864475575626d39334b436b376157596f5a53317359584e305257356c62586c4e62335a6c506d56755a573135545739325a556c7564475679646d46734b5874735a5851676444314e5958526f4c6d3170626967754c69356c626d56746157567a4c6d5a706248526c6369676f5a54302b5a53356862476c325a536b704c6d31686343676f5a54302b5a5335344b536b704f79684e5958526f4c6d3168654367754c69356c626d56746157567a4c6d5a706248526c6369676f5a54302b5a53356862476c325a536b704c6d31686343676f5a54302b5a5335344b32557564326c6b644767704b536b725a57356c62586c546347566c5a44347a4e7a416d4a6a45395054316c626d567465555270636d566a64476c76626e78386443316c626d567465564e775a57566b50444d774a6959744d543039505756755a57313552476c795a574e30615739754b53596d4b4756755a57313552476c795a574e30615739754b6a30744d53786c626d567465553176646d564462335675644430354b53786c626d567465553176646d564462335675644373724c4756755a573135545739325a554e7664573530506a30784d44386f5a57356c62576c6c6379356d62334a4659574e6f4b43686c505435375a53356862476c325a53596d4b475575655373395a57356c62586c45623364755533526c6343786c4c6e6b725a53356f5a576c6e6148512b4e4441774a69596f5a3246745a564e305958526c50534a6e5957316c54335a6c636949736157357064476c6862476c365a5556346347787663326c76626967704b536c394b536b735a57356c62586c4e62335a6c51323931626e51394d436b365a57356c62576c6c6379356d62334a4659574e6f4b43686c505435375a53356862476c325a53596d4b475575654373395a57356c62586c546347566c5a43706c626d567465555270636d566a64476c7662696c394b536b736247467a644556755a573135545739325a54316c66576c6d4b4756755a5731705a584d755a6d39795257466a6143676f5a54302b6532557559577870646d556d4a6e427359586c6c63693534504755756543746c4c6e64705a48526f4a695a77624746355a58497565437477624746355a58497564326c6b6447672b5a5335344a695a77624746355a5849756554786c4c6e6b725a53356f5a576c6e6148516d4a6e427359586c6c636935354b33427359586c6c6369356f5a576c6e6148512b5a5335354a69596f5a3246745a564e305958526c50534a6e5957316c54335a6c636949736157357064476c6862476c365a5556346347787663326c76626967704b5830704b537869645778735a58527a50574a316247786c64484d755a6d6c73644756794b43686c5054356c4c6e6b2b4d436b704c474a316247786c64484d755a6d39795257466a6143676f5a54302b5a5335354b7a3169645778735a5852546347566c5a436b704c474a316247786c64484d39596e5673624756306379356d615778305a58496f4b475539506e74735a585167644430684d5474795a585231636d34675a57356c62576c6c6379356d62334a4659574e6f4b436868505435375953356862476c325a53596d5a533534506d45756543596d5a53353450474575654374684c6e64705a48526f4a695a6c4c6e6b2b595335354a695a6c4c6e6b38595335354b324575614756705a3268304a69596f5953356862476c325a5430684d53787a593239795a5373394d544173644430684d436c394b536b73495852394b536b735a53317359584e30516d3974596b52796233412b596d3974596b52796233424a626e526c636e5a686243596d54574630614335795957356b6232306f4b5477754d4455706532786c64434230505756755a5731705a584d755a6d6c73644756794b43686c5054356c4c6d467361585a6c4b536b376157596f644335735a57356e6447672b4d436c3762475630494745396446744e5958526f4c6d5a73623239794b45316864476775636d46755a4739744b436b71644335735a57356e6447677058547469623231696379357764584e6f4b4874344f6d4575654374684c6e64705a48526f4c7a4973655470684c6e6b725953356f5a576c6e6148517364326c6b644767364e69786f5a576c6e614851364e6e30704c477868633352436232316952484a766344316c6658316962323169637a3169623231696379356d615778305a58496f4b475539506d5575655477304d4441704b537869623231696379356d62334a4659574e6f4b43686c5054356c4c6e6b7250574a7662574a546347566c5a436b704c474a7662574a7a4c6d5a76636b56685932676f4b475539506e746c4c6e672b63477868655756794c6e676d4a6d557565447877624746355a58497565437477624746355a58497564326c6b6447676d4a6d557565543577624746355a5849756553596d5a5335355048427359586c6c636935354b33427359586c6c6369356f5a576c6e6148516d4a69686e5957316c5533526864475539496d646862575650646d567949697870626d6c30615746736158706c525868776247397a615739754b436b7066536b704c4756755a5731705a584d755a585a6c636e6b6f4b4755395069466c4c6d467361585a6c4b536b6d4a69686e5957316c5533526864475539496d646862575650646d567949696c3966575673633255676157596f5a5868776247397a615739755547467964476c6a6247567a4c6d786c626d6430614434774b58746a6232357a6443426c505368455958526c4c6d3576647967704c5756346347787663326c76626c4e3059584a3056476c745a536b764e5441774f32552b5054452f5a5868776247397a615739755547467964476c6a6247567a505674644f6d56346347787663326c76626c4268636e52705932786c6379356d62334a4659574e6f4b43683050543537644335344b7a31304c6e5a344b6967784c7a59774b5378304c6e6b7250585175646e6b714b4445764e6a41704c4851756233426859326c30655430784c5756394b536c3966575a31626d4e3061573975494752795958636f4b5874705a69686a644867755a6d6c7362464e306557786c5053496a4d4441774969786a644867755a6d6c7362464a6c5933516f4d4377774c474e68626e5a6863793533615752306143786a5957353259584d75614756705a3268304b53786a644867755a6d6c7362464e306557786c50575a7359584e6f516d466a61326479623356755a443869497a4177526b59774d43493649694d774d4441694c474e306543356d61577873556d566a644368765a6d5a7a5a5852594c47396d5a6e4e6c64466b735a3246745a564e70656d55735a3246745a564e70656d55704c474e306543357a59585a6c4b436b73593352344c6e52795957357a624746305a5368765a6d5a7a5a5852594c47396d5a6e4e6c64466b704c474e306543357a593246735a53687a593246735a555a68593352766369787a593246735a555a685933527663696b73496d646862575650646d5679496945395057646862575654644746305a5878385a57356c62576c6c6379356c646d56796553676f5a54302b4957557559577870646d55704b5878384d443039505756346347787663326c76626c4268636e52705932786c637935735a57356e644767705a6d39794b47786c6443426c505441375a5477304f3255724b796c6d6233496f62475630494851394d44743050445537644373724b54453950543177624746355a584a5463484a70644756625a5631626446306d4a69686a644867755a6d6c7362464e306557786c5053496a4d444247526a41774969786a644867755a6d6c7362464a6c5933516f63477868655756794c6e6772644370776158686c62464e70656d557363477868655756794c6e6b725a5370776158686c62464e70656d557363476c345a5778546158706c4c4842706547567355326c365a536b73593352344c6e4e30636d39725a564e306557786c5053496a4d444247526a41774969786a6448677562476c755a5664705a48526f505334314c334e6a5957786c526d466a644739794c474e306543357a64484a76613256535a574e304b48427359586c6c636935344b33517163476c345a5778546158706c4c48427359586c6c636935354b32557163476c345a5778546158706c4c4842706547567355326c365a5378776158686c62464e70656d55704b5473695a3246745a5539325a584969505430395a3246745a564e305958526c4a6959685a57356c62576c6c6379356c646d56796553676f5a54302b4957557559577870646d55704b53596d5a5868776247397a615739755547467964476c6a6247567a4c6d786c626d6430614434774a695a6c6548427362334e706232355159584a3061574e735a584d755a6d39795257466a6143676f5a54302b65324e306543356d61577873553352356247553959484a6e596d456f4d4377674d6a55314c4341774c43416b653255756233426859326c30655830705943786a644867755a6d6c7362464a6c5933516f5a5335344c5842706547567355326c365a5338794c475575655331776158686c62464e70656d55764d6978776158686c62464e70656d557363476c345a5778546158706c4b53786a64486775633352796232746c553352356247553959484a6e596d456f4d4377674d6a55314c4341774c43416b653255756233426859326c30655830705943786a6448677562476c755a5664705a48526f505334314c334e6a5957786c526d466a644739794c474e306543357a64484a76613256535a574e304b475575654331776158686c62464e70656d55764d69786c4c6e6b7463476c345a5778546158706c4c7a497363476c345a5778546158706c4c4842706547567355326c365a536c394b536b73496e427359586c70626d6369505430395a3246745a564e305958526c4a69596f593352344c6d5a706247785464486c735a54306964326870644755694c4756755a5731705a584d755a6d39795257466a6143676f5a54302b6532557559577870646d556d4a6d4e306543356d61577873556d566a6443686c4c6e67735a5335354c47557564326c6b644767735a53356f5a576c6e6148517066536b704c474e306543356d61577873553352356247553949694d774d455a474d4441694c474a316247786c64484d755a6d39795257466a6143676f5a54302b593352344c6d5a70624778535a574e304b4755756543786c4c6e6b735a533533615752306143786c4c6d686c6157646f64436b704b53786a644867755a6d6c7362464e306557786c50534a3361476c305a534973596d3974596e4d755a6d39795257466a6143676f5a54302b593352344c6d5a70624778535a574e304b4755756543786c4c6e6b735a533533615752306143786c4c6d686c6157646f64436b704b53786a644867755a6d6c7362464e306557786c50534a3361476c305a534973593352344c6d5a76626e5139496a45326348676751584a70595777694c474e306543356d61577873564756346443687a593239795a5377784d4377794d436b704c434a6e5957316c54335a6c636949395054316e5957316c553352686447556d4a6d56755a5731705a584d755a585a6c636e6b6f4b4755395069466c4c6d467361585a6c4b536b6d4a6d4e6c62475669636d463061573975516d3974596e4d755a6d39795257466a6143676f5a54302b65324e306543356d6157787355335235624755395a53356a623278766369786a644867755a6d6c7362464a6c5933516f5a5335344c4755756553786c4c6e64705a48526f4c475575614756705a3268304b5830704b53776963484a6c646d6c6c647949395054316e5957316c553352686447556d4a69686a644867755a6d6c7362464e306557786c50534a3361476c305a534973593352344c6d5a76626e5139496a45326348676751584a70595777694c474e306543356d6157787356475634644367694d544d7a4e794244556c55675230464e525349734d544d774c4445314d436b73593352344c6d5a70624778555a5868304b434a77636d567a6379427a6347466a5a534276636942306233566a614342306279427a64474679644349734f5441734d6a55774b536b73496d646862575650646d5679496945395057646862575654644746305a5878385a57356c62576c6c6379356c646d56796553676f5a54302b4957557559577870646d55704b5878384d434539505756346347787663326c76626c4268636e52705932786c637935735a57356e644768386643686a644867755a6d6c7362464e306557786c50534a3361476c305a534973593352344c6d5a76626e5139496a45326348676751584a70595777694c474e306543356d615778735647563464436769523246745a534250646d5679496977784e5441734d6a41774b536b73593352344c6e4a6c63335276636d556f4b58316d6457356a64476c766269426e5957316c5447397663436770653356775a4746305a5367704c4752795958636f4b5378795a5846315a584e30515735706257463061573975526e4a686257556f5a3246745a5578766233417066575276593356745a5735304c6d466b5a4556325a57353054476c7a644756755a58496f496d746c65575276643234694c43686c50543537613256356331746c4c6d4e765a475664505345774c434a546347466a5a5349395054316c4c6d4e765a47556d4a69676963484a6c646d6c6c647949395054316e5957316c553352686447563866434a6e5957316c54335a6c636949395054316e5957316c553352686447552f636d567a5a5852485957316c4b436b36496e427359586c70626d6369505430395a3246745a564e305958526c4a695a6a59573554614739766443596d4b474a316247786c64484d756348567a6143683765447077624746355a58497565437477624746355a58497564326c6b644767764d6978354f6e427359586c6c636935354c4864705a48526f4f6a5973614756705a3268304f6a5a394b53786a5957355461473976644430684d53787a5a5852556157316c623356304b43676f4b54302b593246755532687662335139495441704c484e6f623239305247567359586b704b536c394b536b735a47396a6457316c626e51755957526b52585a6c626e524d61584e305a57356c6369676961325635645841694c43686c505435725a586c7a573255755932396b5a563039495445704b53786b62324e3162575675644335685a475246646d5675644578706333526c626d56794b434a306233566a61484e3059584a304969776f5a54302b6532557563484a6c646d56756445526c5a6d46316248516f4b5378306233566a61464e3059584a305744316c4c6e527664574e6f5a584e624d463075593278705a5735305743787359584e3056473931593268595058527664574e6f55335268636e52594c48527664574e6f55335268636e52556157316c5055526864475575626d39334b436b7361584e45636d466e5a326c755a7a30684d53776963484a6c646d6c6c647949685054316e5957316c553352686447556d4a694a6e5957316c54335a6c636949685054316e5957316c553352686447563866484a6c63325630523246745a53677066536b704c475276593356745a5735304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f625739325a5349734b475539506e74705a69686c4c6e42795a585a6c626e52455a575a68645778304b436b73496e427359586c70626d6369505430395a3246745a564e305958526c4a695a6c4c6e527664574e6f5a584d75624756755a33526f506a417065326c7a52484a685a326470626d63394954413762475630494851395a5335306233566a6147567a577a42644c6d4e7361575675644667376157596f626e56736243453950577868633352556233566a6146677065336470626d52766479353261584e315957785761575633634739796448783864326c755a4739334c474e68626e5a686379356e5a585243623356755a476c755a304e736157567564464a6c5933516f4b5474735a5851675a5430304d4441765a3246745a564e70656d55714b4851746247467a6446527664574e6f57436b3763477868655756794c6e67725057557363477868655756794c6e673954574630614335745958676f4d43784e5958526f4c6d317062696877624746355a584975654377304d44417463477868655756794c6e64705a48526f4b536c396247467a6446527664574e6f57443130665830704b53786b62324e3162575675644335685a475246646d5675644578706333526c626d56794b434a306233566a614756755a4349734b475539506e746c4c6e42795a585a6c626e52455a575a68645778304b436b73496e427359586c70626d6369505430395a3246745a564e305958526c4a69596861584e45636d466e5a326c755a79596d59324675553268766233516d4a6b526864475575626d39334b436b7464473931593268546447467964465270625755384d6a41774a69596f596e5673624756306379357764584e6f4b4874344f6e427359586c6c636935344b33427359586c6c6369353361575230614338794c486b3663477868655756794c6e6b7364326c6b644767364e69786f5a576c6e614851364e6e30704c474e68626c4e6f62323930505345784c484e6c64465270625756766458516f4b4367705054356a5957355461473976644430684d436b7363326876623352455a57786865536b704c48527664574e6f55335268636e525950573531624777736247467a6446527664574e6f57443175645778734c48527664574e6f55335268636e52556157316c505735316247777361584e45636d466e5a326c755a7a30684d5830704b53786e5957316c54473976634367705043397a59334a706348512b44516f384c324a765a486b2b44516f384c3268306257772b0000000000000000000000000000000000000000000000000000000000000000042a646174613a696d6167652f706e673b6261736536342c6956424f5277304b47676f414141414e53556845556741414177634141414d4841674d41414141524e735063414141414356424d564555412f7741414141442f2f2f2b6c6c736b304141414377456c455156523441653361415162444d4253413466515176552b504d4378466a3544373541684433696c6e4b635959594e504539324e474b522b51394c303054354c5750485133424151454241534547516c3752443069636e6e73675941774f41456835364e6c42415345475168524f7945434165464c434f344c434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434356363766562f6a37503637776349434167494341674943416749434167494341674943416749434167493567734943416749434167494341674943416749434c62434269416749434167494341674943416749434167494341674943416749434459436b4e41514542415145424151454241514542417342574767494341674943416749434167494341674943416749434167494341594c364167494341674943416749434167494341674f414c786a67454241514542415145424151454241514542415145424151454241514538775545424151454241514542415145424151454246746843416749434167494341674943416749434167494341674943416749434d4f4567494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674c436c425145424151454241634542342f63684943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943416749434167494341674943435561416749434167494341674f474167494341674943416749434167494341674943416749434167494341674943416749434167496b785075365778465145424151454241754152685338763742774542415145424165455368503736667370412b4167424151454241634831487745424151454241634830487745424151454241514542415548534a4430424c57707873724778372f6341414141415355564f524b35435949493d00000000000000000000000000000000000000000000