[ { "inputs": [ { "internalType": "address", "name": "_publisher", "type": "address" }, { "internalType": "address", "name": "_provider", "type": "address" }, { "internalType": "string", "name": "_title", "type": "string" }, { "internalType": "string", "name": "_summary", "type": "string" }, { "internalType": "string", "name": "_coverURI", "type": "string" }, { "internalType": "string", "name": "_metadataURI", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint96", "name": "_providerFee", "type": "uint96" }, { "internalType": "uint128", "name": "_version", "type": "uint128" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "episodeId", "type": "uint256" } ], "name": "EpisodeNotFound", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "episodeId", "type": "uint256" } ], "name": "EpisodeNotReleased", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "InsufficientFunds", "type": "error" }, { "inputs": [], "name": "InvalidPaymentAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "MaxLimitReached", "type": "error" }, { "inputs": [], "name": "NotAuthorized", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collector", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "episodeId", "type": "uint256" } ], "name": "EpisodeCollected", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "title", "type": "string" } ], "name": "EpisodeCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "metadataURI", "type": "string" } ], "name": "EpisodeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "FeesPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "metadataURI", "type": "string" } ], "name": "PodcastUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newPublisher", "type": "address" } ], "name": "PublisherChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "publisher", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" } ], "name": "Withdrawal", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "calculateFees", "outputs": [ { "internalType": "uint256", "name": "fees", "type": "uint256" }, { "internalType": "uint256", "name": "remaining", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newPublisher", "type": "address" } ], "name": "changePublisher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "collector", "type": "address" }, { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "collectEpisode", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "collectorCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "paymentAddress", "type": "address" }, { "internalType": "contract IERC20", "name": "paymentToken", "type": "address" }, { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "mintMaxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "releaseDate", "type": "uint256" }, { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "audioURI", "type": "string" }, { "internalType": "string", "name": "videoURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "bool", "name": "isDeleted", "type": "bool" }, { "internalType": "bool", "name": "mintByPublisherOnly", "type": "bool" }, { "internalType": "bool", "name": "jamitCoinAccepted", "type": "bool" } ], "internalType": "struct Podcast.Episode", "name": "newEpisode", "type": "tuple" }, { "internalType": "uint256", "name": "mintEndDate", "type": "uint256" } ], "name": "createEpisode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "episodeCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "episodes", "outputs": [ { "internalType": "address", "name": "paymentAddress", "type": "address" }, { "internalType": "contract IERC20", "name": "paymentToken", "type": "address" }, { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "mintMaxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "releaseDate", "type": "uint256" }, { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "audioURI", "type": "string" }, { "internalType": "string", "name": "videoURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "bool", "name": "isDeleted", "type": "bool" }, { "internalType": "bool", "name": "mintByPublisherOnly", "type": "bool" }, { "internalType": "bool", "name": "jamitCoinAccepted", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "episodeId", "type": "uint256" } ], "name": "getEpisode", "outputs": [ { "components": [ { "internalType": "address", "name": "paymentAddress", "type": "address" }, { "internalType": "contract IERC20", "name": "paymentToken", "type": "address" }, { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "mintMaxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "releaseDate", "type": "uint256" }, { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "audioURI", "type": "string" }, { "internalType": "string", "name": "videoURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "bool", "name": "isDeleted", "type": "bool" }, { "internalType": "bool", "name": "mintByPublisherOnly", "type": "bool" }, { "internalType": "bool", "name": "jamitCoinAccepted", "type": "bool" } ], "internalType": "struct Podcast.Episode", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isCollector", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isManager", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "fromEpisodeId", "type": "uint256" }, { "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "listEpisodes", "outputs": [ { "components": [ { "internalType": "address", "name": "paymentAddress", "type": "address" }, { "internalType": "contract IERC20", "name": "paymentToken", "type": "address" }, { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "mintMaxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "releaseDate", "type": "uint256" }, { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "audioURI", "type": "string" }, { "internalType": "string", "name": "videoURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "bool", "name": "isDeleted", "type": "bool" }, { "internalType": "bool", "name": "mintByPublisherOnly", "type": "bool" }, { "internalType": "bool", "name": "jamitCoinAccepted", "type": "bool" } ], "internalType": "struct Podcast.Episode[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "mintEndDates", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "podcast", "outputs": [ { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "summary", "type": "string" }, { "internalType": "string", "name": "coverURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "address", "name": "publisher", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "provider", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "providerFee", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "publisher", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEarned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "totalTokenEarned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "paymentAddress", "type": "address" }, { "internalType": "contract IERC20", "name": "paymentToken", "type": "address" }, { "internalType": "uint256", "name": "episodeId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "mintMaxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "releaseDate", "type": "uint256" }, { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "audioURI", "type": "string" }, { "internalType": "string", "name": "videoURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "bool", "name": "isDeleted", "type": "bool" }, { "internalType": "bool", "name": "mintByPublisherOnly", "type": "bool" }, { "internalType": "bool", "name": "jamitCoinAccepted", "type": "bool" } ], "internalType": "struct Podcast.Episode", "name": "updatedEpisode", "type": "tuple" } ], "name": "updateEpisode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "manager", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "updateManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "string", "name": "summary", "type": "string" }, { "internalType": "string", "name": "coverURI", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "address", "name": "publisher", "type": "address" } ], "internalType": "struct Podcast.PodcastMetadata", "name": "newMetadata", "type": "tuple" } ], "name": "updatePodcast", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "uint128", "name": "", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e06040523461014957615310803803809161001a82610164565b60e0396101208160e0019112610149576100326101c3565b61003d6101006101d9565b610120516001600160401b038111610149578361005c9160e00161022b565b610140516001600160401b038111610149578461007b9160e00161022b565b610160516001600160401b038111610149578561009a9160e00161022b565b610180516001600160401b03811161014957866100b99160e00161022b565b6101a0519092906001600160401b038111610149576100fc976100de9160e00161022b565b936100ea6101c0610270565b956100f66101e0610284565b9761076b565b6040516144459081610ecb823960805181818161098e0152818161109b01528181611d360152818161351f01526136c3015260a05181818161231d015261395b015260c051816118fe0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60e0601f91909101601f19168101906001600160401b0382119082101761018a57604052565b61014e565b601f909101601f19168101906001600160401b0382119082101761018a57604052565b604051906101c160a08361018f565b565b60e051906001600160a01b038216820361014957565b51906001600160a01b038216820361014957565b6001600160401b03811161018a57601f01601f191660200190565b60005b83811061021b5750506000910152565b818101518382015260200161020b565b81601f82011215610149578051610241816101ed565b9261024f604051948561018f565b818452602082840101116101495761026d9160208085019101610208565b90565b51906001600160601b038216820361014957565b51906001600160801b038216820361014957565b604051906102a760208361018f565b60008252565b90600182811c921680156102dd575b60208310146102c757565b634e487b7160e01b600052602260045260246000fd5b91607f16916102bc565b601f81116102f3575050565b60026000526020600020906020601f840160051c83019310610330575b601f0160051c01905b818110610324575050565b60008155600101610319565b9091508190610310565b601f821161034757505050565b6000526020600020906020601f840160051c83019310610382575b601f0160051c01905b818110610376575050565b6000815560010161036b565b9091508190610362565b80519091906001600160401b03811161018a576103b5816103ae600e546102ad565b600e61033a565b602092601f82116001146103f7576103e7929382916000926103ec575b50508160011b916000199060031b1c19161790565b600e55565b0151905038806103d2565b600e600052601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9160005b86811061045e5750836001959610610445575b505050811b01600e55565b015160001960f88460031b161c1916905538808061043a565b91926020600181928685015181550194019201610427565b80519091906001600160401b03811161018a5761049f81610498600f546102ad565b600f61033a565b602092601f82116001146104d5576104d0929382916000926103ec5750508160011b916000199060031b1c19161790565b600f55565b600f600052601f198216937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029160005b86811061053c5750836001959610610523575b505050811b01600f55565b015160001960f88460031b161c19169055388080610518565b91926020600181928685015181550194019201610505565b81519192916001600160401b03811161018a5761057b8161057584546102ad565b8461033a565b6020601f82116001146105b05781906105ac9394956000926103ec5750508160011b916000199060031b1c19161790565b9055565b601f198216906105c584600052602060002090565b9160005b818110610601575095836001959697106105e8575b505050811b019055565b015160001960f88460031b161c191690553880806105de565b9192602060018192868b0151815501940192016105c9565b80518051906001600160401b03821161018a576106428261063b6009546102ad565b600961033a565b602090601f83116001146106dc579261067c836106bb946080946101c1976000926103ec5750508160011b916000199060031b1c19161790565b6009555b61068f6020820151600a610554565b61069e6040820151600b610554565b6106ad6060820151600c610554565b01516001600160a01b031690565b600d80546001600160a01b0319166001600160a01b03909216919091179055565b6009600052601f19831691907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af9260005b8181106107535750936080936101c19693600193836106bb981061073a575b505050811b01600955610680565b015160001960f88460031b161c1916905538808061072c565b9293602060018192878601518155019501930161070d565b979196909592939495602093604051610784868261018f565b60008082529061079e826107996002546102ad565b6102e7565b8690601f83116001146108d457926107e2836108c69c9a9896946101c19f9e9c9a989694610891956000926103ec5750508160011b916000199060031b1c19161790565b6002555b6107f560ff1960035416600355565b6107ff6001600655565b6108096001601055565b6108136000601155565b61081d6000601255565b600880546001600160a01b0319166001600160a01b038e161790556001600160a01b038c166000908152600760205260409020610862905b805460ff19166001179055565b6001600160a01b038316600090815260076020526040902061088390610855565b61088c8a61038c565b610476565b60805260a05260c0526108a26101b2565b948552840152604083015260608201526001600160a01b0383166080820152610619565b6108ce610298565b9061096e565b6002600052907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9160005b601f1985168110610957575083610891936101c19f9e9c9a9896936001936108c69f9d9b9997601f1981161061093e575b505050811b016002556107e6565b015160001960f88460031b161c19169055388080610930565b9192896001819286850151815501940192016108ff565b90916001600160a01b03821615610a4a5760405190600182526020820160008152604083019460018652606084019460018652608085016040526109b3878683610d56565b600095865b8651881015610a05576109fd6001918960051b8901906109eb602060608401519301516000526004602052604060002090565b6109f6838254610d33565b9055610d33565b9701966109b8565b610a2391949750610a1e90989396929598600554610d33565b600555565b8051600103610a3c5750506101c1935190519133610c92565b9150916101c1945033610b5c565b632bfa23e760e11b600052600060045260246000fd5b9081602091031261014957516001600160e01b0319811681036101495790565b906020808351928381520192019060005b818110610a9e5750505090565b8251845260209384019390920191600101610a91565b90602091610acd81518092818552858086019101610208565b601f01601f1916010190565b6001600160a01b0391821681529116602082015260a06040820181905261026d9491939192610b1e9291610b109190860190610a80565b908482036060860152610a80565b916080818403910152610ab4565b3d15610b57573d90610b3d826101ed565b91610b4b604051938461018f565b82523d6000602084013e565b606090565b939093929192843b610b70575b5050505050565b610b94600092602094604051968795869563bc197c8160e01b875260048701610ad9565b038160006001600160a01b0387165af160009181610c28575b50610be95750610bbb610b2c565b8051919082610be257632bfa23e760e11b6000526001600160a01b03821660045260246000fd5b9050602001fd5b6001600160e01b0319166343e6837f60e01b01610c0b57503880808080610b69565b632bfa23e760e11b6000526001600160a01b031660045260246000fd5b610c4b91925060203d602011610c52575b610c43818361018f565b810190610a60565b9038610bad565b503d610c39565b6001600160a01b039182168152911660208201526040810191909152606081019190915260a06080820181905261026d92910190610ab4565b939093929192843b610ca5575050505050565b610cc9600092602094604051968795869563f23a6e6160e01b875260048701610c59565b038160006001600160a01b0387165af160009181610d12575b50610cf05750610bbb610b2c565b6001600160e01b031916630dc5919f60e01b01610c0b57503880808080610b69565b610d2c91925060203d602011610c5257610c43818361018f565b9038610ce2565b91908201809211610d4057565b634e487b7160e01b600052601160045260246000fd5b92909160ff60035416610e94578251815190818103610e7d5750506001600160a01b038416928315159260005b8251811015610df55780858860019360051b6020808289010151918901015192610db1575b50505001610d83565b610deb91610dcc610de3926000526000602052604060002090565b9060018060a01b0316600052602052604060002090565b918254610d33565b9055388881610da8565b5094506000925060018151148314610e4a5760209081015191810151604080519384529183015233917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291819081015b0390a4565b60405133927f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb928291610e459183610ea5565b635b05999160e01b60005260045260245260446000fd5b63d93c066560e01b60005260046000fd5b9091610ebc61026d93604084526040840190610a80565b916020818403910152610a8056fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c8062fdd58e146102ca57806301ffc9a7146102c557806306fdde03146102c0578063085d4883146102bb5780630e89341c146102b657806318160ddd146102b15780632314e05f146102ac578063236fa027146102a757806323a4e563146102a25780632a55205a1461029d5780632e1a7d4d146102985780632eb2c2d61461029357806331dc038a1461028e57806331e84eea146102895780633a35ae2d146102845780633f4ba83a1461027f5780634bfae9421461027a5780634e1273f4146102755780634f558e791461027057806352238fdd1461026b57806354fd4d50146102665780635c975abb14610261578063621298041461025c5780636be153ae146102575780636dfa8d99146102525780638456cb591461024d57806386f328a9146102485780638c72c54e1461024357806395d89b411461023e5780639e281a9814610239578063a22cb46514610234578063b390c0ab1461022f578063bcefbd5a1461022a578063bd85b03914610225578063c026ef4514610220578063c076dcff1461021b578063c6e983d914610216578063da632fea14610211578063e8a3d4851461020c578063e985e9c514610207578063f242432a14610202578063f3ae2415146101fd5763fb66ae9d0361000e57612617565b6125d4565b6124fa565b612490565b612474565b612341565b6122f8565b6122da565b612247565b61221b565b6120bc565b611fe1565b611f23565b611c6d565b611bc5565b611b9e565b611aeb565b6119c4565b6119a6565b611988565b611945565b611922565b6118d5565b6118a7565b611871565b6117ae565b61172b565b61169a565b61164e565b6115dc565b611468565b611290565b61103c565b610f79565b610e92565b610cd0565b610a8b565b6109ed565b6109b2565b61096e565b610891565b61036e565b6102f2565b6001600160a01b038116036102e057565b600080fd5b35906102f0826102cf565b565b346102e05760406003193601126102e057602061033b600435610314816102cf565b602435600052600083526040600020906001600160a01b0316600052602052604060002090565b54604051908152f35b7fffffffff000000000000000000000000000000000000000000000000000000008116036102e057565b346102e05760206003193601126102e0577fffffffff000000000000000000000000000000000000000000000000000000006004356103ac81610344565b167f2a55205a0000000000000000000000000000000000000000000000000000000081149081156103e6575b506040519015158152602090f35b7fd9b67a260000000000000000000000000000000000000000000000000000000081149150811561044a575b8115610420575b50386103d8565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501438610419565b7f0e89341c0000000000000000000000000000000000000000000000000000000081149150610412565b90600182811c921680156104bd575b602083101461048e57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610483565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff82111761051957604052565b6104c7565b604051906000826009549161053283610474565b80835292600181169081156105b65750600114610556575b6102f0925003836104f6565b506009600090815290917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b81831061059a5750509060206102f09282010161054a565b6020919350806001915483858901015201910190918492610582565b602092506102f094915060ff191682840152151560051b82010161054a565b60405190600082600a54916105e983610474565b80835292600181169081156105b6575060011461060c576102f0925003836104f6565b50600a600090815290917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85b8183106106505750509060206102f09282010161054a565b6020919350806001915483858901015201910190918492610638565b60405190600082600b549161068083610474565b80835292600181169081156105b657506001146106a3576102f0925003836104f6565b50600b600090815290917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b8183106106e75750509060206102f09282010161054a565b60209193508060019154838589010152019101909184926106cf565b60405190600082600c549161071783610474565b80835292600181169081156105b6575060011461073a576102f0925003836104f6565b50600c600090815290917fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b81831061077e5750509060206102f09282010161054a565b6020919350806001915483858901015201910190918492610766565b90604051918260008254926107ae84610474565b808452936001811690811561081a57506001146107d3575b506102f0925003836104f6565b90506000929192526020600020906000915b8183106107fe5750509060206102f092820101386107c6565b60209193508060019154838589010152019101909184926107e5565b602093506102f095925060ff1991501682840152151560051b820101386107c6565b919082519283825260005b848110610868575050601f19601f8460006020809697860101520116010190565b80602080928401015182828601015201610847565b90602061088e92818152019061083c565b90565b346102e05760006003193601126102e0576040516000600e546108b381610474565b808452906001811690811561094a57506001146108eb575b6108e7836108db818503826104f6565b6040519182918261087d565b0390f35b600e60009081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b808210610930575090915081016020016108db6108cb565b919260018160209254838588010152019101909291610918565b60ff191660208086019190915291151560051b840190910191506108db90506108cb565b346102e05760006003193601126102e05760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e05760206003193601126102e0576108e76109d96004356109d46139c0565b612670565b60405191829160208352602083019061083c565b346102e05760006003193601126102e0576020600554604051908152f35b604051906102f060a0836104f6565b604051906102f06101a0836104f6565b67ffffffffffffffff811161051957601f01601f191660200190565b81601f820112156102e057602081359101610a6082610a2a565b92610a6e60405194856104f6565b828452828201116102e05781600092602092838601378301015290565b346102e05760206003193601126102e05760043567ffffffffffffffff81116102e05760a060031982360301126102e057610ac4610a0b565b816004013567ffffffffffffffff81116102e057610ae89060043691850101610a46565b8152602482013567ffffffffffffffff81116102e057610b0e9060043691850101610a46565b6020820152604482013567ffffffffffffffff81116102e057610b379060043691850101610a46565b604082015260648201359167ffffffffffffffff83116102e0576084610b7591610b6a6100199560043691840101610a46565b6060850152016102e5565b60808201526126dc565b80516001600160a01b031682529061088e906020838101516001600160a01b03169082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015261018080610c2e610c1a610c06610bf460c08901516101a060c08901526101a088019061083c565b60e089015187820360e089015261083c565b61010088015186820361010088015261083c565b61012087015185820361012087015261083c565b61014080870151151590850152946101608181015115159085015201511515910152565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310610c8557505050505090565b9091929394602080610cc1837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951610b7f565b97019301930191939290610c76565b346102e05760406003193601126102e057602435600435610cef6139c0565b8091610cfe6019821115612d9c565b610d09601054612e56565b9115610e78575b6000835b83811115610e0d575081811115610e055750915b610d3183612eef565b926000915b8381111580610dfc575b15610dee57610d6d610d69600a610d61846000526015602052604060002090565b015460ff1690565b1590565b80610dcd575b610d86575b610d8190612e6a565b610d36565b91610dc5610d8191610daa610da5866000526015602052604060002090565b612f81565b610db48289612f3e565b52610dbf8188612f3e565b50612e6a565b929050610d78565b506005610de4826000526015602052604060002090565b0154421015610d73565b604051806108e78782610c52565b50818310610d40565b905091610d28565b610e29610d69600a610d61846000526015602052604060002090565b80610e57575b610e42575b610e3d90612e6a565b610d14565b90610e4f610e3d91612e6a565b919050610e34565b506005610e6e826000526015602052604060002090565b0154421015610e2f565b60019250610d10565b90602061088e928181520190610b7f565b346102e05760206003193601126102e057600435610eae612e79565b50610eb76139c0565b80158015610f5e575b8015610f40575b8015610f26575b610ef857610eec610da56108e7926000526015602052604060002090565b60405191829182610e81565b7f3e2d11670000000000000000000000000000000000000000000000000000000060005260045260245b6000fd5b508060005260156020526005604060002001544210610ece565b50610f58816000526004602052604060002054151590565b15610ec7565b5080600052601560205260ff600a6040600020015416610ec0565b346102e05760406003193601126102e057600435610fa7602435916000526004602052604060002054151590565b15610fde57610fb8610fc091613084565b612710900490565b600d54604080516001600160a01b0390921682526020820192909252f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f546f6b656e20646f6573206e6f742065786973740000000000000000000000006044820152fd5b346102e05760206003193601126102e05760043533600052600760205260ff60406000205416156111f15761106f6139f6565b4781116111c45761107f9061394b565b9080600081156111bb575b600080809381936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1156111ad576110ff7f6a41f86b2a18fe00e10a9bd078e790ae82c2627a6f940166bddc2db475194a5f9160405191829182919060206040840193600081520152565b0390a160008080808461112c611120611120600d546001600160a01b031690565b6001600160a01b031690565b8282156111b2575bf1156111ad578061115161114c6000936013546130a8565b601355565b7e1a143d5b175701cb3246058ffac3d63945192075a926ff73a19930f09d587a6111a06001600160a01b0361118e600d546001600160a01b031690565b60405194855216929081906020820190565b0390a36100196001600655565b61309c565b506108fc611134565b506108fc61108a565b7fcb78cce20000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fea8e4eb50000000000000000000000000000000000000000000000000000000060005260046000fd5b67ffffffffffffffff81116105195760051b60200190565b9080601f830112156102e057813561124a8161121b565b9261125860405194856104f6565b81845260208085019260051b8201019283116102e057602001905b8282106112805750505090565b8135815260209182019101611273565b346102e05760a06003193601126102e0576004356112ad816102cf565b602435906112ba826102cf565b60443567ffffffffffffffff81116102e0576112da903690600401611233565b60643567ffffffffffffffff81116102e0576112fa903690600401611233565b906084359367ffffffffffffffff85116102e05761131f610019953690600401610a46565b936130b5565b801515036102e057565b35906102f082611325565b9190916101a0818403126102e057611350610a1a565b9261135a826102e5565b8452611368602083016102e5565b602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013567ffffffffffffffff81116102e057816113b5918401610a46565b60c085015260e082013567ffffffffffffffff81116102e057816113da918401610a46565b60e085015261010082013567ffffffffffffffff81116102e05781611400918401610a46565b6101008501526101208201359167ffffffffffffffff83116102e05761142e61018092611460948301610a46565b610120860152611441610140820161132f565b610140860152611454610160820161132f565b6101608601520161132f565b610180830152565b346102e05760406003193601126102e05760043567ffffffffffffffff81116102e05761149990369060040161133a565b60243533600052600760205260ff60406000205416156111f1576114bb6139c0565b6001600160a01b036114d483516001600160a01b031690565b16156115b2576114f9826114f46010546000526015602052604060002090565b6131b2565b6010546002611512826000526015602052604060002090565b015561152a6010546000526017602052604060002090565b55611551611540600d546001600160a01b031690565b60105461154b613368565b91613a31565b7fe07a95562871c772ebc3a39a800726de8fedabb15f6254e188290e94833c3a8d61158960c06010549301516040519182918261087d565b0390a261159f61159a601154612e6a565b601155565b6100196115ad601054612e6a565b601055565b7f64a969050000000000000000000000000000000000000000000000000000000060005260046000fd5b60606003193601126102e0576004356115f4816102cf565b6044359060243567ffffffffffffffff83116102e05761161b610019933690600401610a46565b916116246139c0565b61338c565b60031960409101126102e057600435611641816102cf565b9060243561088e81611325565b346102e05761165c36611629565b6001600160a01b036008541633036111f1576001600160a01b036100199216600052600760205260406000209060ff60ff1983541691151516179055565b346102e05760006003193601126102e05733600052600760205260ff60406000205416156111f15760035460ff8116156117015760ff19166003557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b346102e05760206003193601126102e0576001600160a01b03600435611750816102cf565b1660005260146020526020604060002054604051908152f35b906020808351928381520192019060005b8181106117875750505090565b825184526020938401939092019160010161177a565b90602061088e928181520190611769565b346102e05760406003193601126102e05760043567ffffffffffffffff81116102e057366023820112156102e0578060040135906117eb8261121b565b916117f960405193846104f6565b8083526024602084019160051b830101913683116102e057602401905b828210611857578360243567ffffffffffffffff81116102e0576108e79161184561184b923690600401611233565b9061389b565b6040519182918261179d565b602080918335611866816102cf565b815201910190611816565b346102e05760206003193601126102e057602061189d6004356000526004602052604060002054151590565b6040519015158152f35b346102e05760206003193601126102e0576118c360043561394b565b60408051928352602083019190915290f35b346102e05760006003193601126102e05760206040516fffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e05760006003193601126102e057602060ff600354166040519015158152f35b346102e05760206003193601126102e0576001600160a01b0360043561196a816102cf565b166000526016602052602060ff604060002054166040519015158152f35b346102e05760006003193601126102e0576020601154604051908152f35b346102e05760006003193601126102e0576020601354604051908152f35b346102e05760006003193601126102e05733600052600760205260ff60406000205416156111f1576119f46139c0565b600160ff1960035416176003557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b989197611aa29b9e9d9b6102f09d98611ad998611ace9860806101809f998f90611ae39f9a611a7e611abf9c611a6e85611ab09d6001600160a01b03169052565b6001600160a01b03166020850152565b60408301526060820152015260a08d01526101a060c08d01526101a08c019061083c565b908a820360e08c015261083c565b908882036101008a015261083c565b9086820361012088015261083c565b981515610140850152565b1515610160830152565b019015159052565b346102e05760206003193601126102e057600435600052601560205260406000206001600160a01b038154166108e76001600160a01b036001840154169260028101549060038101546004820154916005810154611b4b6006830161079a565b611b576007840161079a565b90611b646008850161079a565b92600a611b736009870161079a565b9501549660ff881696611b9160088a901c60ff169960101c60ff1690565b996040519d8e9d8e611a2d565b346102e05760006003193601126102e05760206001600160a01b0360085416604051908152f35b346102e05760006003193601126102e0576040516000600f54611be781610474565b808452906001811690811561094a5750600114611c0e576108e7836108db818503826104f6565b600f60009081527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802939250905b808210611c53575090915081016020016108db6108cb565b919260018160209254838588010152019101909291611c3b565b346102e05760406003193601126102e057600435611c8a816102cf565b6024359033600052600760205260ff60406000205416156111f1576001600160a01b0390611cb66139f6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291169190602081602481865afa9081156111ad57600091611ef4575b5081116111c457611d0e9061394b565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810183905290916020826044816000885af19081156111ad577f6a41f86b2a18fe00e10a9bd078e790ae82c2627a6f940166bddc2db475194a5f92611dcb92611ed7575b50604080516001600160a01b0387168152602081019290925290918291820190565b0390a1611e30602082611de6600d546001600160a01b031690565b60405193849283927fa9059cbb00000000000000000000000000000000000000000000000000000000845260048401602090939291936001600160a01b0360408201951681520152565b03816000875af180156111ad57611eaa575b50611e60826001600160a01b03166000526014602052604060002090565b611e6b8282546130a8565b90557e1a143d5b175701cb3246058ffac3d63945192075a926ff73a19930f09d587a6111a06001600160a01b0361118e600d546001600160a01b031690565b611ecb9060203d602011611ed0575b611ec381836104f6565b81019061399e565b611e42565b503d611eb9565b611eef9060203d602011611ed057611ec381836104f6565b611da9565b611f16915060203d602011611f1c575b611f0e81836104f6565b81019061337d565b38611cfe565b503d611f04565b346102e057611f3136611629565b6001600160a01b038216918215611fb25781611f70611f82923360005260016020526040600020906001600160a01b0316600052602052604060002090565b9060ff60ff1983541691151516179055565b60405190151581527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b7fced3e10000000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b346102e05760406003193601126102e05760043560243581600052600060205280612023336040600020906001600160a01b0316600052602052604060002090565b54106120395781156111f1576100199133613c65565b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152fd5b346102e05760406003193601126102e05760043560243567ffffffffffffffff81116102e0576120f090369060040161133a565b33600052600760205260ff60406000205416156111f15761210f6139c0565b811580156121fc575b80156121dc575b6121ad57612195610120826121637fedb8b0507e847265f25359546487d0a76de5fbc6bd6ee9d1aa4ac24919e20517946114f4876000526015602052604060002090565b84600261217a826000526015602052604060002090565b015561014081015161219a575b01516040519182918261087d565b0390a2005b6121a861159a6011546139b3565b612187565b7f3e2d116700000000000000000000000000000000000000000000000000000000600052600482905260246000fd5b506121f7610d69836000526004602052604060002054151590565b61211f565b50612216600a610d61846000526015602052604060002090565b612118565b346102e05760206003193601126102e05760043560005260046020526020604060002054604051908152f35b346102e05760006003193601126102e0576122a661226361051e565b61226b6105d5565b6122d061227661066c565b6122c2612281610703565b916122b46001600160a01b03600d54169560405198899860a08a5260a08a019061083c565b9088820360208a015261083c565b90868203604088015261083c565b90848203606086015261083c565b9060808301520390f35b346102e05760006003193601126102e0576020601254604051908152f35b346102e05760006003193601126102e05760206040516bffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102e05760206003193601126102e05760043561235e816102cf565b6001600160a01b03600854168033036111f1576001600160a01b038216918183146111f1577f55eb99d77b0e1ed261c0a8d11f026f811b8af01455a2b45189bcc87b93dfbbb7926123c561246f9383604051916123bc6020846104f6565b60008352613d12565b60005260076020526123e26040600020600160ff19825416179055565b61241d6124136123fa6008546001600160a01b031690565b6001600160a01b03166000526007602052604060002090565b60ff198154169055565b612455816001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000006008541617600855565b6040516001600160a01b0390911681529081906020820190565b0390a1005b346102e05760006003193601126102e0576108e76109d9610703565b346102e05760406003193601126102e057602060ff6124ee6004356124b4816102cf565b6001600160a01b03602435916124c9836102cf565b16600052600184526040600020906001600160a01b0316600052602052604060002090565b54166040519015158152f35b346102e05760a06003193601126102e057600435612517816102cf565b602435612523816102cf565b60643560443560843567ffffffffffffffff81116102e057612549903690600401610a46565b926001600160a01b03851694338614158061259f575b61256d576100199550613d6a565b857fe237d922000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b5085600052600160205260ff6125cc336040600020906001600160a01b0316600052602052604060002090565b54161561255f565b346102e05760206003193601126102e0576001600160a01b036004356125f9816102cf565b166000526007602052602060ff604060002054166040519015158152f35b346102e05760206003193601126102e05760043560005260176020526020604060002054604051908152f35b61266c9160005260006020526040600020906001600160a01b0316600052602052604060002090565b5490565b80156126d35780600052601560205260056040600020015442106126a657600052601560205261088e600960406000200161079a565b7f46b0692c0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b5061088e610703565b33600052600760205260ff60406000205416156111f1576126fb6139c0565b805180519067ffffffffffffffff8211610519576127238261271e600954610474565b6128c2565b602090601f83116001146128175782612807937f3046c72ba49864e170b04a61a682bae5dded7af46dbddbe599a9d7c04368129495936127799360009261280c575b50506000198260011b9260031b1c19161790565b6009555b61278a6020820151612967565b6127976040820151612a43565b6127fa60608201916127a98351612b1f565b6127f46127c060808301516001600160a01b031690565b6001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000600d541617600d55565b51612bfb565b516040519182918261087d565b0390a1565b015190503880612765565b6009600052601f19831691907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af9260005b8181106128aa5750926001928592612807967f3046c72ba49864e170b04a61a682bae5dded7af46dbddbe599a9d7c043681294989610612891575b505050811b0160095561277d565b015160001960f88460031b161c19169055388080612883565b92936020600181928786015181550195019301612848565b601f81116128ce575050565b60096000526020600020906020601f840160051c8301931061290b575b601f0160051c01905b8181106128ff575050565b600081556001016128f4565b90915081906128eb565b601f821161292257505050565b6000526020600020906020601f840160051c8301931061295d575b601f0160051c01905b818110612951575050565b60008155600101612946565b909150819061293d565b90815167ffffffffffffffff81116105195761298f81612988600a54610474565b600a612915565b602092601f82116001146129c4576129bf9293829160009261280c5750506000198260011b9260031b1c19161790565b600a55565b600a600052601f198216937fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89160005b868110612a2b5750836001959610612a12575b505050811b01600a55565b015160001960f88460031b161c19169055388080612a07565b919260206001819286850151815501940192016129f4565b90815167ffffffffffffffff811161051957612a6b81612a64600b54610474565b600b612915565b602092601f8211600114612aa057612a9b9293829160009261280c5750506000198260011b9260031b1c19161790565b600b55565b600b600052601f198216937f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99160005b868110612b075750836001959610612aee575b505050811b01600b55565b015160001960f88460031b161c19169055388080612ae3565b91926020600181928685015181550194019201612ad0565b90815167ffffffffffffffff811161051957612b4781612b40600c54610474565b600c612915565b602092601f8211600114612b7c57612b779293829160009261280c5750506000198260011b9260031b1c19161790565b600c55565b600c600052601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c79160005b868110612be35750836001959610612bca575b505050811b01600c55565b015160001960f88460031b161c19169055388080612bbf565b91926020600181928685015181550194019201612bac565b90815167ffffffffffffffff811161051957612c2381612c1c600e54610474565b600e612915565b602092601f8211600114612c5857612c539293829160009261280c5750506000198260011b9260031b1c19161790565b600e55565b600e600052601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9160005b868110612cbf5750836001959610612ca6575b505050811b01600e55565b015160001960f88460031b161c19169055388080612c9b565b91926020600181928685015181550194019201612c88565b919091825167ffffffffffffffff811161051957612cff81612cf98454610474565b84612915565b6020601f8211600114612d33578190612d2f93949560009261280c5750506000198260011b9260031b1c19161790565b9055565b601f19821690612d4884600052602060002090565b9160005b818110612d8457509583600195969710612d6b575b505050811b019055565b015160001960f88460031b161c19169055388080612d61565b9192602060018192868b015181550194019201612d4c565b15612da357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f43616e206c6973742061206d6178696d756d206f6620323520657069736f646560448201527f7320617420612074696d650000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b906000198201918211612e6557565b612e27565b6000198114612e655760010190565b604051906101a0820182811067ffffffffffffffff821117610519576040526000610180838281528260208201528260408201528260608201528260808201528260a0820152606060c0820152606060e08201526060610100820152606061012082015282610140820152826101608201520152565b90612ef98261121b565b612f0660405191826104f6565b828152601f19612f16829461121b565b019060005b828110612f2757505050565b602090612f32612e79565b82828501015201612f1b565b8051821015612f525760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906102f061307a600a612f92610a1a565b94612fb4612fa782546001600160a01b031690565b6001600160a01b03168752565b612fdb612fcb60018301546001600160a01b031690565b6001600160a01b03166020880152565b600281015460408701526003810154606087015260048101546080870152600581015460a087015261300f6006820161079a565b60c08701526130206007820161079a565b60e08701526130316008820161079a565b6101008701526130436009820161079a565b610120870152015461305c60ff82161515610140870152565b613071600882901c60ff161515610160870152565b60101c60ff1690565b1515610180840152565b906101f48202918083046101f41490151715612e6557565b6040513d6000823e3d90fd5b91908201809211612e6557565b939291906001600160a01b038516338114158061317d575b61314c576001600160a01b0382161561311d57156130ee576102f094613db8565b7f01a8351400000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7f57f447ce00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe237d922000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b5080600052600160205260ff6131aa336040600020906001600160a01b0316600052602052604060002090565b5416156130cd565b90613334610180600a6102f0946132076131d386516001600160a01b031690565b82906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b61325561321e60208701516001600160a01b031690565b60018301906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60408501516002820155606085015160038201556080850151600482015560a0850151600582015561328e60c086015160068301612cd7565b61329f60e086015160078301612cd7565b6132b161010086015160088301612cd7565b6132c361012086015160098301612cd7565b01926132e96132d6610140830151151590565b859060ff60ff1983541691151516179055565b61332d6132fa610160830151151590565b85547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690151560081b61ff0016178555565b0151151590565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690151560101b62ff000016179055565b604051906133776020836104f6565b60008252565b908160209103126102e0575190565b91909160056133a5846000526015602052604060002090565b0154421061386c576133c4610da5846000526015602052604060002090565b61014081015161383d576133e2846000526017602052604060002090565b548015159081613833575b50613802576080810180511515806137e3575b6137b557506101808101516137865760608101519061342960208201516001600160a01b031690565b826134e1575b5050506134456001600160a01b03928483613a31565b61346f610d69613468836001600160a01b03166000526016602052604060002090565b5460ff1690565b61349c575b167fe2e9ee7cfdf4db674114d80fd6a0406eccc9919bbf9f9dc11e19c3e3dde822d8600080a3565b6134c96134bc826001600160a01b03166000526016602052604060002090565b600160ff19825416179055565b6134dc6134d7601254612e6a565b601255565b613474565b6001600160a01b03811690816136155750508134106135e6576135038261394b565b9080600081156135dd575b600080809381936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1156111ad5760008093926135a461112061112084967f6a41f86b2a18fe00e10a9bd078e790ae82c2627a6f940166bddc2db475194a5f613594879860405191829182919060206040840193600081520152565b0390a1516001600160a01b031690565b8282156135d4575bf1156111ad576001600160a01b03926135cd61114c613445936013546130a8565b923861342f565b506108fc6135ac565b506108fc61350e565b7fcb78cce200000000000000000000000000000000000000000000000000000000600052600482905260246000fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015294959491929091602081602481875afa80156111ad578591600091613767575b50106137385761372986959361371061359487956001600160a01b039a61370a613731977f6a41f86b2a18fe00e10a9bd078e790ae82c2627a6f940166bddc2db475194a5f6136bb6134459d61394b565b96906136e9817f0000000000000000000000000000000000000000000000000000000000000000888a613ba1565b604080516001600160a01b038c168152602081019290925290918291820190565b91613ba1565b6001600160a01b03166000526014602052604060002090565b9182546130a8565b90556135cd565b7fcb78cce200000000000000000000000000000000000000000000000000000000600052600484905260246000fd5b613780915060203d602011611f1c57611f0e81836104f6565b3861366a565b5061379c611120600d546001600160a01b031690565b33036111f1576134456001600160a01b03928483613a31565b517f1098467f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b506137f8856000526004602052604060002090565b5481511115613400565b7f1098467f00000000000000000000000000000000000000000000000000000000600052610f226024906000600452565b90504211386133ed565b7f3e2d116700000000000000000000000000000000000000000000000000000000600052600484905260246000fd5b7f46b0692c00000000000000000000000000000000000000000000000000000000600052600483905260246000fd5b9190918051835180820361391b575050805190601f196138d36138bd8461121b565b936138cb60405195866104f6565b80855261121b565b0136602084013760005b8151811015613914578061390360019260051b6020808287010151918901015190612643565b61390d8286612f3e565b52016138dd565b5090925050565b7f5b0599910000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b906bffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016808302908382041483151715612e65576127109004808303928311612e65579190565b908160209103126102e0575161088e81611325565b8015612e65576000190190565b60ff600354166139cc57565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b600260065414613a07576002600655565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b92906001600160a01b0384161561311d576001613a6b60405192600184526020840152604083019160018352606084015260808301604052565b9091613a7a8284876000614217565b600094855b8451871015613acd57613ac56001918860051b90613ab3602080848a010151938a0101516000526004602052604060002090565b613abe8382546130a8565b90556130a8565b960195613a7f565b613ae7919594929650613ae2906005546130a8565b600555565b6001600160a01b0384161580613b3e575b15613b04575b50505050565b8051600103613b2d5790602080613b24959301519101519160003361412c565b38808080613afe565b613b3993600033613f7f565b613b24565b9360009591936000965b8551881015613b88576001908860051b90613b79602080848a010151938a0101516000526004602052604060002090565b82815403905501970196613b48565b613b9c919593975095919560055403600555565b613af8565b92906020926000926001600160a01b036040519281878501957f23b872dd000000000000000000000000000000000000000000000000000000008752166024850152166044830152606482015260648152613bfd6084826104f6565b519082855af11561309c576000513d613c5c57506001600160a01b0381163b155b613c255750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b60011415613c1e565b92916001600160a01b038416156130ee57613c9d60405192600184526020840152604083019160018352606084015260808301604052565b613cbb8183600060209781604051613cb58b826104f6565b52614217565b600090815b8351831015613cff576001908360051b90613cf08880848701015193880101516000526004602052604060002090565b82815403905501920191613cc0565b925050506102f091925060055403600555565b91906001600160a01b0381161561311d576001600160a01b038316156130ee576102f092613d62600160009160405192600184526020840152604083019160018352606084015260808301604052565b929091613db8565b90919392936001600160a01b0383161561311d576001600160a01b038216156130ee576102f094613d6260405192600184526020840152604083019160018352606084015260808301604052565b91939290613dc882868386614217565b6001600160a01b03831615613e8e575b6001600160a01b0381161580613e2d575b15613df6575b5050505050565b8451600103613e1c57602080613e12960151920151923361412c565b3880808080613def565b613e2894919233613f7f565b613e12565b94936000939091845b8651861015613e76576001908660051b90613e67602080848a010151938b0101516000526004602052604060002090565b82815403905501950194613e36565b613e899193969792955060055403600555565b613de9565b9392600092835b8551851015613ed157613ec96001918660051b90613ab3602080848a010151938b0101516000526004602052604060002090565b940193613e95565b613ee7919450613ae290969295966005546130a8565b613dd8565b908160209103126102e0575161088e81610344565b939061088e95936001600160a01b03613f419481613f339416885216602087015260a0604087015260a0860190611769565b908482036060860152611769565b91608081840391015261083c565b3d15613f7a573d90613f6082610a2a565b91613f6e60405193846104f6565b82523d6000602084013e565b606090565b9091949293853b613f93575b505050505050565b602093613fce9160405196879586957fbc197c8100000000000000000000000000000000000000000000000000000000875260048701613f01565b038160006001600160a01b0387165af1600091816140c7575b5061403c5750613ff5613f4f565b8051919082614035577f57f447ce000000000000000000000000000000000000000000000000000000006000526001600160a01b03821660045260246000fd5b9050602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000007fbc197c81000000000000000000000000000000000000000000000000000000009116036140915750388080808080613f8b565b7f57f447ce000000000000000000000000000000000000000000000000000000006000526001600160a01b031660045260246000fd5b6140ea91925060203d6020116140f1575b6140e281836104f6565b810190613eec565b9038613fe7565b503d6140d8565b91926001600160a01b0360a0948161088e98979416855216602084015260408301526060820152816080820152019061083c565b9091949293853b61413f57505050505050565b60209361417a9160405196879586957ff23a6e61000000000000000000000000000000000000000000000000000000008752600487016140f8565b038160006001600160a01b0387165af1600091816141f6575b506141a15750613ff5613f4f565b7fffffffff000000000000000000000000000000000000000000000000000000007ff23a6e61000000000000000000000000000000000000000000000000000000009116036140915750388080808080613f8b565b61421091925060203d6020116140f1576140e281836104f6565b9038614193565b9391926142226139c0565b835181519081810361391b57505060006001600160a01b03861694851515946001600160a01b038516801515935b8351811015614363578060051b90888887602080868a010151958b010151926142c3575b93600194614286575b50505001614250565b6142b9916142a1613729926000526000602052604060002090565b906001600160a01b0316600052602052604060002090565b905538888161427d565b505090916142df8c6142a1836000526000602052604060002090565b54828110614313578291888e61430a600197968e9503916142a1856000526000602052604060002090565b55909450614274565b6040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038e16600482015260248101919091526044810183905260648101829052608490fd5b5096955096509192505060018151146000146143bc5760209081015191810151604080519384529183015233917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291819081015b0390a4565b60405133927f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb9282916143b79183909161440161088e93604084526040840190611769565b91602081840391015261176956fea264697066735822122062e74ff4dc1f61e2b59e4aecd85e05b695db60f1040af684eb5370e9285e30fb64736f6c634300081c00330000000000000000000000003127bbfe8ea1b95ed98e17d228c0c1a431acacd4000000000000000000000000ee255662717dcb3912b027a64ef8b3cc004d660000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000000e536f6e6569756d207061727420310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005868747470733a2f2f66696c65732e6a616d69742e6170702f697066732f6261666b726569623566657a7a72636e346b3732666573376c627373356c737765356767676e74323466627078666f6d6e6674656b36366b62727500000000000000000000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b7265696471666b68336167626d6f79676c723776766b6a796b347236376b6a73717763736e71766f6e636e65657673797435696675706d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035350310000000000000000000000000000000000000000000000000000000000
Loading