More Info
Private Name Tags
Latest 25 from a total of 69 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 19741188 | 231 days ago | IN | 0 ETH | 0.00077892 | ||||
Claim | 19231982 | 302 days ago | IN | 0 ETH | 0.00217358 | ||||
Claim | 19015006 | 332 days ago | IN | 0 ETH | 0.00238989 | ||||
Claim | 18723513 | 373 days ago | IN | 0 ETH | 0.00400194 | ||||
Claim | 18688198 | 378 days ago | IN | 0 ETH | 0.0029517 | ||||
Claim | 18680503 | 379 days ago | IN | 0 ETH | 0.00346829 | ||||
Claim | 18674551 | 380 days ago | IN | 0 ETH | 0.00375639 | ||||
Claim | 18649214 | 384 days ago | IN | 0 ETH | 0.00232124 | ||||
Claim | 18637687 | 385 days ago | IN | 0 ETH | 0.00197693 | ||||
Claim | 18634974 | 386 days ago | IN | 0 ETH | 0.00310454 | ||||
Claim | 18633617 | 386 days ago | IN | 0 ETH | 0.00206769 | ||||
Claim | 18626532 | 387 days ago | IN | 0 ETH | 0.00218591 | ||||
Claim | 18616078 | 388 days ago | IN | 0 ETH | 0.00299424 | ||||
Claim | 18611765 | 389 days ago | IN | 0 ETH | 0.00331149 | ||||
Claim | 18611548 | 389 days ago | IN | 0 ETH | 0.00376795 | ||||
Claim | 18611531 | 389 days ago | IN | 0 ETH | 0.00383739 | ||||
Claim | 18610503 | 389 days ago | IN | 0 ETH | 0.00212836 | ||||
Claim | 18610423 | 389 days ago | IN | 0 ETH | 0.00148834 | ||||
Claim | 18610408 | 389 days ago | IN | 0 ETH | 0.00170592 | ||||
Claim | 18601868 | 390 days ago | IN | 0 ETH | 0.0019345 | ||||
Lock | 15356460 | 849 days ago | IN | 0 ETH | 0.0015769 | ||||
Set Management C... | 15356441 | 849 days ago | IN | 0 ETH | 0.00024875 | ||||
Mint | 15334042 | 853 days ago | IN | 1.7 ETH | 0.00094216 | ||||
Mint | 15333805 | 853 days ago | IN | 1.3 ETH | 0.00095026 | ||||
Mint | 15329458 | 853 days ago | IN | 1 ETH | 0.00084525 |
Latest 24 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
19741188 | 231 days ago | 0.02115624 ETH | ||||
19231982 | 302 days ago | 0.1057812 ETH | ||||
19015006 | 332 days ago | 0.04231248 ETH | ||||
18723513 | 373 days ago | 0.06346872 ETH | ||||
18688198 | 378 days ago | 0.06346872 ETH | ||||
18680503 | 379 days ago | 0.8674059 ETH | ||||
18674551 | 380 days ago | 0.16924993 ETH | ||||
18649214 | 384 days ago | 0.1057812 ETH | ||||
18637687 | 385 days ago | 0.02115624 ETH | ||||
18634974 | 386 days ago | 0.04231248 ETH | ||||
18633617 | 386 days ago | 0.06346872 ETH | ||||
18626532 | 387 days ago | 0.02115624 ETH | ||||
18616078 | 388 days ago | 0.02115624 ETH | ||||
18611548 | 389 days ago | 0.1057812 ETH | ||||
18611531 | 389 days ago | 0.16924993 ETH | ||||
18610503 | 389 days ago | 0.08462496 ETH | ||||
18610423 | 389 days ago | 0.04231248 ETH | ||||
18610408 | 389 days ago | 0.02115624 ETH | ||||
18601868 | 390 days ago | 0.16924993 ETH | ||||
18596312 | 391 days ago | 3.17343625 ETH | ||||
15356460 | 849 days ago | 0.375 ETH | ||||
15356460 | 849 days ago | 0.225 ETH | ||||
15356460 | 849 days ago | 14.25 ETH | ||||
15356460 | 849 days ago | 0.15 ETH |
Loading...
Loading
Contract Name:
VaultsManager
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; interface IVault { function start(uint256 tokenId) external payable; function distributeRewards(address account, uint256 balance, uint256 totalSupply) external; } interface INft { function mint(address sender, uint256 tokenId, uint256 tokens) external; function burn(address sender, uint256 tokenId, uint256 tokens) external; function totalSupply(uint256 tokenId) view external returns (uint256); function balanceOf(address account, uint256 tokenId) view external returns (uint256); } interface IDistributor { function snapshot() external returns (uint256); function receiveFee(uint256 snapshotId) external payable; } contract VaultsManager is Ownable { enum Status{Pending, Open, Locked, Closed, Exited} struct VaultData { Status status; uint256 price; uint256 maxSupply; address vaultContract; address partnerContract; bool publicSale; uint256 snapshotId; uint256 finalBalance; } mapping(uint256 => mapping(address => uint256)) public whitelist; mapping(uint256 => VaultData) public vaults; address public managementContract; INft immutable public nft; IDistributor immutable public distributor; constructor(address nft_, address distributor_) { nft = INft(nft_); distributor = IDistributor(distributor_); } function setManagementContract(address managementContract_) external onlyOwner { managementContract = managementContract_; } function totalSupply(uint256 tokenId) view public returns (uint256) { return nft.totalSupply(tokenId); } function balanceOf(address account, uint256 tokenId) view public returns (uint256){ return nft.balanceOf(account, tokenId); } function setWhiteList(uint256 tokenId, address[] memory accounts, uint256[] memory whitelistCounts) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { whitelist[tokenId][accounts[i]] = whitelistCounts[i]; } } function openPublic(uint256 tokenId) external onlyOwner { require(vaults[tokenId].status == Status.Open, "Manager: not enabled"); vaults[tokenId].publicSale = true; } function open(uint256 tokenId, uint256 price, uint256 maxSupply, bool publicSale) external onlyOwner { require(tokenId > 0, "Manager: tokenId is 0"); VaultData memory vault = vaults[tokenId]; require(vault.status == Status.Pending, "Manager: not pending"); uint256 snapshotId = distributor.snapshot(); vaults[tokenId] = VaultData({ status: Status.Open, price: price, maxSupply: maxSupply, vaultContract: address(0), partnerContract: address(0), publicSale: publicSale, snapshotId: snapshotId, finalBalance: 0 }); } function mint(uint256 tokenId, uint256 tokens) external payable { VaultData memory vault = vaults[tokenId]; require(vault.status == Status.Open, "Manager: not enabled"); require(totalSupply(tokenId) + tokens <= vault.maxSupply, "Manager: exceeds max"); require(msg.value == vault.price * tokens, "Manager: wrong amount"); if (!vault.publicSale) { uint256 whitelistCount = whitelist[tokenId][msg.sender]; require(tokens <= whitelistCount, "Manager: exceeds max"); whitelist[tokenId][msg.sender] = whitelistCount - tokens; } nft.mint(msg.sender, tokenId, tokens); } function lock(uint256 tokenId, address vaultContract, address partnerContract) external onlyOwner { VaultData storage vault = vaults[tokenId]; uint256 totalSupply_ = totalSupply(tokenId); require(totalSupply_ > 0, "Manager: no tokens"); require(managementContract != address(0), "Manager: management contract null"); require(partnerContract != address(0), "Manager: partner contract null"); require(vault.status == Status.Open, "Manager: contract not open"); uint256 balance = vault.price * totalSupply_; uint256 managementFee = (balance * 15) / 1000; uint256 distributableFee = (balance * 10) / 1000; uint256 partnerFee = (balance * 25) / 1000; uint256 operationAmount = balance - (managementFee + distributableFee + partnerFee); vault.status = Status.Locked; vault.vaultContract = vaultContract; vault.partnerContract = partnerContract; distributor.receiveFee{value : distributableFee}(vault.snapshotId); IVault(vaultContract).start{value : operationAmount}(tokenId); (bool managementPaymentSuccess,) = payable(managementContract).call{value : managementFee}(""); require(managementPaymentSuccess, "Manager: unsuccessful payment"); (bool partnerPaymentSuccess,) = payable(partnerContract).call{value : partnerFee}(""); require(partnerPaymentSuccess, "Manager: unsuccessful payment"); } function allowExit(uint256 tokenId) external onlyOwner { VaultData storage vault = vaults[tokenId]; require(vault.status == Status.Open, "Manager: bad status"); vault.status = Status.Exited; } function exit(uint256 tokenId) external { VaultData memory vault = vaults[tokenId]; require(vault.status == Status.Exited, "Manager: exit not possible"); uint256 balance = balanceOf(msg.sender, tokenId); require(balance > 0, "Manager: not a holder"); nft.burn(msg.sender, tokenId, balance); (bool success,) = payable(msg.sender).call{value : balance * vault.price}(""); require(success, "Manager: unsuccessful payment"); } function close(uint256 tokenId) external payable { VaultData storage vault = vaults[tokenId]; require(vault.status == Status.Locked, "Manager: not locked"); require(msg.sender == vault.vaultContract, "Manager: only vault"); uint256 collected = totalSupply(tokenId) * vault.price; uint256 fee; uint256 partnerFee; if (msg.value > collected) { uint256 profit = msg.value - collected; fee = (profit * 5) / 100; partnerFee = (profit * 15) / 100; distributor.receiveFee{value : fee}(vault.snapshotId); } vault.finalBalance = msg.value - (fee * 2 + partnerFee); vault.status = Status.Closed; if (fee > 0) { (bool managementPaymentSuccess,) = payable(managementContract).call{value : fee}(""); require(managementPaymentSuccess, "Manager: unsuccessful payment"); } if (partnerFee > 0) { (bool partnerPaymentSuccess,) = payable(vault.partnerContract).call{value : partnerFee}(""); require(partnerPaymentSuccess, "Manager: unsuccessful payment"); } } function claimable(address account, uint256 tokenId) public view returns (uint256) { uint256 balance = balanceOf(account, tokenId); uint256 finalBalance = vaults[tokenId].finalBalance; uint256 totalSupply_ = totalSupply(tokenId); return (finalBalance * balance) / totalSupply_; } function claim(uint256 tokenId) external { VaultData storage vault = vaults[tokenId]; require(vault.status == Status.Closed, "Manager: claim not available"); uint256 balance = balanceOf(msg.sender, tokenId); require(balance > 0, "Manager: nothing to claim"); uint256 totalSupply_ = totalSupply(tokenId); uint256 finalBalance = vault.finalBalance; uint256 amount = (finalBalance * balance) / totalSupply_; IVault(vault.vaultContract).distributeRewards(msg.sender, balance, totalSupply_); vault.finalBalance = finalBalance - amount; nft.burn(msg.sender, tokenId, balance); (bool success,) = payable(msg.sender).call{value : amount}(""); require(success, "Manager: unsuccessful payment"); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"nft_","type":"address"},{"internalType":"address","name":"distributor_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"allowExit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract IDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"vaultContract","type":"address"},{"internalType":"address","name":"partnerContract","type":"address"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"managementContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"contract INft","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"bool","name":"publicSale","type":"bool"}],"name":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"openPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"managementContract_","type":"address"}],"name":"setManagementContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"whitelistCounts","type":"uint256[]"}],"name":"setWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"vaults","outputs":[{"internalType":"enum VaultsManager.Status","name":"status","type":"uint8"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"address","name":"vaultContract","type":"address"},{"internalType":"address","name":"partnerContract","type":"address"},{"internalType":"bool","name":"publicSale","type":"bool"},{"internalType":"uint256","name":"snapshotId","type":"uint256"},{"internalType":"uint256","name":"finalBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b5060405162004138380380620041388339818101604052810190620000379190620001b0565b620000576200004b620000cd60201b60201c565b620000d560201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050506200023f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620001aa8162000225565b92915050565b60008060408385031215620001c457600080fd5b6000620001d48582860162000199565b9250506020620001e78582860162000199565b9150509250929050565b6000620001fe8262000205565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200023081620001f1565b81146200023c57600080fd5b50565b60805160601c60a05160601c613e95620002a36000396000818161076201528181610d3e0152818161224901526128070152600081816104d6015281816113cc015281816117240152818161186801528181611f5601526121990152613e956000f3fe6080604052600436106101295760003560e01c80636c37eac7116100ab578063b3e5cc4a1161006f578063b3e5cc4a146103c4578063bd85b039146103ef578063bfe109281461042c578063c044e81d14610457578063ecd1eb6c14610480578063f2fde38b146104a957610129565b80636c37eac7146102ec578063715018a6146103155780637f8661a11461032c5780638c64ea4a146103555780638da5cb5b1461039957610129565b8063379607f5116100f2578063379607f5146101f557806347ccca021461021e5780634b25bfce1461024957806360efe334146102865780636558edff146102c357610129565b8062fdd58e1461012e5780630aebeb4e1461016b57806313c89204146101875780631b2ef1ca146101b05780631df77caa146101cc575b600080fd5b34801561013a57600080fd5b5061015560048036038101906101509190612df6565b6104d2565b60405161016291906136e7565b60405180910390f35b61018560048036038101906101809190612e32565b610586565b005b34801561019357600080fd5b506101ae60048036038101906101a99190612fca565b610a2b565b005b6101ca60048036038101906101c59190612f8e565b610fcc565b005b3480156101d857600080fd5b506101f360048036038101906101ee9190612dcd565b61145e565b005b34801561020157600080fd5b5061021c60048036038101906102179190612e32565b61151e565b005b34801561022a57600080fd5b50610233611866565b60405161024091906133ee565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612e84565b61188a565b60405161027d91906136e7565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612df6565b6118af565b6040516102ba91906136e7565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612e32565b611908565b005b3480156102f857600080fd5b50610313600480360381019061030e9190612f0f565b611ab6565b005b34801561032157600080fd5b5061032a611c2c565b005b34801561033857600080fd5b50610353600480360381019061034e9190612e32565b611cb4565b005b34801561036157600080fd5b5061037c60048036038101906103779190612e32565b6120a4565b604051610390989796959493929190613409565b60405180910390f35b3480156103a557600080fd5b506103ae612146565b6040516103bb9190613358565b60405180910390f35b3480156103d057600080fd5b506103d961216f565b6040516103e69190613358565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190612e32565b612195565b60405161042391906136e7565b60405180910390f35b34801561043857600080fd5b50610441612247565b60405161044e91906133d3565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190612e32565b61226b565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612ec0565b6123ef565b005b3480156104b557600080fd5b506104d060048036038101906104cb9190612dcd565b612a89565b005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1662fdd58e84846040518363ffffffff1660e01b815260040161052e929190613373565b60206040518083038186803b15801561054657600080fd5b505afa15801561055a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057e9190612e5b565b905092915050565b6000600260008381526020019081526020016000209050600260048111156105d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160000160009054906101000a900460ff166004811115610621577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890613507565b60405180910390fd5b8060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90613647565b60405180910390fd5b6000816001015461070384612195565b61070d9190613822565b9050600080823411156107f25760008334610728919061387c565b905060646005826107399190613822565b61074391906137f1565b92506064600f826107549190613822565b61075e91906137f1565b91507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630969acb38487600501546040518363ffffffff1660e01b81526004016107be91906136e7565b6000604051808303818588803b1580156107d757600080fd5b505af11580156107eb573d6000803e3d6000fd5b5050505050505b806002836108009190613822565b61080a919061379b565b34610815919061387c565b846006018190555060038460000160006101000a81548160ff0219169083600481111561086b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506000821115610949576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516108c190613343565b60006040518083038185875af1925050503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b5050905080610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e90613667565b60405180910390fd5b505b6000811115610a245760008460040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161099c90613343565b60006040518083038185875af1925050503d80600081146109d9576040519150601f19603f3d011682016040523d82523d6000602084013e6109de565b606091505b5050905080610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1990613667565b60405180910390fd5b505b5050505050565b610a33612b81565b73ffffffffffffffffffffffffffffffffffffffff16610a51612146565b73ffffffffffffffffffffffffffffffffffffffff1614610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90613607565b60405180910390fd5b60008411610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190613487565b60405180910390fd5b600060026000868152602001908152602001600020604051806101000160405290816000820160009054906101000a900460ff166004811115610b56577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115610b8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160149054906101000a900460ff1615151515815260200160058201548152602001600682015481525050905060006004811115610cbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600001516004811115610cfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d31906134a7565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639711715a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190612e5b565b905060405180610100016040528060016004811115610e24577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001868152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200182815260200160008152506002600088815260200190815260200160002060008201518160000160006101000a81548160ff02191690836004811115610ee6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160040160146101000a81548160ff02191690831515021790555060c0820151816005015560e08201518160060155905050505050505050565b600060026000848152602001908152602001600020604051806101000160405290816000820160009054906101000a900460ff166004811115611038577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115611070577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160149054906101000a900460ff161515151581526020016005820154815260200160068201548152505090506001600481111561119f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816000015160048111156111dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461121c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121390613687565b60405180910390fd5b80604001518261122b85612195565b611235919061379b565b1115611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126d90613527565b60405180910390fd5b8181602001516112869190613822565b34146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906135c7565b60405180910390fd5b8060a001516113ca5760006001600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f90613527565b60405180910390fd5b8281611374919061387c565b6001600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663156e29f63385856040518463ffffffff1660e01b81526004016114279392919061339c565b600060405180830381600087803b15801561144157600080fd5b505af1158015611455573d6000803e3d6000fd5b50505050505050565b611466612b81565b73ffffffffffffffffffffffffffffffffffffffff16611484612146565b73ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613607565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006002600083815260200190815260200160002090506003600481111561156f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160000160009054906101000a900460ff1660048111156115b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f0906136c7565b60405180910390fd5b600061160533846104d2565b90506000811161164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190613547565b60405180910390fd5b600061165584612195565b9050600083600601549050600082848361166f9190613822565b61167991906137f1565b90508460030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638dc3ec4d3386866040518463ffffffff1660e01b81526004016116dc9392919061339c565b600060405180830381600087803b1580156116f657600080fd5b505af115801561170a573d6000803e3d6000fd5b50505050808261171a919061387c565b85600601819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f5298aca3388876040518463ffffffff1660e01b815260040161177f9392919061339c565b600060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b5050505060003373ffffffffffffffffffffffffffffffffffffffff16826040516117d790613343565b60006040518083038185875af1925050503d8060008114611814576040519150601f19603f3d011682016040523d82523d6000602084013e611819565b606091505b505090508061185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613667565b60405180910390fd5b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001602052816000526040600020602052806000526040600020600091509150505481565b6000806118bc84846104d2565b905060006002600085815260200190815260200160002060060154905060006118e485612195565b90508083836118f39190613822565b6118fd91906137f1565b935050505092915050565b611910612b81565b73ffffffffffffffffffffffffffffffffffffffff1661192e612146565b73ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90613607565b60405180910390fd5b6000600260008381526020019081526020016000209050600160048111156119d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160000160009054906101000a900460ff166004811115611a1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613587565b60405180910390fd5b60048160000160006101000a81548160ff02191690836004811115611aad577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055505050565b611abe612b81565b73ffffffffffffffffffffffffffffffffffffffff16611adc612146565b73ffffffffffffffffffffffffffffffffffffffff1614611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990613607565b60405180910390fd5b60005b8251811015611c2657818181518110611b77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600160008681526020019081526020016000206000858481518110611bcd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080611c1e90613996565b915050611b35565b50505050565b611c34612b81565b73ffffffffffffffffffffffffffffffffffffffff16611c52612146565b73ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613607565b60405180910390fd5b611cb26000612b89565b565b600060026000838152602001908152602001600020604051806101000160405290816000820160009054906101000a900460ff166004811115611d20577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115611d58577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160149054906101000a900460ff16151515158152602001600582015481526020016006820154815250509050600480811115611e86577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600001516004811115611ec3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efa90613627565b60405180910390fd5b6000611f0f33846104d2565b905060008111611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b906135e7565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f5298aca3385846040518463ffffffff1660e01b8152600401611fb19392919061339c565b600060405180830381600087803b158015611fcb57600080fd5b505af1158015611fdf573d6000803e3d6000fd5b5050505060003373ffffffffffffffffffffffffffffffffffffffff1683602001518361200c9190613822565b60405161201890613343565b60006040518083038185875af1925050503d8060008114612055576040519150601f19603f3d011682016040523d82523d6000602084013e61205a565b606091505b505090508061209e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209590613667565b60405180910390fd5b50505050565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160149054906101000a900460ff16908060050154908060060154905088565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bd85b039836040518263ffffffff1660e01b81526004016121f091906136e7565b60206040518083038186803b15801561220857600080fd5b505afa15801561221c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122409190612e5b565b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b612273612b81565b73ffffffffffffffffffffffffffffffffffffffff16612291612146565b73ffffffffffffffffffffffffffffffffffffffff16146122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90613607565b60405180910390fd5b60016004811115612321577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002600083815260200190815260200160002060000160009054906101000a900460ff16600481111561237d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b490613687565b60405180910390fd5b60016002600083815260200190815260200160002060040160146101000a81548160ff02191690831515021790555050565b6123f7612b81565b73ffffffffffffffffffffffffffffffffffffffff16612415612146565b73ffffffffffffffffffffffffffffffffffffffff161461246b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246290613607565b60405180910390fd5b6000600260008581526020019081526020016000209050600061248d85612195565b9050600081116124d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c9906136a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906134e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cb906135a7565b60405180910390fd5b6001600481111561260e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260000160009054906101000a900460ff166004811115612658577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f90613567565b60405180910390fd5b60008183600101546126aa9190613822565b905060006103e8600f836126be9190613822565b6126c891906137f1565b905060006103e8600a846126dc9190613822565b6126e691906137f1565b905060006103e86019856126fa9190613822565b61270491906137f1565b90506000818385612715919061379b565b61271f919061379b565b8561272a919061387c565b905060028760000160006101000a81548160ff0219169083600481111561277a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550888760030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550878760040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630969acb38489600501546040518363ffffffff1660e01b815260040161286391906136e7565b6000604051808303818588803b15801561287c57600080fd5b505af1158015612890573d6000803e3d6000fd5b50505050508873ffffffffffffffffffffffffffffffffffffffff166395805dad828c6040518363ffffffff1660e01b81526004016128cf91906136e7565b6000604051808303818588803b1580156128e857600080fd5b505af11580156128fc573d6000803e3d6000fd5b50505050506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168560405161294990613343565b60006040518083038185875af1925050503d8060008114612986576040519150601f19603f3d011682016040523d82523d6000602084013e61298b565b606091505b50509050806129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c690613667565b60405180910390fd5b60008973ffffffffffffffffffffffffffffffffffffffff16846040516129f590613343565b60006040518083038185875af1925050503d8060008114612a32576040519150601f19603f3d011682016040523d82523d6000602084013e612a37565b606091505b5050905080612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7290613667565b60405180910390fd5b505050505050505050505050565b612a91612b81565b73ffffffffffffffffffffffffffffffffffffffff16612aaf612146565b73ffffffffffffffffffffffffffffffffffffffff1614612b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afc90613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6c906134c7565b60405180910390fd5b612b7e81612b89565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612c60612c5b84613727565b613702565b90508083825260208201905082856020860282011115612c7f57600080fd5b60005b85811015612caf5781612c958882612d25565b845260208401935060208301925050600181019050612c82565b5050509392505050565b6000612ccc612cc784613753565b613702565b90508083825260208201905082856020860282011115612ceb57600080fd5b60005b85811015612d1b5781612d018882612da3565b845260208401935060208301925050600181019050612cee565b5050509392505050565b600081359050612d3481613e1a565b92915050565b600082601f830112612d4b57600080fd5b8135612d5b848260208601612c4d565b91505092915050565b600082601f830112612d7557600080fd5b8135612d85848260208601612cb9565b91505092915050565b600081359050612d9d81613e31565b92915050565b600081359050612db281613e48565b92915050565b600081519050612dc781613e48565b92915050565b600060208284031215612ddf57600080fd5b6000612ded84828501612d25565b91505092915050565b60008060408385031215612e0957600080fd5b6000612e1785828601612d25565b9250506020612e2885828601612da3565b9150509250929050565b600060208284031215612e4457600080fd5b6000612e5284828501612da3565b91505092915050565b600060208284031215612e6d57600080fd5b6000612e7b84828501612db8565b91505092915050565b60008060408385031215612e9757600080fd5b6000612ea585828601612da3565b9250506020612eb685828601612d25565b9150509250929050565b600080600060608486031215612ed557600080fd5b6000612ee386828701612da3565b9350506020612ef486828701612d25565b9250506040612f0586828701612d25565b9150509250925092565b600080600060608486031215612f2457600080fd5b6000612f3286828701612da3565b935050602084013567ffffffffffffffff811115612f4f57600080fd5b612f5b86828701612d3a565b925050604084013567ffffffffffffffff811115612f7857600080fd5b612f8486828701612d64565b9150509250925092565b60008060408385031215612fa157600080fd5b6000612faf85828601612da3565b9250506020612fc085828601612da3565b9150509250929050565b60008060008060808587031215612fe057600080fd5b6000612fee87828801612da3565b9450506020612fff87828801612da3565b935050604061301087828801612da3565b925050606061302187828801612d8e565b91505092959194509250565b613036816138b0565b82525050565b613045816138c2565b82525050565b6130548161390b565b82525050565b6130638161392f565b82525050565b61307281613953565b82525050565b600061308560158361378a565b915061309082613aac565b602082019050919050565b60006130a860148361378a565b91506130b382613ad5565b602082019050919050565b60006130cb60268361378a565b91506130d682613afe565b604082019050919050565b60006130ee60218361378a565b91506130f982613b4d565b604082019050919050565b600061311160138361378a565b915061311c82613b9c565b602082019050919050565b600061313460148361378a565b915061313f82613bc5565b602082019050919050565b600061315760198361378a565b915061316282613bee565b602082019050919050565b600061317a601a8361378a565b915061318582613c17565b602082019050919050565b600061319d60138361378a565b91506131a882613c40565b602082019050919050565b60006131c0601e8361378a565b91506131cb82613c69565b602082019050919050565b60006131e360158361378a565b91506131ee82613c92565b602082019050919050565b600061320660158361378a565b915061321182613cbb565b602082019050919050565b600061322960208361378a565b915061323482613ce4565b602082019050919050565b600061324c601a8361378a565b915061325782613d0d565b602082019050919050565b600061326f60138361378a565b915061327a82613d36565b602082019050919050565b6000613292601d8361378a565b915061329d82613d5f565b602082019050919050565b60006132b560008361377f565b91506132c082613d88565b600082019050919050565b60006132d860148361378a565b91506132e382613d8b565b602082019050919050565b60006132fb60128361378a565b915061330682613db4565b602082019050919050565b600061331e601c8361378a565b915061332982613ddd565b602082019050919050565b61333d81613901565b82525050565b600061334e826132a8565b9150819050919050565b600060208201905061336d600083018461302d565b92915050565b6000604082019050613388600083018561302d565b6133956020830184613334565b9392505050565b60006060820190506133b1600083018661302d565b6133be6020830185613334565b6133cb6040830184613334565b949350505050565b60006020820190506133e8600083018461304b565b92915050565b6000602082019050613403600083018461305a565b92915050565b60006101008201905061341f600083018b613069565b61342c602083018a613334565b6134396040830189613334565b613446606083018861302d565b613453608083018761302d565b61346060a083018661303c565b61346d60c0830185613334565b61347a60e0830184613334565b9998505050505050505050565b600060208201905081810360008301526134a081613078565b9050919050565b600060208201905081810360008301526134c08161309b565b9050919050565b600060208201905081810360008301526134e0816130be565b9050919050565b60006020820190508181036000830152613500816130e1565b9050919050565b6000602082019050818103600083015261352081613104565b9050919050565b6000602082019050818103600083015261354081613127565b9050919050565b600060208201905081810360008301526135608161314a565b9050919050565b600060208201905081810360008301526135808161316d565b9050919050565b600060208201905081810360008301526135a081613190565b9050919050565b600060208201905081810360008301526135c0816131b3565b9050919050565b600060208201905081810360008301526135e0816131d6565b9050919050565b60006020820190508181036000830152613600816131f9565b9050919050565b600060208201905081810360008301526136208161321c565b9050919050565b600060208201905081810360008301526136408161323f565b9050919050565b6000602082019050818103600083015261366081613262565b9050919050565b6000602082019050818103600083015261368081613285565b9050919050565b600060208201905081810360008301526136a0816132cb565b9050919050565b600060208201905081810360008301526136c0816132ee565b9050919050565b600060208201905081810360008301526136e081613311565b9050919050565b60006020820190506136fc6000830184613334565b92915050565b600061370c61371d565b90506137188282613965565b919050565b6000604051905090565b600067ffffffffffffffff82111561374257613741613a6c565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561376e5761376d613a6c565b5b602082029050602081019050919050565b600081905092915050565b600082825260208201905092915050565b60006137a682613901565b91506137b183613901565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137e6576137e56139df565b5b828201905092915050565b60006137fc82613901565b915061380783613901565b92508261381757613816613a0e565b5b828204905092915050565b600061382d82613901565b915061383883613901565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613871576138706139df565b5b828202905092915050565b600061388782613901565b915061389283613901565b9250828210156138a5576138a46139df565b5b828203905092915050565b60006138bb826138e1565b9050919050565b60008115159050919050565b60008190506138dc82613e06565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006139168261391d565b9050919050565b6000613928826138e1565b9050919050565b600061393a82613941565b9050919050565b600061394c826138e1565b9050919050565b600061395e826138ce565b9050919050565b61396e82613a9b565b810181811067ffffffffffffffff8211171561398d5761398c613a6c565b5b80604052505050565b60006139a182613901565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139d4576139d36139df565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4d616e616765723a20746f6b656e496420697320300000000000000000000000600082015250565b7f4d616e616765723a206e6f742070656e64696e67000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4d616e616765723a206d616e6167656d656e7420636f6e7472616374206e756c60008201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d616e616765723a206e6f74206c6f636b656400000000000000000000000000600082015250565b7f4d616e616765723a2065786365656473206d6178000000000000000000000000600082015250565b7f4d616e616765723a206e6f7468696e6720746f20636c61696d00000000000000600082015250565b7f4d616e616765723a20636f6e7472616374206e6f74206f70656e000000000000600082015250565b7f4d616e616765723a206261642073746174757300000000000000000000000000600082015250565b7f4d616e616765723a20706172746e657220636f6e7472616374206e756c6c0000600082015250565b7f4d616e616765723a2077726f6e6720616d6f756e740000000000000000000000600082015250565b7f4d616e616765723a206e6f74206120686f6c6465720000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d616e616765723a2065786974206e6f7420706f737369626c65000000000000600082015250565b7f4d616e616765723a206f6e6c79207661756c7400000000000000000000000000600082015250565b7f4d616e616765723a20756e7375636365737366756c207061796d656e74000000600082015250565b50565b7f4d616e616765723a206e6f7420656e61626c6564000000000000000000000000600082015250565b7f4d616e616765723a206e6f20746f6b656e730000000000000000000000000000600082015250565b7f4d616e616765723a20636c61696d206e6f7420617661696c61626c6500000000600082015250565b60058110613e1757613e16613a3d565b5b50565b613e23816138b0565b8114613e2e57600080fd5b50565b613e3a816138c2565b8114613e4557600080fd5b50565b613e5181613901565b8114613e5c57600080fd5b5056fea2646970667358221220d252ce4e6bc7c6b6bf17e692a3ff4ddf789adcd52e89c0e10657a29fc6ae84d164736f6c63430008040033000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff
Deployed Bytecode
0x6080604052600436106101295760003560e01c80636c37eac7116100ab578063b3e5cc4a1161006f578063b3e5cc4a146103c4578063bd85b039146103ef578063bfe109281461042c578063c044e81d14610457578063ecd1eb6c14610480578063f2fde38b146104a957610129565b80636c37eac7146102ec578063715018a6146103155780637f8661a11461032c5780638c64ea4a146103555780638da5cb5b1461039957610129565b8063379607f5116100f2578063379607f5146101f557806347ccca021461021e5780634b25bfce1461024957806360efe334146102865780636558edff146102c357610129565b8062fdd58e1461012e5780630aebeb4e1461016b57806313c89204146101875780631b2ef1ca146101b05780631df77caa146101cc575b600080fd5b34801561013a57600080fd5b5061015560048036038101906101509190612df6565b6104d2565b60405161016291906136e7565b60405180910390f35b61018560048036038101906101809190612e32565b610586565b005b34801561019357600080fd5b506101ae60048036038101906101a99190612fca565b610a2b565b005b6101ca60048036038101906101c59190612f8e565b610fcc565b005b3480156101d857600080fd5b506101f360048036038101906101ee9190612dcd565b61145e565b005b34801561020157600080fd5b5061021c60048036038101906102179190612e32565b61151e565b005b34801561022a57600080fd5b50610233611866565b60405161024091906133ee565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612e84565b61188a565b60405161027d91906136e7565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612df6565b6118af565b6040516102ba91906136e7565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612e32565b611908565b005b3480156102f857600080fd5b50610313600480360381019061030e9190612f0f565b611ab6565b005b34801561032157600080fd5b5061032a611c2c565b005b34801561033857600080fd5b50610353600480360381019061034e9190612e32565b611cb4565b005b34801561036157600080fd5b5061037c60048036038101906103779190612e32565b6120a4565b604051610390989796959493929190613409565b60405180910390f35b3480156103a557600080fd5b506103ae612146565b6040516103bb9190613358565b60405180910390f35b3480156103d057600080fd5b506103d961216f565b6040516103e69190613358565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190612e32565b612195565b60405161042391906136e7565b60405180910390f35b34801561043857600080fd5b50610441612247565b60405161044e91906133d3565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190612e32565b61226b565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612ec0565b6123ef565b005b3480156104b557600080fd5b506104d060048036038101906104cb9190612dcd565b612a89565b005b60007f000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f73ffffffffffffffffffffffffffffffffffffffff1662fdd58e84846040518363ffffffff1660e01b815260040161052e929190613373565b60206040518083038186803b15801561054657600080fd5b505afa15801561055a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057e9190612e5b565b905092915050565b6000600260008381526020019081526020016000209050600260048111156105d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160000160009054906101000a900460ff166004811115610621577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890613507565b60405180910390fd5b8060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90613647565b60405180910390fd5b6000816001015461070384612195565b61070d9190613822565b9050600080823411156107f25760008334610728919061387c565b905060646005826107399190613822565b61074391906137f1565b92506064600f826107549190613822565b61075e91906137f1565b91507f000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff73ffffffffffffffffffffffffffffffffffffffff16630969acb38487600501546040518363ffffffff1660e01b81526004016107be91906136e7565b6000604051808303818588803b1580156107d757600080fd5b505af11580156107eb573d6000803e3d6000fd5b5050505050505b806002836108009190613822565b61080a919061379b565b34610815919061387c565b846006018190555060038460000160006101000a81548160ff0219169083600481111561086b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506000821115610949576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516108c190613343565b60006040518083038185875af1925050503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b5050905080610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e90613667565b60405180910390fd5b505b6000811115610a245760008460040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161099c90613343565b60006040518083038185875af1925050503d80600081146109d9576040519150601f19603f3d011682016040523d82523d6000602084013e6109de565b606091505b5050905080610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1990613667565b60405180910390fd5b505b5050505050565b610a33612b81565b73ffffffffffffffffffffffffffffffffffffffff16610a51612146565b73ffffffffffffffffffffffffffffffffffffffff1614610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90613607565b60405180910390fd5b60008411610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190613487565b60405180910390fd5b600060026000868152602001908152602001600020604051806101000160405290816000820160009054906101000a900460ff166004811115610b56577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115610b8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160149054906101000a900460ff1615151515815260200160058201548152602001600682015481525050905060006004811115610cbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600001516004811115610cfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d31906134a7565b60405180910390fd5b60007f000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff73ffffffffffffffffffffffffffffffffffffffff16639711715a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190612e5b565b905060405180610100016040528060016004811115610e24577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001868152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200182815260200160008152506002600088815260200190815260200160002060008201518160000160006101000a81548160ff02191690836004811115610ee6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160040160146101000a81548160ff02191690831515021790555060c0820151816005015560e08201518160060155905050505050505050565b600060026000848152602001908152602001600020604051806101000160405290816000820160009054906101000a900460ff166004811115611038577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115611070577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160149054906101000a900460ff161515151581526020016005820154815260200160068201548152505090506001600481111561119f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816000015160048111156111dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461121c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121390613687565b60405180910390fd5b80604001518261122b85612195565b611235919061379b565b1115611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126d90613527565b60405180910390fd5b8181602001516112869190613822565b34146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906135c7565b60405180910390fd5b8060a001516113ca5760006001600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f90613527565b60405180910390fd5b8281611374919061387c565b6001600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b7f000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f73ffffffffffffffffffffffffffffffffffffffff1663156e29f63385856040518463ffffffff1660e01b81526004016114279392919061339c565b600060405180830381600087803b15801561144157600080fd5b505af1158015611455573d6000803e3d6000fd5b50505050505050565b611466612b81565b73ffffffffffffffffffffffffffffffffffffffff16611484612146565b73ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613607565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006002600083815260200190815260200160002090506003600481111561156f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160000160009054906101000a900460ff1660048111156115b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f0906136c7565b60405180910390fd5b600061160533846104d2565b90506000811161164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190613547565b60405180910390fd5b600061165584612195565b9050600083600601549050600082848361166f9190613822565b61167991906137f1565b90508460030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638dc3ec4d3386866040518463ffffffff1660e01b81526004016116dc9392919061339c565b600060405180830381600087803b1580156116f657600080fd5b505af115801561170a573d6000803e3d6000fd5b50505050808261171a919061387c565b85600601819055507f000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f73ffffffffffffffffffffffffffffffffffffffff1663f5298aca3388876040518463ffffffff1660e01b815260040161177f9392919061339c565b600060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b5050505060003373ffffffffffffffffffffffffffffffffffffffff16826040516117d790613343565b60006040518083038185875af1925050503d8060008114611814576040519150601f19603f3d011682016040523d82523d6000602084013e611819565b606091505b505090508061185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613667565b60405180910390fd5b50505050505050565b7f000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f81565b6001602052816000526040600020602052806000526040600020600091509150505481565b6000806118bc84846104d2565b905060006002600085815260200190815260200160002060060154905060006118e485612195565b90508083836118f39190613822565b6118fd91906137f1565b935050505092915050565b611910612b81565b73ffffffffffffffffffffffffffffffffffffffff1661192e612146565b73ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90613607565b60405180910390fd5b6000600260008381526020019081526020016000209050600160048111156119d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160000160009054906101000a900460ff166004811115611a1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613587565b60405180910390fd5b60048160000160006101000a81548160ff02191690836004811115611aad577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055505050565b611abe612b81565b73ffffffffffffffffffffffffffffffffffffffff16611adc612146565b73ffffffffffffffffffffffffffffffffffffffff1614611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990613607565b60405180910390fd5b60005b8251811015611c2657818181518110611b77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600160008681526020019081526020016000206000858481518110611bcd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080611c1e90613996565b915050611b35565b50505050565b611c34612b81565b73ffffffffffffffffffffffffffffffffffffffff16611c52612146565b73ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613607565b60405180910390fd5b611cb26000612b89565b565b600060026000838152602001908152602001600020604051806101000160405290816000820160009054906101000a900460ff166004811115611d20577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115611d58577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160149054906101000a900460ff16151515158152602001600582015481526020016006820154815250509050600480811115611e86577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600001516004811115611ec3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efa90613627565b60405180910390fd5b6000611f0f33846104d2565b905060008111611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b906135e7565b60405180910390fd5b7f000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f73ffffffffffffffffffffffffffffffffffffffff1663f5298aca3385846040518463ffffffff1660e01b8152600401611fb19392919061339c565b600060405180830381600087803b158015611fcb57600080fd5b505af1158015611fdf573d6000803e3d6000fd5b5050505060003373ffffffffffffffffffffffffffffffffffffffff1683602001518361200c9190613822565b60405161201890613343565b60006040518083038185875af1925050503d8060008114612055576040519150601f19603f3d011682016040523d82523d6000602084013e61205a565b606091505b505090508061209e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209590613667565b60405180910390fd5b50505050565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160149054906101000a900460ff16908060050154908060060154905088565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f73ffffffffffffffffffffffffffffffffffffffff1663bd85b039836040518263ffffffff1660e01b81526004016121f091906136e7565b60206040518083038186803b15801561220857600080fd5b505afa15801561221c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122409190612e5b565b9050919050565b7f000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff81565b612273612b81565b73ffffffffffffffffffffffffffffffffffffffff16612291612146565b73ffffffffffffffffffffffffffffffffffffffff16146122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90613607565b60405180910390fd5b60016004811115612321577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002600083815260200190815260200160002060000160009054906101000a900460ff16600481111561237d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b490613687565b60405180910390fd5b60016002600083815260200190815260200160002060040160146101000a81548160ff02191690831515021790555050565b6123f7612b81565b73ffffffffffffffffffffffffffffffffffffffff16612415612146565b73ffffffffffffffffffffffffffffffffffffffff161461246b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246290613607565b60405180910390fd5b6000600260008581526020019081526020016000209050600061248d85612195565b9050600081116124d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c9906136a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906134e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cb906135a7565b60405180910390fd5b6001600481111561260e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260000160009054906101000a900460ff166004811115612658577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f90613567565b60405180910390fd5b60008183600101546126aa9190613822565b905060006103e8600f836126be9190613822565b6126c891906137f1565b905060006103e8600a846126dc9190613822565b6126e691906137f1565b905060006103e86019856126fa9190613822565b61270491906137f1565b90506000818385612715919061379b565b61271f919061379b565b8561272a919061387c565b905060028760000160006101000a81548160ff0219169083600481111561277a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550888760030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550878760040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff73ffffffffffffffffffffffffffffffffffffffff16630969acb38489600501546040518363ffffffff1660e01b815260040161286391906136e7565b6000604051808303818588803b15801561287c57600080fd5b505af1158015612890573d6000803e3d6000fd5b50505050508873ffffffffffffffffffffffffffffffffffffffff166395805dad828c6040518363ffffffff1660e01b81526004016128cf91906136e7565b6000604051808303818588803b1580156128e857600080fd5b505af11580156128fc573d6000803e3d6000fd5b50505050506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168560405161294990613343565b60006040518083038185875af1925050503d8060008114612986576040519150601f19603f3d011682016040523d82523d6000602084013e61298b565b606091505b50509050806129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c690613667565b60405180910390fd5b60008973ffffffffffffffffffffffffffffffffffffffff16846040516129f590613343565b60006040518083038185875af1925050503d8060008114612a32576040519150601f19603f3d011682016040523d82523d6000602084013e612a37565b606091505b5050905080612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7290613667565b60405180910390fd5b505050505050505050505050565b612a91612b81565b73ffffffffffffffffffffffffffffffffffffffff16612aaf612146565b73ffffffffffffffffffffffffffffffffffffffff1614612b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afc90613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6c906134c7565b60405180910390fd5b612b7e81612b89565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612c60612c5b84613727565b613702565b90508083825260208201905082856020860282011115612c7f57600080fd5b60005b85811015612caf5781612c958882612d25565b845260208401935060208301925050600181019050612c82565b5050509392505050565b6000612ccc612cc784613753565b613702565b90508083825260208201905082856020860282011115612ceb57600080fd5b60005b85811015612d1b5781612d018882612da3565b845260208401935060208301925050600181019050612cee565b5050509392505050565b600081359050612d3481613e1a565b92915050565b600082601f830112612d4b57600080fd5b8135612d5b848260208601612c4d565b91505092915050565b600082601f830112612d7557600080fd5b8135612d85848260208601612cb9565b91505092915050565b600081359050612d9d81613e31565b92915050565b600081359050612db281613e48565b92915050565b600081519050612dc781613e48565b92915050565b600060208284031215612ddf57600080fd5b6000612ded84828501612d25565b91505092915050565b60008060408385031215612e0957600080fd5b6000612e1785828601612d25565b9250506020612e2885828601612da3565b9150509250929050565b600060208284031215612e4457600080fd5b6000612e5284828501612da3565b91505092915050565b600060208284031215612e6d57600080fd5b6000612e7b84828501612db8565b91505092915050565b60008060408385031215612e9757600080fd5b6000612ea585828601612da3565b9250506020612eb685828601612d25565b9150509250929050565b600080600060608486031215612ed557600080fd5b6000612ee386828701612da3565b9350506020612ef486828701612d25565b9250506040612f0586828701612d25565b9150509250925092565b600080600060608486031215612f2457600080fd5b6000612f3286828701612da3565b935050602084013567ffffffffffffffff811115612f4f57600080fd5b612f5b86828701612d3a565b925050604084013567ffffffffffffffff811115612f7857600080fd5b612f8486828701612d64565b9150509250925092565b60008060408385031215612fa157600080fd5b6000612faf85828601612da3565b9250506020612fc085828601612da3565b9150509250929050565b60008060008060808587031215612fe057600080fd5b6000612fee87828801612da3565b9450506020612fff87828801612da3565b935050604061301087828801612da3565b925050606061302187828801612d8e565b91505092959194509250565b613036816138b0565b82525050565b613045816138c2565b82525050565b6130548161390b565b82525050565b6130638161392f565b82525050565b61307281613953565b82525050565b600061308560158361378a565b915061309082613aac565b602082019050919050565b60006130a860148361378a565b91506130b382613ad5565b602082019050919050565b60006130cb60268361378a565b91506130d682613afe565b604082019050919050565b60006130ee60218361378a565b91506130f982613b4d565b604082019050919050565b600061311160138361378a565b915061311c82613b9c565b602082019050919050565b600061313460148361378a565b915061313f82613bc5565b602082019050919050565b600061315760198361378a565b915061316282613bee565b602082019050919050565b600061317a601a8361378a565b915061318582613c17565b602082019050919050565b600061319d60138361378a565b91506131a882613c40565b602082019050919050565b60006131c0601e8361378a565b91506131cb82613c69565b602082019050919050565b60006131e360158361378a565b91506131ee82613c92565b602082019050919050565b600061320660158361378a565b915061321182613cbb565b602082019050919050565b600061322960208361378a565b915061323482613ce4565b602082019050919050565b600061324c601a8361378a565b915061325782613d0d565b602082019050919050565b600061326f60138361378a565b915061327a82613d36565b602082019050919050565b6000613292601d8361378a565b915061329d82613d5f565b602082019050919050565b60006132b560008361377f565b91506132c082613d88565b600082019050919050565b60006132d860148361378a565b91506132e382613d8b565b602082019050919050565b60006132fb60128361378a565b915061330682613db4565b602082019050919050565b600061331e601c8361378a565b915061332982613ddd565b602082019050919050565b61333d81613901565b82525050565b600061334e826132a8565b9150819050919050565b600060208201905061336d600083018461302d565b92915050565b6000604082019050613388600083018561302d565b6133956020830184613334565b9392505050565b60006060820190506133b1600083018661302d565b6133be6020830185613334565b6133cb6040830184613334565b949350505050565b60006020820190506133e8600083018461304b565b92915050565b6000602082019050613403600083018461305a565b92915050565b60006101008201905061341f600083018b613069565b61342c602083018a613334565b6134396040830189613334565b613446606083018861302d565b613453608083018761302d565b61346060a083018661303c565b61346d60c0830185613334565b61347a60e0830184613334565b9998505050505050505050565b600060208201905081810360008301526134a081613078565b9050919050565b600060208201905081810360008301526134c08161309b565b9050919050565b600060208201905081810360008301526134e0816130be565b9050919050565b60006020820190508181036000830152613500816130e1565b9050919050565b6000602082019050818103600083015261352081613104565b9050919050565b6000602082019050818103600083015261354081613127565b9050919050565b600060208201905081810360008301526135608161314a565b9050919050565b600060208201905081810360008301526135808161316d565b9050919050565b600060208201905081810360008301526135a081613190565b9050919050565b600060208201905081810360008301526135c0816131b3565b9050919050565b600060208201905081810360008301526135e0816131d6565b9050919050565b60006020820190508181036000830152613600816131f9565b9050919050565b600060208201905081810360008301526136208161321c565b9050919050565b600060208201905081810360008301526136408161323f565b9050919050565b6000602082019050818103600083015261366081613262565b9050919050565b6000602082019050818103600083015261368081613285565b9050919050565b600060208201905081810360008301526136a0816132cb565b9050919050565b600060208201905081810360008301526136c0816132ee565b9050919050565b600060208201905081810360008301526136e081613311565b9050919050565b60006020820190506136fc6000830184613334565b92915050565b600061370c61371d565b90506137188282613965565b919050565b6000604051905090565b600067ffffffffffffffff82111561374257613741613a6c565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561376e5761376d613a6c565b5b602082029050602081019050919050565b600081905092915050565b600082825260208201905092915050565b60006137a682613901565b91506137b183613901565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137e6576137e56139df565b5b828201905092915050565b60006137fc82613901565b915061380783613901565b92508261381757613816613a0e565b5b828204905092915050565b600061382d82613901565b915061383883613901565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613871576138706139df565b5b828202905092915050565b600061388782613901565b915061389283613901565b9250828210156138a5576138a46139df565b5b828203905092915050565b60006138bb826138e1565b9050919050565b60008115159050919050565b60008190506138dc82613e06565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006139168261391d565b9050919050565b6000613928826138e1565b9050919050565b600061393a82613941565b9050919050565b600061394c826138e1565b9050919050565b600061395e826138ce565b9050919050565b61396e82613a9b565b810181811067ffffffffffffffff8211171561398d5761398c613a6c565b5b80604052505050565b60006139a182613901565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139d4576139d36139df565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4d616e616765723a20746f6b656e496420697320300000000000000000000000600082015250565b7f4d616e616765723a206e6f742070656e64696e67000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4d616e616765723a206d616e6167656d656e7420636f6e7472616374206e756c60008201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d616e616765723a206e6f74206c6f636b656400000000000000000000000000600082015250565b7f4d616e616765723a2065786365656473206d6178000000000000000000000000600082015250565b7f4d616e616765723a206e6f7468696e6720746f20636c61696d00000000000000600082015250565b7f4d616e616765723a20636f6e7472616374206e6f74206f70656e000000000000600082015250565b7f4d616e616765723a206261642073746174757300000000000000000000000000600082015250565b7f4d616e616765723a20706172746e657220636f6e7472616374206e756c6c0000600082015250565b7f4d616e616765723a2077726f6e6720616d6f756e740000000000000000000000600082015250565b7f4d616e616765723a206e6f74206120686f6c6465720000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d616e616765723a2065786974206e6f7420706f737369626c65000000000000600082015250565b7f4d616e616765723a206f6e6c79207661756c7400000000000000000000000000600082015250565b7f4d616e616765723a20756e7375636365737366756c207061796d656e74000000600082015250565b50565b7f4d616e616765723a206e6f7420656e61626c6564000000000000000000000000600082015250565b7f4d616e616765723a206e6f20746f6b656e730000000000000000000000000000600082015250565b7f4d616e616765723a20636c61696d206e6f7420617661696c61626c6500000000600082015250565b60058110613e1757613e16613a3d565b5b50565b613e23816138b0565b8114613e2e57600080fd5b50565b613e3a816138c2565b8114613e4557600080fd5b50565b613e5181613901565b8114613e5c57600080fd5b5056fea2646970667358221220d252ce4e6bc7c6b6bf17e692a3ff4ddf789adcd52e89c0e10657a29fc6ae84d164736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff
-----Decoded View---------------
Arg [0] : nft_ (address): 0xE8BBd0479468B0025E00269516C62119f533971F
Arg [1] : distributor_ (address): 0xb0AF8Ff1089042CAdFD0246ECc074a05053438FF
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e8bbd0479468b0025e00269516c62119f533971f
Arg [1] : 000000000000000000000000b0af8ff1089042cadfd0246ecc074a05053438ff
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,926.89 | 0.9732 | $3,821.6 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.