0 txs
0 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
basicMessageMaxTextLengthBytes
viewfunction basicMessageMaxTextLengthBytes() view returns (uint16)
contractImage
purefunction contractImage() pure returns (string)
contractURI
purefunction contractURI() pure returns (string)
fancyMessageIdToTotalMessageIdMapping
viewfunction fancyMessageIdToTotalMessageIdMapping(uint256) view returns (uint256)
fancyMessageMaxTextLengthBytes
viewfunction fancyMessageMaxTextLengthBytes() view returns (uint16)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getFancyMessageFromFancyMessageId
viewfunction getFancyMessageFromFancyMessageId(uint256 fancyMessageId) view returns (tuple)
getFancyMessageFromMessageId
viewfunction getFancyMessageFromMessageId(uint256 messageId) view returns (tuple)
getFancyMessagePrice
purefunction getFancyMessagePrice(string text) pure returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
messageIdToFancyMessageMapping
viewfunction messageIdToFancyMessageMapping(uint256) view returns (bool isRadialGradient, uint24 textColor, uint8 fontSize, uint16 linearGradientAngleDeg, address sender, address recipient, string text, uint256 sentAt, uint256 messageId, uint256 inReplyToMessageId)
name
viewfunction name() view returns (string)
oneIndexedFancyMessageIdCounter
viewfunction oneIndexedFancyMessageIdCounter() view returns (uint256 _value)
oneIndexedTotalMessageIdCounter
viewfunction oneIndexedTotalMessageIdCounter() view returns (uint256 _value)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenImage
viewfunction tokenImage(uint256 messageId, uint16 imageWidth) view returns (string)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 messageId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
tributeToMySweetCat
purefunction tributeToMySweetCat() pure returns (string)
approve
nonpayablefunction approve(address to, uint256 tokenId)
createBasicMessage
nonpayablefunction createBasicMessage(string text, address recipient, uint256 inReplyToMessageId) returns (uint256)
createFancyMessage
payablefunction createFancyMessage(string text, uint24 textColor, bool isRadialGradient, uint8 fontSize, uint16 linearGradientAngleDeg, uint24[10] gradientColors, address recipient, uint256 inReplyToMessageId) payable returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw()
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
CreateMessage
event CreateMessage(string text, uint24 textColor, bool isRadialGradient, uint8 fontSize, uint16 linearGradientAngleDeg, uint24[10] gradientColors, uint256 indexed messageId, uint256 inReplyToMessageId, address indexed sender, address recipient, uint256 sentAt, uint256 indexed fancyMessageId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604080518082018252600f81526e466f7265766572204d65737361676560881b602080830191825283518085019094526004845263464d534760e01b90840152815191929162000065916000916200012b565b5080516200007b9060019060208401906200012b565b5050506200009862000092620000cc60201b60201c565b620000d0565b620000af60076200012260201b62001de81760201c565b620000c660086200012260201b62001de81760201c565b62000218565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80546001019055565b8280546200013990620001e7565b90600052602060002090601f0160209004810192826200015d5760008555620001a8565b82601f106200017857805160ff1916838001178555620001a8565b82800160010185558215620001a8579182015b82811115620001a85782518255916020019190600101906200018b565b50620001b6929150620001ba565b5090565b5b80821115620001b65760008155600101620001bb565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620001fc57607f821691505b60208210811415620002125762000212620001d1565b50919050565b615dce80620002286000396000f3fe6080604052600436106102045760003560e01c8063715018a611610118578063c87b56dd116100a0578063e985e9c51161006f578063e985e9c514610628578063ea0e8dc114610671578063eaa42b1214610684578063f2fde38b1461069a578063f8ff76d1146106ba57610204565b8063c87b56dd146105a6578063c8faa9de146105c6578063cc2f5c8a146105e6578063e8a3d4851461061357610204565b806395d89b41116100e757806395d89b4114610511578063a22cb46514610526578063b41dc6b514610546578063b88d4fde14610566578063bb14e6971461058657610204565b8063715018a6146104b45780637bbf4b6f146104c95780638da5cb5b146104de5780638eab84ee146104fc57610204565b80632b6aebcb1161019b5780634462a2da1161016a5780634462a2da146104105780634f6ccce71461043d57806361e8e2951461045d5780636352211e1461047457806370a082311461049457610204565b80632b6aebcb146103995780632f745c59146103bb5780633ccfd60b146103db57806342842e0e146103f057610204565b80631063f366116101d75780631063f3661461030a57806318160ddd1461034057806323b872dd1461036257806329629ba51461038257610204565b806301ffc9a71461026357806306fdde0314610299578063081812fc146102bb578063095ea7b3146102e8575b34801561021057600080fd5b50600036606061025783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508291506106d59050565b50915050805190602001f35b34801561026f57600080fd5b5061028361027e366004613c08565b61078f565b6040516102909190613c33565b60405180910390f35b3480156102a557600080fd5b506102ae6107e1565b6040516102909190613c9f565b3480156102c757600080fd5b506102db6102d6366004613cc1565b610873565b6040516102909190613cfc565b3480156102f457600080fd5b50610308610303366004613d1e565b6108b6565b005b34801561031657600080fd5b5061032a610325366004613cc1565b61093c565b6040516102909a99989796959493929190613d7f565b34801561034c57600080fd5b50610355610a39565b6040516102909190613e1b565b34801561036e57600080fd5b5061030861037d366004613e29565b610a55565b34801561038e57600080fd5b506007546103559081565b3480156103a557600080fd5b506103ae610a86565b6040516102909190613e79565b3480156103c757600080fd5b506103556103d6366004613d1e565b610a96565b3480156103e757600080fd5b50610308610b66565b3480156103fc57600080fd5b5061030861040b366004613e29565b610c2f565b34801561041c57600080fd5b5061043061042b366004613cc1565b610c4a565b6040516102909190613fb6565b34801561044957600080fd5b50610355610458366004613cc1565b610e04565b34801561046957600080fd5b506008546103559081565b34801561048057600080fd5b506102db61048f366004613cc1565b610e51565b3480156104a057600080fd5b506103556104af366004613fc7565b610e86565b3480156104c057600080fd5b50610308610eca565b3480156104d557600080fd5b506102ae610f00565b3480156104ea57600080fd5b506006546001600160a01b03166102db565b34801561050857600080fd5b506102ae610f20565b34801561051d57600080fd5b506102ae611064565b34801561053257600080fd5b50610308610541366004613ffb565b611073565b34801561055257600080fd5b50610430610561366004613cc1565b611082565b34801561057257600080fd5b5061030861058136600461411a565b6110a2565b34801561059257600080fd5b506103556105a13660046141e9565b6110da565b3480156105b257600080fd5b506102ae6105c1366004613cc1565b6110fd565b3480156105d257600080fd5b506102ae6105e1366004614245565b611642565b3480156105f257600080fd5b50610355610601366004613cc1565b600a6020526000908152604090205481565b34801561061f57600080fd5b506102ae6118dc565b34801561063457600080fd5b50610283610643366004614278565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61035561067f3660046142ea565b611a3e565b34801561069057600080fd5b506103ae61280081565b3480156106a657600080fd5b506103086106b5366004613fc7565b611d8f565b3480156106c657600080fd5b506103556106d53660046143bc565b82516000908490158015906106fb57506106f26002612800614425565b61ffff16815111155b6107205760405162461bcd60e51b815260040161071790614476565b60405180910390fd5b600061072b60085490565b905061073b600880546001019055565b83158061074757508084105b6107635760405162461bcd60e51b8152600401610717906144ba565b61076b613a1b565b610783876000806010602d86888c338f426000611df1565b509150505b9392505050565b60006001600160e01b031982166380ac58cd60e01b14806107c057506001600160e01b03198216635b5e139f60e01b145b806107db57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546107f0906144e0565b80601f016020809104026020016040519081016040528092919081815260200182805461081c906144e0565b80156108695780601f1061083e57610100808354040283529160200191610869565b820191906000526020600020905b81548152906001019060200180831161084c57829003601f168201915b5050505050905090565b600061087e82611e52565b61089a5760405162461bcd60e51b815260040161071790614553565b506000908152600460205260409020546001600160a01b031690565b60006108c182610e51565b9050806001600160a01b0316836001600160a01b031614156108f55760405162461bcd60e51b8152600401610717906145a1565b336001600160a01b038216148061091157506109118133610643565b61092d5760405162461bcd60e51b81526004016107179061460b565b6109378383611e6f565b505050565b60096020526000908152604090206001810154600282015460038301805460ff80851695610100860462ffffff1695640100000000810490921694600160281b830461ffff1694600160381b9093046001600160a01b0390811694911692906109a4906144e0565b80601f01602080910402602001604051908101604052809291908181526020018280546109d0906144e0565b8015610a1d5780601f106109f257610100808354040283529160200191610a1d565b820191906000526020600020905b815481529060010190602001808311610a0057829003601f168201915b505050505090806004015490806005015490806006015490508a565b60006001610a4660075490565b610a50919061461b565b905090565b610a5f3382611edd565b610a7b5760405162461bcd60e51b815260040161071790614680565b610937838383611f7e565b610a936002612800614425565b81565b6000610aa183610e86565b8210610abf5760405162461bcd60e51b8152600401610717906146cf565b6000610ac9610a39565b9050600060015b828111610b4d576000818152600a6020526040902054610aef81611e52565b8015610b145750610aff81610e51565b6001600160a01b0316876001600160a01b0316145b15610b3a5785831415610b2c5793506107db92505050565b82610b36816146df565b9350505b5080610b45816146df565b915050610ad0565b5060405162461bcd60e51b815260040161071790614745565b6006546001600160a01b03163314610b905760405162461bcd60e51b815260040161071790614787565b60004711610bb05760405162461bcd60e51b8152600401610717906147cb565b6000336001600160a01b031647604051610bc9906147db565b60006040518083038185875af1925050503d8060008114610c06576040519150601f19603f3d011682016040523d82523d6000602084013e610c0b565b606091505b5050905080610c2c5760405162461bcd60e51b81526004016107179061483d565b50565b610937838383604051806020016040528060008152506110a2565b610c52613a3a565b610c5b82611e52565b610c775760405162461bcd60e51b815260040161071790614871565b6000828152600960205260409081902081516102a0810190925281610160810182600a8282826020028201916000905b82829054906101000a900462ffffff1662ffffff1681526020019060030190602082600201049283019260010382029150808411610ca757505050928452505050600182015460ff80821615156020840152610100820462ffffff1660408401526401000000008204166060830152600160281b810461ffff166080830152600160381b90046001600160a01b0390811660a083015260028301541660c082015260038201805460e090920191610d5d906144e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d89906144e0565b8015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b5050505050815260200160048201548152602001600582015481526020016006820154815250509050919050565b6000610e0e610a39565b8210610e2c5760405162461bcd60e51b8152600401610717906148a5565b600a6000610e3b8460016148b5565b8152602001908152602001600020549050919050565b6000818152600260205260408120546001600160a01b0316806107db5760405162461bcd60e51b815260040161071790614913565b60006001600160a01b038216610eae5760405162461bcd60e51b81526004016107179061496a565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610ef45760405162461bcd60e51b815260040161071790614787565b610efe60006120a0565b565b60606040518060c0016040528060828152602001615ca260829139905090565b60408051608080820183526001828401908152600360fc1b60608481019190915290835283518085018552601781527f0a0a202020466f72657665720a2020204d657373616765000000000000000000602082810191909152808501919091528451610140810186526237386d815262513b7481830152626a3e75818701526281427081840152629748658185015262a9515660a082015262b65e4360c082015262bd6f2d60e082015262bd831361010082015262b4991361012082015285518087018752600f81526e0dad2c8c8d8cadac2e4c6d05ccae8d608b1b81840152865194850187526004858801818152630313230360e41b87870152865287518089019098528752630313530360e41b878401529184019590955290939161105d91849162ffffff91600091603c91839188916361edeec3916120f2565b9250505090565b6060600180546107f0906144e0565b61107e33838361240c565b5050565b61108a613a3a565b6000828152600a602052604090205461078881610c4a565b6110ac3383611edd565b6110c85760405162461bcd60e51b815260040161071790614680565b6110d4848484846124af565b50505050565b60006110ec826513a52453c00061497a565b61078890661f1d8957df30006148b5565b606061110882611e52565b6111245760405162461bcd60e51b815260040161071790614871565b60008281526009602052604080822081516102a08101928390529182906101608201908390600a908288855b82829054906101000a900462ffffff1662ffffff168152602001906003019060208260020104928301926001038202915080841161115057505050928452505050600182015460ff80821615156020840152610100820462ffffff1660408401526401000000008204166060830152600160281b810461ffff166080830152600160381b90046001600160a01b0390811660a083015260028301541660c082015260038201805460e090920191611206906144e0565b80601f0160208091040260200160405190810160405280929190818152602001828054611232906144e0565b801561127f5780601f106112545761010080835404028352916020019161127f565b820191906000526020600020905b81548152906001019060200180831161126257829003601f168201915b50505050508152602001600482015481526020016005820154815260200160068201548152505090506000604051806101800160405280735a06ceaa6a1446bca37ff622ca39ea055270110263e725f877876040518263ffffffff1660e01b81526004016112ed9190613e1b565b600060405180830381865af415801561130a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261133291908101906149f1565b8152602001735a06ceaa6a1446bca37ff622ca39ea055270110263a0c6d537876040518263ffffffff1660e01b815260040161136e9190613e1b565b600060405180830381865af415801561138b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b391908101906149f1565b81526020016113c4866104b0611642565b8152602001735a06ceaa6a1446bca37ff622ca39ea0552701102632ba67899876040518263ffffffff1660e01b81526004016114009190613e1b565b600060405180830381865af415801561141d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261144591908101906149f1565b81526020016114578460a001516124e2565b815260200161146984604001516124f8565b6040516020016114799190614a5b565b604051602081830303815290604052815260200161149b8460e001515161250a565b815283516020909101906114b69060005b60200201516124f8565b6040516020016114c69190614a5b565b60405160208183030381529060405281526020016114f484600001516001600a81106114ac576114ac614a72565b6040516020016115049190614a5b565b604051602081830303815290604052815260200161152684610100015161250a565b81526020017396194081c7e2f4b87a2dc685581015c8a9c1e825631d2220b88560e001516040518263ffffffff1660e01b81526004016115669190613c9f565b600060405180830381865af4158015611583573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115ab91908101906149f1565b81526020016115bb61280061250a565b9052604051625346f760e01b8152909150735a06ceaa6a1446bca37ff622ca39ea055270110290625346f7906115f5908490600401614ae0565b600060405180830381865af4158015611612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261163a91908101906149f1565b949350505050565b606061164d83611e52565b6116695760405162461bcd60e51b815260040161071790614871565b60008261ffff161180156116825750614e208261ffff16105b61169e5760405162461bcd60e51b815260040161071790614b1a565b60008381526009602052604080822081516102a08101928390529182906101608201908390600a908288855b82829054906101000a900462ffffff1662ffffff16815260200190600301906020826002010492830192600103820291508084116116ca57505050928452505050600182015460ff80821615156020840152610100820462ffffff1660408401526401000000008204166060830152600160281b810461ffff166080830152600160381b90046001600160a01b0390811660a083015260028301541660c082015260038201805460e090920191611780906144e0565b80601f01602080910402602001604051908101604052809291908181526020018280546117ac906144e0565b80156117f95780601f106117ce576101008083540402835291602001916117f9565b820191906000526020600020905b8154815290600101906020018083116117dc57829003601f168201915b5050505050815260200160048201548152602001600582015481526020016006820154815250509050600061184960048560056118369190614b2a565b6118409190614425565b61ffff1661250a565b9050600061185a8561ffff1661250a565b9050600060405180604001604052808381526020018481525090506000604051806040016040528061188b8a61250a565b81526020018660e0015181525090506118d08186604001518760200151886060015189608001518a600001518b61010001516118ca8d60a001516124e2565b8a6120f2565b98975050505050505050565b6060611a1a6040518060400160405280600f81526020016e466f7265766572204d65737361676560881b815250735a06ceaa6a1446bca37ff622ca39ea055270110263872db8896040518163ffffffff1660e01b8152600401600060405180830381865af4158015611952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261197a91908101906149f1565b611982610f20565b735a06ceaa6a1446bca37ff622ca39ea0552701102631fe88a836040518163ffffffff1660e01b8152600401600060405180830381865af41580156119cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f391908101906149f1565b604051602001611a069493929190614b72565b604051602081830303815290604052612607565b604051602001611a2a9190614c4a565b604051602081830303815290604052905090565b6000611a4a8a8a6110da565b3414611a685760405162461bcd60e51b815260040161071790614c77565b60008a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508251929350505015801590611ab65750805161280010155b611ad25760405162461bcd60e51b815260040161071790614476565b6000611add60085490565b9050611aed600880546001019055565b831580611af957508084105b611b155760405162461bcd60e51b8152600401610717906144ba565b6000611b2060075490565b9050611b30600780546001019055565b604080516102a081019091526000908061016081018a600a828261014080828437600081840152601f19601f82011690508083019250505050505081526020018c151581526020018d62ffffff1681526020018b60ff1681526020018a61ffff168152602001336001600160a01b03168152602001886001600160a01b031681526020018f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505042602080850191909152604080850189905260609094018b905287835260099052502081519192508291611c22908290600a613a9c565b5060208281015160018301805460408601516060870151608088015160a089015163ffffffff1990941695151563ffffff0019169590951761010062ffffff909316929092029190911766ffffff00000000191664010000000060ff9092169190910266ffff0000000000191617600160281b61ffff9094169390930292909217670100000000000000600160d81b031916600160381b6001600160a01b039384160217905560c08401516002840180546001600160a01b0319169190921617905560e08301518051611cfb9260038501920190613b35565b5061010082015160048201556101208201516005820155610140909101516006909101556000828152600a60205260409020839055611d3a338461276c565b611d7d8160e00151826040015183602001518460600151856080015186600001518761012001518861014001518960a001518a60c001518b61010001518d611df1565b50909c9b505050505050505050505050565b6006546001600160a01b03163314611db95760405162461bcd60e51b815260040161071790614787565b6001600160a01b038116611ddf5760405162461bcd60e51b815260040161071790614cca565b610c2c816120a0565b80546001019055565b80846001600160a01b0316877fed99d52927ca97164b0cc83882c0e0377d6dafa7f119e312b11ec9f5b565f52f8f8f8f8f8f8f8e8d8d604051611e3c99989796959493929190614d06565b60405180910390a4505050505050505050505050565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611ea482610e51565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611ee882611e52565b611f045760405162461bcd60e51b815260040161071790614ddc565b6000611f0f83610e51565b9050806001600160a01b0316846001600160a01b03161480611f4a5750836001600160a01b0316611f3f84610873565b6001600160a01b0316145b8061163a57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff1661163a565b826001600160a01b0316611f9182610e51565b6001600160a01b031614611fb75760405162461bcd60e51b815260040161071790614e32565b6001600160a01b038216611fdd5760405162461bcd60e51b815260040161071790614e83565b611fe8600082611e6f565b6001600160a01b038316600090815260036020526040812080546001929061201190849061461b565b90915550506001600160a01b038216600090815260036020526040812080546001929061203f9084906148b5565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606120fc613ba9565b61210789888861283f565b81526040805160e0810190915260a6808252615aec602083013960208281019190915260408051808201825260088152673b636f6c6f723a2360c01b928101929092528201526121556128a3565b61215d612c07565b6121668a612c27565b61216e612caa565b6040516020016121819493929190614e93565b60408051808303601f19018152919052606082015261219e612cca565b6040516020016121ae91906150c5565b60408051808303601f19018152918152608083019190915280518082018252601281527101e17b234bb1f1e3234bb1f333937b69010160751b60208083019190915260a084019190915281518083018352600881526653230ba329010160c51b8183015260c0840152815160608101909252602880835290615b929083013960e0820152602080820151825160405161235c9361224d93929101615204565b60408051808303601f190181529181528301516122698d6124f8565b60405160200161227a929190615204565b60408051808303601f19018152919052606084015160208f015161229d90612cea565b6040516020016122ae929190615204565b60408051601f1981840301815291905284600460200201518f600060200201516040516020016122df929190615204565b60408051808303601f190181529082905260a0870151909161230691908b90602001615204565b60408051808303601f1901815291905260c08701516123248c6130eb565b604051602001612335929190615204565b60408051808303601f190181529082905260e0890151611a0697969594939260200161521c565b6101008201528251602084810151604051612378939201615297565b60408051601f19818403018152918152610120830191825280518082018252600a8152691390179f1e17b9bb339f60b11b6020808301919091526101408501829052925161010085015192516123d594611a069492939101615377565b61016082018190526040516123ed91906020016153a4565b6040516020818303038152906040529150509998505050505050505050565b816001600160a01b0316836001600160a01b0316141561243e5760405162461bcd60e51b815260040161071790615406565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31906124a2908590613c33565b60405180910390a3505050565b6124ba848484611f7e565b6124c684848484613154565b6110d45760405162461bcd60e51b815260040161071790615465565b60606107db826001600160a01b03166014613252565b60606107db8262ffffff1660036133bd565b60608161252e5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156125585780612542816146df565b91506125519050600a83615475565b9150612532565b6000816001600160401b038111156125725761257261402e565b6040519080825280601f01601f19166020018201604052801561259c576020820181803683370190505b5090505b841561163a576125b160018361461b565b91506125be600a8661547d565b6125c99060306148b5565b60f81b8183815181106125de576125de614a72565b60200101906001600160f81b031916908160001a905350612600600a86615475565b94506125a0565b606081516000141561262757505060408051602081019091526000815290565b6000604051806060016040528060408152602001615c62604091399050600060038451600261265691906148b5565b6126609190615475565b61266b90600461497a565b9050600061267a8260206148b5565b6001600160401b038111156126915761269161402e565b6040519080825280601f01601f1916602001820160405280156126bb576020820181803683370190505b509050818152600183018586518101602084015b81831015612727576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f81168501518253506001016126cf565b60038951066001811461274157600281146127525761275e565b613d3d60f01b60011983015261275e565b603d60f81b6000198301525b509398975050505050505050565b6001600160a01b0382166127925760405162461bcd60e51b8152600401610717906154c3565b61279b81611e52565b156127b85760405162461bcd60e51b815260040161071790615507565b6001600160a01b03821660009081526003602052604081208054600192906127e19084906148b5565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6060600061284c83613492565b9050841561287c5780604051602001612865919061554f565b604051602081830303815290604052915050610788565b6128898461ffff1661250a565b81604051602001612865929190615586565b509392505050565b6060600073afd2667d8f94d44987d9a1feb8ed5f91f258036663ece9655f6040518163ffffffff1660e01b8152600401600060405180830381865af41580156128f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261291891908101906149f1565b9050600073cc9cd9fed2aa7f7b7e266eae0bb9bd106971871863508578456040518163ffffffff1660e01b8152600401600060405180830381865af4158015612965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261298d91908101906149f1565b9050600073cc9cd9fed2aa7f7b7e266eae0bb9bd106971871863f85c93fc6040518163ffffffff1660e01b8152600401600060405180830381865af41580156129da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a0291908101906149f1565b9050600073afd2667d8f94d44987d9a1feb8ed5f91f258036663faf65f216040518163ffffffff1660e01b8152600401600060405180830381865af4158015612a4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a7791908101906149f1565b9050600073cc9cd9fed2aa7f7b7e266eae0bb9bd10697187186323dec7106040518163ffffffff1660e01b8152600401600060405180830381865af4158015612ac4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612aec91908101906149f1565b9050600073cc9cd9fed2aa7f7b7e266eae0bb9bd106971871863d560b48c6040518163ffffffff1660e01b8152600401600060405180830381865af4158015612b39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b6191908101906149f1565b905060008684604051602001612b78929190615656565b604051602081830303815290604052905060008684604051602001612b9e9291906156df565b604051602081830303815290604052905060008684604051602001612bc49291906156ea565b6040516020818303038152906040529050828282604051602001612bea93929190615377565b604051602081830303815290604052995050505050505050505090565b60606040518060a0016040528060758152602001615d2460759139905090565b60606000612c3f612c3784613564565b60ff1661250a565b90506000612c4c846135f3565b905060008282604051602001612c63929190615776565b60405160208183030381529060405290508460ff16600e141561163a5780604051602001612c9191906157bc565b6040516020818303038152906040529050949350505050565b60606040518060800160405280604f8152602001615bba604f9139905090565b6060604051806080016040528060598152602001615c0960599139905090565b6060816000805b8251811015612d95576000838281518110612d0e57612d0e614a72565b01602001516001600160f81b0319169050601360f91b811415612d3d57612d366004846148b5565b9250612d82565b600f60fa1b6001600160f81b031982161415612d5e57612d366003846148b5565b601f60f91b6001600160f81b031982161415612d8257612d7f6003846148b5565b92505b5080612d8d816146df565b915050612cf1565b5080156130e3576000818351612dab91906148b5565b6001600160401b03811115612dc257612dc261402e565b6040519080825280601f01601f191660200182016040528015612dec576020820181803683370190505b5090506000805b84518110156130d857848181518110612e0e57612e0e614a72565b6020910101516001600160f81b031916601360f91b1415612f4b57601360f91b8383612e39816146df565b945081518110612e4b57612e4b614a72565b60200101906001600160f81b031916908160001a905350606160f81b8383612e72816146df565b945081518110612e8457612e84614a72565b60200101906001600160f81b031916908160001a905350606d60f81b8383612eab816146df565b945081518110612ebd57612ebd614a72565b60200101906001600160f81b031916908160001a905350600760fc1b8383612ee4816146df565b945081518110612ef657612ef6614a72565b60200101906001600160f81b031916908160001a905350603b60f81b8383612f1d816146df565b945081518110612f2f57612f2f614a72565b60200101906001600160f81b031916908160001a9053506130c6565b848181518110612f5d57612f5d614a72565b6020910101516001600160f81b031916600f60fa1b1415612ffa57601360f91b8383612f88816146df565b945081518110612f9a57612f9a614a72565b60200101906001600160f81b031916908160001a905350601b60fa1b8383612fc1816146df565b945081518110612fd357612fd3614a72565b60200101906001600160f81b031916908160001a905350601d60fa1b8383612ee4816146df565b84818151811061300c5761300c614a72565b6020910101516001600160f81b031916601f60f91b141561307057601360f91b8383613037816146df565b94508151811061304957613049614a72565b60200101906001600160f81b031916908160001a905350606760f81b8383612fc1816146df565b84818151811061308257613082614a72565b01602001516001600160f81b031916838361309c816146df565b9450815181106130ae576130ae614a72565b60200101906001600160f81b031916908160001a9053505b806130d0816146df565b915050612df3565b509095945050505050565b509192915050565b60606000806000806000806130ff886137f2565b9550955095509550955095506131148661250a565b61311d86613866565b61312686613866565b604051602001613138939291906157fc565b6040516020818303038152906040529650505050505050919050565b60006001600160a01b0384163b1561324757604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061319890339089908890889060040161582a565b6020604051808303816000875af19250505080156131d3575060408051601f3d908101601f191682019092526131d09181019061586f565b60015b61322d573d808015613201576040519150601f19603f3d011682016040523d82523d6000602084013e613206565b606091505b5080516132255760405162461bcd60e51b815260040161071790615465565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061163a565b506001949350505050565b6060600061326183600261497a565b61326c9060026148b5565b6001600160401b038111156132835761328361402e565b6040519080825280601f01601f1916602001820160405280156132ad576020820181803683370190505b509050600360fc1b816000815181106132c8576132c8614a72565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106132f7576132f7614a72565b60200101906001600160f81b031916908160001a905350600061331b84600261497a565b6133269060016148b5565b90505b600181111561339e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061335a5761335a614a72565b1a60f81b82828151811061337057613370614a72565b60200101906001600160f81b031916908160001a90535060049490941c9361339781615890565b9050613329565b5083156107885760405162461bcd60e51b8152600401610717906158d9565b606060006133cc83600261497a565b6001600160401b038111156133e3576133e361402e565b6040519080825280601f01601f19166020018201604052801561340d576020820181803683370190505b5080519091505b801561289b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061344257613442614a72565b1a60f81b8261345260018461461b565b8151811061346257613462614a72565b60200101906001600160f81b031916908160001a90535060049490941c938061348a81615890565b915050613414565b60608060005b600a8160ff16101561355d5760ff8116156134d057816040516020016134be91906158f8565b60405160208183030381529060405291505b816134e9858360ff16600a81106114ac576114ac614a72565b6134f58360ff1661250a565b6135096135046001600a61461b565b61250a565b60405160200161351a929190615921565b60408051601f198184030181529082905261353993929160200161595d565b604051602081830303815290604052915080806135559061598b565b915050613498565b5092915050565b60008160ff16600e148061357b57508160ff166014145b8061358957508160ff166018145b8061359757508160ff16601c145b806135a557508160ff166020145b806135b357508160ff16602a145b806135c157508160ff16603c145b806135cf57508160ff16604c145b806135dd57508160ff16605c145b156135e6575090565b506010919050565b919050565b6060600061360083613564565b90508060ff16600e1415613631575050604080518082019091526005815264312e34323960d81b6020820152919050565b8060ff166010141561365e575050604080518082019091526003815262312e3560e81b6020820152919050565b8060ff166014141561368b5750506040805180820190915260038152620c4b8d60ea1b6020820152919050565b8060ff16601814156136b8575050604080518082019091526003815262312e3360e81b6020820152919050565b8060ff16601c14156136e7575050604080518082019091526005815264312e32373560d81b6020820152919050565b8060ff1660201415613715575050604080518082019091526004815263312e323560e01b6020820152919050565b8060ff16602a141561374257505060408051808201909152600381526218971960e91b6020820152919050565b8060ff16603c1415613770575050604080518082019091526004815263312e313560e01b6020820152919050565b8060ff16604c141561379e575050604080518082019091526004815263312e313360e01b6020820152919050565b8060ff16605c14156137cb575050604080518082019091526003815262312e3160e81b6020820152919050565b5050604080518082019091526003815262312e3560e81b6020820152919050565b50919050565b6000808080808061380e6138096201518089615475565b6138a7565b919750955093506000613824620151808961547d565b9050613832610e1082615475565b9350613840610e108261547d565b905061384d603c82615475565b925061385a603c8261547d565b91505091939550919395565b606060006138738361250a565b90506002815110156107db578060405160200161389091906159b2565b604051602081830303815290604052905092915050565b60008080838162253d8c6138be8362010bd96159bd565b6138c891906159bd565b9050600062023ab16138db8360046159f9565b6138e59190615a81565b905060046138f68262023ab16159f9565b6139019060036159bd565b61390b9190615a81565b6139159083615aaf565b9150600062164b096139288460016159bd565b61393490610fa06159f9565b61393e9190615a81565b9050600461394e826105b56159f9565b6139589190615a81565b6139629084615aaf565b61396d90601f6159bd565b9250600061098f61397f8560506159f9565b6139899190615a81565b90506000605061399b8361098f6159f9565b6139a59190615a81565b6139af9086615aaf565b90506139bc600b83615a81565b94506139c985600c6159f9565b6139d48360026159bd565b6139de9190615aaf565b915084836139ed603187615aaf565b6139f89060646159f9565b613a0291906159bd565b613a0c91906159bd565b9a919950975095505050505050565b604051806101400160405280600a906020820280368337509192915050565b604051806101600160405280613a4e613a1b565b81526000602082018190526040820181905260608083018290526080830182905260a0830182905260c0830182905260e0830152610100820181905261012082018190526101409091015290565b600183019183908215613b255791602002820160005b83821115613af457835183826101000a81548162ffffff021916908362ffffff1602179055509260200192600301602081600201049283019260010302613ab2565b8015613b235782816101000a81549062ffffff0219169055600301602081600201049283019260010302613af4565b505b50613b31929150613bd1565b5090565b828054613b41906144e0565b90600052602060002090601f016020900481019282613b635760008555613b25565b82601f10613b7c57805160ff1916838001178555613b25565b82800160010185558215613b25579182015b82811115613b25578251825591602001919060010190613b8e565b604051806101c00160405280600e905b6060815260200190600190039081613bb95790505090565b5b80821115613b315760008155600101613bd2565b6001600160e01b031981165b8114610c2c57600080fd5b80356107db81613be6565b600060208284031215613c1d57613c1d600080fd5b600061163a8484613bfd565b8015155b82525050565b602081016107db8284613c29565b60005b83811015613c5c578181015183820152602001613c44565b838111156110d45750506000910152565b6000613c77825190565b808452602084019350613c8e818560208601613c41565b601f01601f19169290920192915050565b602080825281016107888184613c6d565b80613bf2565b80356107db81613cb0565b600060208284031215613cd657613cd6600080fd5b600061163a8484613cb6565b60006001600160a01b0382166107db565b613c2d81613ce2565b602081016107db8284613cf3565b613bf281613ce2565b80356107db81613d0a565b60008060408385031215613d3457613d34600080fd5b6000613d408585613d13565b9250506020613d5185828601613cb6565b9150509250929050565b62ffffff8116613c2d565b60ff8116613c2d565b61ffff8116613c2d565b80613c2d565b6101408101613d8e828d613c29565b613d9b602083018c613d5b565b613da8604083018b613d66565b613db5606083018a613d6f565b613dc26080830189613cf3565b613dcf60a0830188613cf3565b81810360c0830152613de18187613c6d565b9050613df060e0830186613d79565b613dfe610100830185613d79565b613e0c610120830184613d79565b9b9a5050505050505050505050565b602081016107db8284613d79565b600080600060608486031215613e4157613e41600080fd5b6000613e4d8686613d13565b9350506020613e5e86828701613d13565b9250506040613e6f86828701613cb6565b9150509250925092565b602081016107db8284613d6f565b6000613e938383613d5b565b505060200190565b600a818060005b83811015613ec7578151613eb68782613e87565b965060208301925050600101613ea2565b505050505050565b8051600090610280840190613ee48582613e9b565b506020830151613ef8610140860182613c29565b506040830151613f0c610160860182613d5b565b506060830151613f20610180860182613d66565b506080830151613f346101a0860182613d6f565b5060a0830151613f486101c0860182613cf3565b5060c0830151613f5c6101e0860182613cf3565b5060e0830151848203610200860152613f758282613c6d565b915050610100830151613f8c610220860182613d79565b50610120830151613fa1610240860182613d79565b5061014083015161289b610260860182613d79565b602080825281016107888184613ecf565b600060208284031215613fdc57613fdc600080fd5b600061163a8484613d13565b801515613bf2565b80356107db81613fe8565b6000806040838503121561401157614011600080fd5b600061401d8585613d13565b9250506020613d5185828601613ff0565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156140695761406961402e565b6040525050565b600061407b60405190565b90506135ee8282614044565b60006001600160401b038211156140a0576140a061402e565b601f19601f83011660200192915050565b82818337506000910152565b60006140d06140cb84614087565b614070565b9050828152602081018484840111156140eb576140eb600080fd5b61289b8482856140b1565b600082601f83011261410a5761410a600080fd5b813561163a8482602086016140bd565b6000806000806080858703121561413357614133600080fd5b600061413f8787613d13565b945050602061415087828801613d13565b935050604061416187828801613cb6565b92505060608501356001600160401b0381111561418057614180600080fd5b61418c878288016140f6565b91505092959194509250565b60008083601f8401126141ad576141ad600080fd5b5081356001600160401b038111156141c7576141c7600080fd5b6020830191508360018202830111156141e2576141e2600080fd5b9250929050565b600080602083850312156141ff576141ff600080fd5b82356001600160401b0381111561421857614218600080fd5b61422485828601614198565b92509250509250929050565b61ffff8116613bf2565b80356107db81614230565b6000806040838503121561425b5761425b600080fd5b60006142678585613cb6565b9250506020613d518582860161423a565b6000806040838503121561428e5761428e600080fd5b600061429a8585613d13565b9250506020613d5185828601613d13565b62ffffff8116613bf2565b80356107db816142ab565b60ff8116613bf2565b80356107db816142c1565b8061014081018310156107db576107db600080fd5b60008060008060008060008060006102208a8c03121561430c5761430c600080fd5b89356001600160401b0381111561432557614325600080fd5b6143318c828d01614198565b995099505060206143448c828d016142b6565b97505060406143558c828d01613ff0565b96505060606143668c828d016142ca565b95505060806143778c828d0161423a565b94505060a06143888c828d016142d5565b9350506101e061439a8c828d01613d13565b9250506102006143ac8c828d01613cb6565b9150509295985092959850929598565b6000806000606084860312156143d4576143d4600080fd5b83356001600160401b038111156143ed576143ed600080fd5b613e4d868287016140f6565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600061ffff8216915061ffff83165b925082614443576144436143f9565b500490565b6014815260006020820173125b9d985b1a59081b595cdcd859d9481d195e1d60621b815291505b5060200190565b602080825281016107db81614448565b601a81526000602082017f496e76616c696420696e5265706c79546f4d65737361676549640000000000008152915061446f565b602080825281016107db81614486565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806144f457607f821691505b602082108114156137ec576137ec6144ca565b602c81526000602082017f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526b34b9ba32b73a103a37b5b2b760a11b602082015291505b5060400190565b602080825281016107db81614507565b602181526000602082017f4552433732313a20617070726f76616c20746f2063757272656e74206f776e658152603960f91b6020820152915061454c565b602080825281016107db81614563565b603881526000602082017f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020820152915061454c565b602080825281016107db816145b1565b60008282101561462d5761462d61440f565b500390565b603181526000602082017f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f8152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6020820152915061454c565b602080825281016107db81614632565b602281526000602082017f455243373231413a206f776e657220696e646578206f7574206f6620626f756e815261647360f01b6020820152915061454c565b602080825281016107db81614690565b60006000198214156146f3576146f361440f565b5060010190565b602e81526000602082017f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662081526d0deeedccae440c4f240d2dcc8caf60931b6020820152915061454c565b602080825281016107db816146fa565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65729101908152600061446f565b602080825281016107db81614755565b601d81526000602082017f416464726573733a20696e73756666696369656e742062616c616e63650000008152915061446f565b602080825281016107db81614797565b6000816107db565b603a81526000602082017f416464726573733a20756e61626c6520746f2073656e642076616c75652c207281527f6563697069656e74206d617920686176652072657665727465640000000000006020820152915061454c565b602080825281016107db816147e3565b600d81526000602082016c191bd95cdb89dd08195e1a5cdd609a1b8152915061446f565b602080825281016107db8161484d565b600d81526000602082016c4f7574206f6620626f756e647360981b8152915061446f565b602080825281016107db81614881565b600082198211156148c8576148c861440f565b500190565b602981526000602082017f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526832b73a103a37b5b2b760b91b6020820152915061454c565b602080825281016107db816148cd565b602a81526000602082017f4552433732313a2062616c616e636520717565727920666f7220746865207a65815269726f206164647265737360b01b6020820152915061454c565b602080825281016107db81614923565b60008160001904831182151516156149945761499461440f565b500290565b60006149a76140cb84614087565b9050828152602081018484840111156149c2576149c2600080fd5b61289b848285613c41565b600082601f8301126149e1576149e1600080fd5b815161163a848260208601614999565b600060208284031215614a0657614a06600080fd5b81516001600160401b03811115614a1f57614a1f600080fd5b61163a848285016149cd565b602360f81b815260006146f3565b6000614a43825190565b614a51818560208601613c41565b9290920192915050565b6000614a6682614a2b565b91506107888284614a39565b634e487b7160e01b600052603260045260246000fd5b60006107888383613c6d565b6000600c8361018081018480855b85811015614ad35784840389528151614abb8582614a88565b94506020830160209a909a0199925050600101614aa2565b5091979650505050505050565b602080825281016107888184614a94565b6012815260006020820171092dcecc2d8d2c840d2dac2cecaaed2c8e8d60731b8152915061446f565b602080825281016107db81614af1565b600061ffff8216915061ffff831692508161ffff04831182151516156149945761499461440f565b607b60f81b815260006146f3565b61227d60f01b815260005b5060020190565b6000614b7d82614b52565b67113730b6b2911d1160c11b81526008019150614b9a8287614a39565b701116113232b9b1b934b83a34b7b7111d1160791b81526011019150614bc08286614a39565b6a11161134b6b0b3b2911d1160a91b8152600b019150614be08285614a39565b7211161132bc3a32b93730b62fb634b735911d1160691b81526013019150614c088284614a39565b9150614c1382614b60565b9695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260005b50601d0190565b6000614a6682614c1d565b600b81526000602082016a57726f6e6720707269636560a81b8152915061446f565b602080825281016107db81614c55565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b6020820152915061454c565b602080825281016107db81614c87565b600a818060005b83811015613ec7578151614cf58782613e87565b965060208301925050600101614ce1565b6102408082528101614d18818c613c6d565b9050614d27602083018b613d5b565b614d34604083018a613c29565b614d416060830189613d66565b614d4e6080830188613d6f565b614d5b60a0830187614cda565b614d696101e0830186613d79565b614d77610200830185613cf3565b614d85610220830184613d79565b9a9950505050505050505050565b602c81526000602082017f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526b34b9ba32b73a103a37b5b2b760a11b6020820152915061454c565b602080825281016107db81614d93565b602981526000602082017f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526839903737ba1037bbb760b91b6020820152915061454c565b602080825281016107db81614dec565b602481526000602082017f4552433732313a207472616e7366657220746f20746865207a65726f206164648152637265737360e01b6020820152915061454c565b602080825281016107db81614e42565b7f3b706f736974696f6e3a6162736f6c7574653b746f703a303b6c6566743a303b81527f77696474683a313030253b6865696768743a313030253b646973706c61793a6660208201527f6c65783b666c65782d646972656374696f6e3a636f6c756d6e2720786d6c6e7360408201527f3d27687474703a2f2f7777772e77332e6f72672f313939392f7868746d6c273e6060820152661e39ba3cb6329f60c91b60808201526087016000614f478287614a39565b7f7376672e7833667675665745316533483178706f2c7376672e7833667675665781526b45316533483178706f202a7b60a01b6020820152602c019150614f8e8286614a39565b7f626f782d73697a696e673a626f726465722d626f783b6d617267696e3a303b7081527f616464696e673a303b626f726465723a303b2d7765626b69742d666f6e742d7360208201527f6d6f6f7468696e673a616e7469616c69617365643b746578742d72656e64657260408201527f696e673a6f7074696d697a654c65676962696c6974793b6f766572666c6f772d60608201527f777261703a627265616b2d776f72647d3c2f7374796c653e3c646976207374796080820152636c653d2760e01b60a082015260a40191506150658285614a39565b91506150718284614a39565b7f666c65783a313b70616464696e673a313670783b77686974652d73706163653a81527f7072652d777261703b6f766572666c6f773a68696464656e273e00000000000060208201529150603a8201614c13565b7f3c2f6469763e3c646976207374796c653d2777686974652d73706163653a707281527f653b6261636b67726f756e643a7267626128302c302c302c2e35293b636f6c6f60208201527f723a236666663b70616464696e673a313670783b666f6e742d73697a653a313260408201527f70783b6c696e652d6865696768743a63616c6328342f33293b646973706c617960608201527f3a666c65783b666c65782d646972656374696f6e3a636f6c756d6e273e3c646960808201526876207374796c653d2760b81b60a082015260a90160006151a18284614a39565b7f6c65747465722d73706163696e673a312e323570783b666f6e742d776569676881527f743a3530303b6d617267696e2d626f74746f6d3a387078273e464f5245564552602082015265204d5347202360d01b6040820152915060468201610788565b60006152108285614a39565b915061163a8284614a39565b6000615228828a614a39565b91506152348289614a39565b91506152408288614a39565b915061524c8287614a39565b91506152588286614a39565b91506152648285614a39565b91506152708284614a39565b9998505050505050505050565b6927206865696768743d2760b01b815260005b50600a0190565b7f3c7376672076696577426f783d2730203020333930203438372e35272077696481526374683d2760e01b602082015260240160006152d68285614a39565b91506152e18261527d565b91506152ed8284614a39565b7f2720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f81527f737667273e3c696d6167652077696474683d273130302527206865696768743d60208201527f27313030252720687265663d27646174613a696d6167652f7376672b786d6c3b60408201526618985cd94d8d0b60ca1b606082015291506067820161163a565b60006153838286614a39565b915061538f8285614a39565b915061539b8284614a39565b95945050505050565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000081526000601a8201614a66565b601981526000602082017f4552433732313a20617070726f766520746f2063616c6c6572000000000000008152915061446f565b602080825281016107db816153d2565b603281526000602082017f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6020820152915061454c565b602080825281016107db81615416565b600082614434565b60008261548c5761548c6143f9565b500690565b60208082527f4552433732313a206d696e7420746f20746865207a65726f20616464726573739101908152600061446f565b602080825281016107db81615491565b601c81526000602082017f4552433732313a20746f6b656e20616c7265616479206d696e746564000000008152915061446f565b602080825281016107db816154d3565b7f72616469616c2d6772616469656e742861742035302520313030252c2000000081526000614c43565b602960f81b815260006146f3565b600061555a82615517565b91506155668284614a39565b915061078882615541565b6403232b396160dd1b815260005b5060050190565b6f0d8d2dccac2e45acee4c2c8d2cadce8560831b815260100160006155ab8285614a39565b91506155b682615571565b91506155c28284614a39565b915061163a82615541565b7f40666f6e742d666163657b666f6e742d66616d696c793a2749424d20506c657881527f2053616e735f777734617a3657537968456a336f4d37273b7372633a75726c286020820152600061454c565b7f2920666f726d61742827776f66663227293b756e69636f64652d72616e67653a8152600061446f565b613b7d60f01b81526000614b6b565b6000615661826155cd565b915061566d8285614a39565b91506156788261561d565b91506156848284614a39565b915061163a82615647565b7f40666f6e742d666163657b666f6e742d66616d696c793a2749424d20506c657881527f204d6f6e6f5f777734617a3657537968456a336f4d37273b7372633a75726c286020820152600061454c565b60006156618261568f565b7f40666f6e742d666163657b666f6e742d66616d696c793a2749424d20506c657881527f2053616e7320436f6e64656e7365645f777734617a3657537968456a336f4d3760208201526904e76e6e4c674eae4d8560b31b60408201526000604a8201615661565b693337b73a16b9b4bd329d60b11b81526000615290565b603b60f81b815260006146f3565b600061578182615751565b915061578d8285614a39565b6e383c1db634b73296b432b4b3b43a1d60891b8152600f0191506157b18284614a39565b915061163a82615768565b60006157c88284614a39565b746c65747465722d73706163696e673a2e313670783b60581b8152915060158201610788565b602d60f81b815260006146f3565b60006158088286614a39565b9150615813826157ee565b915061581f8285614a39565b915061538f826157ee565b608081016158388287613cf3565b6158456020830186613cf3565b6158526040830185613d79565b8181036060830152614c138184613c6d565b80516107db81613be6565b60006020828403121561588457615884600080fd5b600061163a8484615864565b60008161589f5761589f61440f565b506000190190565b60208082527f537472696e67733a20686578206c656e67746820696e73756666696369656e749101908152600061446f565b602080825281016107db816158a7565b61016160f51b81526000614b6b565b60006159048284614a39565b9150610788826158e9565b640c6c2d8c6560db1b8152600061557f565b600061592c8261590f565b91506159388285614a39565b652a313030252f60d01b81529150600682016155b6565b600160fd1b815260006146f3565b60006159698286614a39565b915061597482614a2b565b91506159808285614a39565b915061538f8261594f565b600060ff8216915060ff8214156146f3576146f361440f565b600360fc1b815260006146f3565b6000614a66826159a4565b6000816001600160ff1b03038313600083121516156159de576159de61440f565b81600160ff1b0383126000831216156148c8576148c861440f565b6000826001600160ff1b030482116000841360008413161615615a1e57615a1e61440f565b81600160ff1b0583126000841260008413161615615a3e57615a3e61440f565b82600160ff1b0582126000841360008412161615615a5e57615a5e61440f565b826001600160ff1b0305821260008412600084121616156149945761499461440f565b600082615a9057615a906143f9565b600160ff1b821460001984141615615aaa57615aaa61440f565b500590565b600082600160ff1b01821260008412151615615acd57615acd61440f565b826001600160ff1b0301821360008412161561462d5761462d61440f56fe3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667272076696577426f783d2730203020333930203438372e352720636c6173733d277833667675665745316533483178706f273e3c666f726569676e4f626a65637420783d27302720793d2730272077696474683d2733393027206865696768743d273438372e35273e3c646976207374796c653d276261636b67726f756e643a3c2f6469763e3c2f6469763e3c2f6469763e3c2f666f726569676e4f626a6563743e3c2f7376673e666f6e742d66616d696c793a2249424d20506c65782053616e735f777734617a3657537968456a336f4d37222c2248656c766574696361204e657565222c417269616c2c73616e732d73657269663b666f6e742d66616d696c793a2249424d20506c65782053616e7320436f6e64656e7365645f777734617a3657537968456a336f4d37222c2248656c766574696361204e657565222c417269616c2c73616e732d73657269663b4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f536b79204d6173746572736f6e0a32303139e28093323032310a0a596f752077657265206120737765657420636174207769746820612067656e746c6520736f756c20616e6420796f752077657265206d7920667269656e642e20492077696c6c206e6576657220666f7267657420796f752e0a0a596f75722062756464792c0a54666f6e742d66616d696c793a2249424d20506c6578204d6f6e6f5f777734617a3657537968456a336f4d37222c224d656e6c6f222c2244656a6156752053616e73204d6f6e6f222c2242697473747265616d20566572612053616e73204d6f6e6f222c436f75726965722c6d6f6e6f73706163653ba2646970667358221220e2f7f9766a384cf5c34c7c6ac6e14b417763442bb9380eff61334e4853ddca3064736f6c634300080b0033