More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 96 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Tokens | 20643584 | 13 hrs ago | IN | 0 ETH | 0.00010481 | ||||
Withdraw Tokens | 20625274 | 3 days ago | IN | 0 ETH | 0.00007556 | ||||
Withdraw Tokens | 20621837 | 3 days ago | IN | 0 ETH | 0.00012766 | ||||
Withdraw Tokens | 20618493 | 4 days ago | IN | 0 ETH | 0.0001094 | ||||
Withdraw Tokens | 20605747 | 5 days ago | IN | 0 ETH | 0.00006246 | ||||
Withdraw Tokens | 20598787 | 6 days ago | IN | 0 ETH | 0.0000922 | ||||
Withdraw Tokens | 20586955 | 8 days ago | IN | 0 ETH | 0.00011373 | ||||
Withdraw Tokens | 20561523 | 12 days ago | IN | 0 ETH | 0.0001493 | ||||
Withdraw Tokens | 20528284 | 16 days ago | IN | 0 ETH | 0.00042339 | ||||
Withdraw Tokens | 20526104 | 16 days ago | IN | 0 ETH | 0.00023399 | ||||
Withdraw Tokens | 20515828 | 18 days ago | IN | 0 ETH | 0.00025788 | ||||
Withdraw Tokens | 20504369 | 20 days ago | IN | 0 ETH | 0.00016106 | ||||
Withdraw Tokens | 20500136 | 20 days ago | IN | 0 ETH | 0.00011155 | ||||
Withdraw Tokens | 20462660 | 25 days ago | IN | 0 ETH | 0.00370334 | ||||
Withdraw Tokens | 20457106 | 26 days ago | IN | 0 ETH | 0.00105895 | ||||
Withdraw Tokens | 20456090 | 26 days ago | IN | 0 ETH | 0.0007734 | ||||
Withdraw Tokens | 20442739 | 28 days ago | IN | 0 ETH | 0.00022948 | ||||
Withdraw Tokens | 20440193 | 28 days ago | IN | 0 ETH | 0.00025082 | ||||
Withdraw Tokens | 20412713 | 32 days ago | IN | 0 ETH | 0.00065098 | ||||
Withdraw Tokens | 20407877 | 33 days ago | IN | 0 ETH | 0.00016953 | ||||
Withdraw Tokens | 20389651 | 36 days ago | IN | 0 ETH | 0.00022786 | ||||
Withdraw Tokens | 20378518 | 37 days ago | IN | 0 ETH | 0.00030865 | ||||
Withdraw Tokens | 20350012 | 41 days ago | IN | 0 ETH | 0.0002388 | ||||
Withdraw Tokens | 20322199 | 45 days ago | IN | 0 ETH | 0.00041042 | ||||
Withdraw Tokens | 20320116 | 45 days ago | IN | 0 ETH | 0.0009564 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19238851 | 197 days ago | 8.15063585 ETH |
Loading...
Loading
Contract Name:
PreSale
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-23 */ /** *Submitted for verification at BscScan.com on 2021-05-09 */ // SPDX-License-Identifier: MIT 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 GSN 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 memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } pragma solidity 0.8.0; /** * @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 () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } pragma solidity 0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } //--------------------------CROWD SALE------------------------ pragma solidity 0.8.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract PreSale is Ownable { using SafeMath for uint256; IERC20 public token; // Token being sold in the presale. // Presale parameters uint256 public _TOTAL_SOLD_TOKEN; // Total amount of tokens sold. uint256 public _TOTAL_DEPOSIT_BNB; // Total BNB collected. uint256 public _RATE; // Rate of token per BNB. uint256 public _MAX_BNB_CONTRIBUTION; // Maximum BNB contribution per wallet. uint256 public _MIN_BNB_CONTRIBUTION; // Minimum BNB contribution. // Vesting parameters uint256 public initialReleasePercentage; // Percentage of tokens to be released initially. uint256 public fullReleaseTime; // Timestamp when full release completes. uint256 public _SOFTCAP; // Minimum amount of BNB to be raised for the presale to be considered successful. uint256 public _HARDCAP; // Maximum amount of BNB that can be raised. uint256 public _START_TIME; // Start time of the presale. uint256 public _END_TIME; // End time of the presale. uint256 public _RELEASE_TOKEN_TIME; // Time when tokens start to become available for withdrawal. bool public isPreSaleOpen; // Flag indicating if the presale is open. // Mapping to track blacklisted users and token purchase amounts. mapping(address => bool) public isBlacklisted; mapping(address => uint256) public totalPurchased; mapping(address => uint256) public withdrawnTokens; mapping(address => bool) public withdrawn; // Tracks whether a user has withdrawn their initial tokens. constructor() {} // Allows the owner to set the address of the token being sold. function setTokenAddress(address _tokenAddress) public onlyOwner { require(_tokenAddress != address(0), "Invalid token address"); token = IERC20(_tokenAddress); } // Allows owner to set the vesting schedule. function setVestingSchedule(uint256 _initialReleasePercentage, uint256 _releaseTime, uint256 _fullReleaseTime) public onlyOwner { require(_initialReleasePercentage > 0 && _initialReleasePercentage <= 100, "Invalid release percentage"); require(_releaseTime < _fullReleaseTime, "Release time must be before full release time"); initialReleasePercentage = _initialReleasePercentage; fullReleaseTime = _fullReleaseTime; } // Fallback function to handle BNB deposits. receive() external payable { deposite(); } // Allows the owner to withdraw collected BNB after the presale ends, provided the softcap is reached. function ownerWithdrawBNB() public onlyOwner { require(block.timestamp > _END_TIME, "Presale hasn't finished yet"); require(_TOTAL_DEPOSIT_BNB >= _SOFTCAP, "Presale didn't hit softcap"); payable(msg.sender).transfer(address(this).balance); } // Allows the owner to withdraw any unsold tokens after the presale. function ownerWithdrawToken() public onlyOwner { token.transfer(msg.sender, token.balanceOf(address(this))); } // Function to blacklist or unblacklist users. function addToBlacklist(address user) external onlyOwner { isBlacklisted[user] = true; } function removeFromBlacklist(address user) external onlyOwner { isBlacklisted[user] = false; } // Setup function for the presale parameters. function setupPresale(uint256 start, uint256 end, uint256 release, uint256 rate, uint256 softcap, uint256 hardcap, uint256 maxPerWallet, uint256 minPerWallet) public onlyOwner { _RATE = rate; _MAX_BNB_CONTRIBUTION = maxPerWallet; _MIN_BNB_CONTRIBUTION = minPerWallet; _SOFTCAP = softcap; _HARDCAP = hardcap; _START_TIME = start; _END_TIME = end; _RELEASE_TOKEN_TIME = release; } function setRate(uint256 rate) public onlyOwner { _RATE = rate; } // Opens or closes the presale. function openPresale(bool opened) public onlyOwner { isPreSaleOpen = opened; } // Function for users to deposit BNB and purchase tokens during the presale. function deposite() public payable { require(isPreSaleOpen, "Presale is not open"); require(block.timestamp >= _START_TIME && block.timestamp <= _END_TIME, "Not in presale time"); require(msg.value >= _MIN_BNB_CONTRIBUTION && msg.value <= _MAX_BNB_CONTRIBUTION, "Invalid BNB amount"); require(!isBlacklisted[_msgSender()], "You are blacklisted"); require(_TOTAL_DEPOSIT_BNB.add(msg.value) <= _HARDCAP, "Exceed HARD CAP"); totalPurchased[msg.sender]= totalPurchased[msg.sender].add(msg.value); _TOTAL_DEPOSIT_BNB = _TOTAL_DEPOSIT_BNB.add(msg.value); } // Allows users to withdraw their vested tokens. function withdrawTokens() public { require(block.timestamp > _RELEASE_TOKEN_TIME, "Vesting period not started"); uint256 totalTokens = totalPurchased[msg.sender].mul(_RATE); uint256 tokensToRelease = totalTokens.mul(initialReleasePercentage).div(100); uint256 vestedTokens = 0; if (block.timestamp >= fullReleaseTime) { vestedTokens = totalTokens; // All tokens are vested } else { uint256 vestingDuration = fullReleaseTime - _RELEASE_TOKEN_TIME; uint256 timeSinceRelease = block.timestamp - _RELEASE_TOKEN_TIME; uint256 additionalTokensVested = totalTokens.sub(tokensToRelease).mul(timeSinceRelease).div(vestingDuration); vestedTokens = tokensToRelease.add(additionalTokensVested); } uint256 tokensToWithdraw = vestedTokens.sub(withdrawnTokens[msg.sender]); require(tokensToWithdraw > 0, "No vested tokens available for withdrawal"); withdrawnTokens[msg.sender] = withdrawnTokens[msg.sender].add(tokensToWithdraw); withdrawn[msg.sender] = true; require(token.transfer(msg.sender, tokensToWithdraw), "Token transfer failed"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":[],"name":"_END_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MAX_BNB_CONTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MIN_BNB_CONTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_RELEASE_TOKEN_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SOFTCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_START_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TOTAL_DEPOSIT_BNB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TOTAL_SOLD_TOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposite","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"fullReleaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialReleasePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPreSaleOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"opened","type":"bool"}],"name":"openPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerWithdrawBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerWithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_initialReleasePercentage","type":"uint256"},{"internalType":"uint256","name":"_releaseTime","type":"uint256"},{"internalType":"uint256","name":"_fullReleaseTime","type":"uint256"}],"name":"setVestingSchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"release","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"softcap","type":"uint256"},{"internalType":"uint256","name":"hardcap","type":"uint256"},{"internalType":"uint256","name":"maxPerWallet","type":"uint256"},{"internalType":"uint256","name":"minPerWallet","type":"uint256"}],"name":"setupPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalPurchased","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":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawnTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5060006100216100c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100cc565b600033905090565b612943806100db6000396000f3fe6080604052600436106101e75760003560e01c80637e717d3a11610102578063b76c93f111610095578063f5e329a411610064578063f5e329a414610664578063fc0c546a1461068f578063fddd5b09146106ba578063fe575a87146106e5576101f6565b8063b76c93f1146105a8578063caf64d73146105d3578063e8c9a3e5146105fe578063f2fde38b1461063b576101f6565b8063a0dfe58d116100d1578063a0dfe58d1461051f578063a168ca1314610548578063a50ec32614610573578063b25ec61b1461057d576101f6565b80637e717d3a146104875780638d8f2adb146104b25780638da5cb5b146104c95780639546b73e146104f4576101f6565b806344337ea11161017a5780636ef61092116101495780636ef61092146103f3578063715018a61461043057806371e4605c146104475780637c50601c14610470576101f6565b806344337ea114610339578063497aef2814610362578063537df3b61461039f578063685439d8146103c8576101f6565b806334fcf437116101b657806334fcf4371461028f57806337117b7f146102b85780633a6b75cd146102e35780633bdbe8bb1461030e576101f6565b80630b895c51146101fb5780631f281ace1461021257806326a4e8d21461023d5780632b356cbd14610266576101f6565b366101f6576101f4610722565b005b600080fd5b34801561020757600080fd5b506102106109b6565b005b34801561021e57600080fd5b50610227610b8e565b6040516102349190612427565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190611c81565b610ba1565b005b34801561027257600080fd5b5061028d60048036038101906102889190611caa565b610cd1565b005b34801561029b57600080fd5b506102b660048036038101906102b19190611cfc565b610d6a565b005b3480156102c457600080fd5b506102cd610df0565b6040516102da91906126bd565b60405180910390f35b3480156102ef57600080fd5b506102f8610df6565b60405161030591906126bd565b60405180910390f35b34801561031a57600080fd5b50610323610dfc565b60405161033091906126bd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611c81565b610e02565b005b34801561036e57600080fd5b5061038960048036038101906103849190611c81565b610ed9565b60405161039691906126bd565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611c81565b610ef1565b005b3480156103d457600080fd5b506103dd610fc8565b6040516103ea91906126bd565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190611c81565b610fce565b6040516104279190612427565b60405180910390f35b34801561043c57600080fd5b50610445610fee565b005b34801561045357600080fd5b5061046e60048036038101906104699190611d9d565b611128565b005b34801561047c57600080fd5b506104856111e6565b005b34801561049357600080fd5b5061049c611336565b6040516104a991906126bd565b60405180910390f35b3480156104be57600080fd5b506104c761133c565b005b3480156104d557600080fd5b506104de61170b565b6040516104eb91906123e3565b60405180910390f35b34801561050057600080fd5b50610509611734565b60405161051691906126bd565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190611d4e565b61173a565b005b34801561055457600080fd5b5061055d61185b565b60405161056a91906126bd565b60405180910390f35b61057b610722565b005b34801561058957600080fd5b50610592611861565b60405161059f91906126bd565b60405180910390f35b3480156105b457600080fd5b506105bd611867565b6040516105ca91906126bd565b60405180910390f35b3480156105df57600080fd5b506105e861186d565b6040516105f591906126bd565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190611c81565b611873565b60405161063291906126bd565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190611c81565b61188b565b005b34801561067057600080fd5b50610679611a34565b60405161068691906126bd565b60405180910390f35b34801561069b57600080fd5b506106a4611a3a565b6040516106b19190612442565b60405180910390f35b3480156106c657600080fd5b506106cf611a60565b6040516106dc91906126bd565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190611c81565b611a66565b6040516107199190612427565b60405180910390f35b600e60009054906101000a900460ff16610771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107689061263d565b60405180910390fd5b600b5442101580156107855750600c544211155b6107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb9061265d565b60405180910390fd5b60065434101580156107d857506005543411155b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061269d565b60405180910390fd5b600f6000610823611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061261d565b60405180910390fd5b600a546108c334600354611a8e90919063ffffffff16565b1115610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906124dd565b60405180910390fd5b61095634601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ae34600354611a8e90919063ffffffff16565b600381905550565b6109be611a86565b73ffffffffffffffffffffffffffffffffffffffff166109dc61170b565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906125fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acc91906123e3565b60206040518083038186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d25565b6040518363ffffffff1660e01b8152600401610b399291906123fe565b602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190611cd3565b50565b600e60009054906101000a900460ff1681565b610ba9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610bc761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061267d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cd9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610cf761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906125fd565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610d72611a86565b73ffffffffffffffffffffffffffffffffffffffff16610d9061170b565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906125fd565b60405180910390fd5b8060048190555050565b60045481565b60095481565b60035481565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff16610e2861170b565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906125fd565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915090505481565b610ef9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610f1761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f64906125fd565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60126020528060005260406000206000915054906101000a900460ff1681565b610ff6611a86565b73ffffffffffffffffffffffffffffffffffffffff1661101461170b565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611130611a86565b73ffffffffffffffffffffffffffffffffffffffff1661114e61170b565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906125fd565b60405180910390fd5b8460048190555081600581905550806006819055508360098190555082600a8190555087600b8190555086600c8190555085600d819055505050505050505050565b6111ee611a86565b73ffffffffffffffffffffffffffffffffffffffff1661120c61170b565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611259906125fd565b60405180910390fd5b600c5442116112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d9061257d565b60405180910390fd5b60095460035410156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061253d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611333573d6000803e3d6000fd5b50565b600d5481565b600d544211611380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113779061259d565b60405180910390fd5b60006113d6600454601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b9050600061140260646113f460075485611aec90919063ffffffff16565b611b6790919063ffffffff16565b90506000600854421061141757829050611491565b6000600d5460085461142991906127ca565b90506000600d544261143b91906127ca565b90506000611476836114688461145a898b611bbf90919063ffffffff16565b611aec90919063ffffffff16565b611b6790919063ffffffff16565b905061148b8186611a8e90919063ffffffff16565b93505050505b60006114e5601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611bbf90919063ffffffff16565b90506000811161152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061245d565b60405180910390fd5b61157c81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116749291906123fe565b602060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611cd3565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061255d565b60405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b611742611a86565b73ffffffffffffffffffffffffffffffffffffffff1661176061170b565b73ffffffffffffffffffffffffffffffffffffffff16146117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad906125fd565b60405180910390fd5b6000831180156117c7575060648311155b611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd9061247d565b60405180910390fd5b808210611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906125bd565b60405180910390fd5b8260078190555080600881905550505050565b60085481565b60025481565b600a5481565b60055481565b60116020528060005260406000206000915090505481565b611893611a86565b73ffffffffffffffffffffffffffffffffffffffff166118b161170b565b73ffffffffffffffffffffffffffffffffffffffff1614611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061249d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6000808284611a9d91906126e9565b905083811015611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906124bd565b60405180910390fd5b8091505092915050565b600080831415611aff5760009050611b61565b60008284611b0d9190612770565b9050828482611b1c919061273f565b14611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906125dd565b60405180910390fd5b809150505b92915050565b6000808211611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061251d565b60405180910390fd5b8183611bb7919061273f565b905092915050565b600082821115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906124fd565b60405180910390fd5b8183611c1091906127ca565b905092915050565b600081359050611c27816128c8565b92915050565b600081359050611c3c816128df565b92915050565b600081519050611c51816128df565b92915050565b600081359050611c66816128f6565b92915050565b600081519050611c7b816128f6565b92915050565b600060208284031215611c9357600080fd5b6000611ca184828501611c18565b91505092915050565b600060208284031215611cbc57600080fd5b6000611cca84828501611c2d565b91505092915050565b600060208284031215611ce557600080fd5b6000611cf384828501611c42565b91505092915050565b600060208284031215611d0e57600080fd5b6000611d1c84828501611c57565b91505092915050565b600060208284031215611d3757600080fd5b6000611d4584828501611c6c565b91505092915050565b600080600060608486031215611d6357600080fd5b6000611d7186828701611c57565b9350506020611d8286828701611c57565b9250506040611d9386828701611c57565b9150509250925092565b600080600080600080600080610100898b031215611dba57600080fd5b6000611dc88b828c01611c57565b9850506020611dd98b828c01611c57565b9750506040611dea8b828c01611c57565b9650506060611dfb8b828c01611c57565b9550506080611e0c8b828c01611c57565b94505060a0611e1d8b828c01611c57565b93505060c0611e2e8b828c01611c57565b92505060e0611e3f8b828c01611c57565b9150509295985092959890939650565b611e58816127fe565b82525050565b611e6781612810565b82525050565b611e7681612846565b82525050565b6000611e896029836126d8565b91507f4e6f2076657374656420746f6b656e7320617661696c61626c6520666f72207760008301527f69746864726177616c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eef601a836126d8565b91507f496e76616c69642072656c656173652070657263656e746167650000000000006000830152602082019050919050565b6000611f2f6026836126d8565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f95601b836126d8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611fd5600f836126d8565b91507f45786365656420484152442043415000000000000000000000000000000000006000830152602082019050919050565b6000612015601e836126d8565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612055601a836126d8565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612095601a836126d8565b91507f50726573616c65206469646e27742068697420736f66746361700000000000006000830152602082019050919050565b60006120d56015836126d8565b91507f546f6b656e207472616e73666572206661696c656400000000000000000000006000830152602082019050919050565b6000612115601b836126d8565b91507f50726573616c65206861736e27742066696e69736865642079657400000000006000830152602082019050919050565b6000612155601a836126d8565b91507f56657374696e6720706572696f64206e6f7420737461727465640000000000006000830152602082019050919050565b6000612195602d836126d8565b91507f52656c656173652074696d65206d757374206265206265666f72652066756c6c60008301527f2072656c656173652074696d65000000000000000000000000000000000000006020830152604082019050919050565b60006121fb6021836126d8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122616020836126d8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122a16013836126d8565b91507f596f752061726520626c61636b6c6973746564000000000000000000000000006000830152602082019050919050565b60006122e16013836126d8565b91507f50726573616c65206973206e6f74206f70656e000000000000000000000000006000830152602082019050919050565b60006123216013836126d8565b91507f4e6f7420696e2070726573616c652074696d65000000000000000000000000006000830152602082019050919050565b60006123616015836126d8565b91507f496e76616c696420746f6b656e206164647265737300000000000000000000006000830152602082019050919050565b60006123a16012836126d8565b91507f496e76616c696420424e4220616d6f756e7400000000000000000000000000006000830152602082019050919050565b6123dd8161283c565b82525050565b60006020820190506123f86000830184611e4f565b92915050565b60006040820190506124136000830185611e4f565b61242060208301846123d4565b9392505050565b600060208201905061243c6000830184611e5e565b92915050565b60006020820190506124576000830184611e6d565b92915050565b6000602082019050818103600083015261247681611e7c565b9050919050565b6000602082019050818103600083015261249681611ee2565b9050919050565b600060208201905081810360008301526124b681611f22565b9050919050565b600060208201905081810360008301526124d681611f88565b9050919050565b600060208201905081810360008301526124f681611fc8565b9050919050565b6000602082019050818103600083015261251681612008565b9050919050565b6000602082019050818103600083015261253681612048565b9050919050565b6000602082019050818103600083015261255681612088565b9050919050565b60006020820190508181036000830152612576816120c8565b9050919050565b6000602082019050818103600083015261259681612108565b9050919050565b600060208201905081810360008301526125b681612148565b9050919050565b600060208201905081810360008301526125d681612188565b9050919050565b600060208201905081810360008301526125f6816121ee565b9050919050565b6000602082019050818103600083015261261681612254565b9050919050565b6000602082019050818103600083015261263681612294565b9050919050565b60006020820190508181036000830152612656816122d4565b9050919050565b6000602082019050818103600083015261267681612314565b9050919050565b6000602082019050818103600083015261269681612354565b9050919050565b600060208201905081810360008301526126b681612394565b9050919050565b60006020820190506126d260008301846123d4565b92915050565b600082825260208201905092915050565b60006126f48261283c565b91506126ff8361283c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127345761273361286a565b5b828201905092915050565b600061274a8261283c565b91506127558361283c565b92508261276557612764612899565b5b828204905092915050565b600061277b8261283c565b91506127868361283c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bf576127be61286a565b5b828202905092915050565b60006127d58261283c565b91506127e08361283c565b9250828210156127f3576127f261286a565b5b828203905092915050565b60006128098261281c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061285182612858565b9050919050565b60006128638261281c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6128d1816127fe565b81146128dc57600080fd5b50565b6128e881612810565b81146128f357600080fd5b50565b6128ff8161283c565b811461290a57600080fd5b5056fea26469706673582212204c5d1829949126ae6b554ef8029128086fc36e4d4b3521f07c9309afd952336e64736f6c63430008000033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c80637e717d3a11610102578063b76c93f111610095578063f5e329a411610064578063f5e329a414610664578063fc0c546a1461068f578063fddd5b09146106ba578063fe575a87146106e5576101f6565b8063b76c93f1146105a8578063caf64d73146105d3578063e8c9a3e5146105fe578063f2fde38b1461063b576101f6565b8063a0dfe58d116100d1578063a0dfe58d1461051f578063a168ca1314610548578063a50ec32614610573578063b25ec61b1461057d576101f6565b80637e717d3a146104875780638d8f2adb146104b25780638da5cb5b146104c95780639546b73e146104f4576101f6565b806344337ea11161017a5780636ef61092116101495780636ef61092146103f3578063715018a61461043057806371e4605c146104475780637c50601c14610470576101f6565b806344337ea114610339578063497aef2814610362578063537df3b61461039f578063685439d8146103c8576101f6565b806334fcf437116101b657806334fcf4371461028f57806337117b7f146102b85780633a6b75cd146102e35780633bdbe8bb1461030e576101f6565b80630b895c51146101fb5780631f281ace1461021257806326a4e8d21461023d5780632b356cbd14610266576101f6565b366101f6576101f4610722565b005b600080fd5b34801561020757600080fd5b506102106109b6565b005b34801561021e57600080fd5b50610227610b8e565b6040516102349190612427565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190611c81565b610ba1565b005b34801561027257600080fd5b5061028d60048036038101906102889190611caa565b610cd1565b005b34801561029b57600080fd5b506102b660048036038101906102b19190611cfc565b610d6a565b005b3480156102c457600080fd5b506102cd610df0565b6040516102da91906126bd565b60405180910390f35b3480156102ef57600080fd5b506102f8610df6565b60405161030591906126bd565b60405180910390f35b34801561031a57600080fd5b50610323610dfc565b60405161033091906126bd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611c81565b610e02565b005b34801561036e57600080fd5b5061038960048036038101906103849190611c81565b610ed9565b60405161039691906126bd565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611c81565b610ef1565b005b3480156103d457600080fd5b506103dd610fc8565b6040516103ea91906126bd565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190611c81565b610fce565b6040516104279190612427565b60405180910390f35b34801561043c57600080fd5b50610445610fee565b005b34801561045357600080fd5b5061046e60048036038101906104699190611d9d565b611128565b005b34801561047c57600080fd5b506104856111e6565b005b34801561049357600080fd5b5061049c611336565b6040516104a991906126bd565b60405180910390f35b3480156104be57600080fd5b506104c761133c565b005b3480156104d557600080fd5b506104de61170b565b6040516104eb91906123e3565b60405180910390f35b34801561050057600080fd5b50610509611734565b60405161051691906126bd565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190611d4e565b61173a565b005b34801561055457600080fd5b5061055d61185b565b60405161056a91906126bd565b60405180910390f35b61057b610722565b005b34801561058957600080fd5b50610592611861565b60405161059f91906126bd565b60405180910390f35b3480156105b457600080fd5b506105bd611867565b6040516105ca91906126bd565b60405180910390f35b3480156105df57600080fd5b506105e861186d565b6040516105f591906126bd565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190611c81565b611873565b60405161063291906126bd565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190611c81565b61188b565b005b34801561067057600080fd5b50610679611a34565b60405161068691906126bd565b60405180910390f35b34801561069b57600080fd5b506106a4611a3a565b6040516106b19190612442565b60405180910390f35b3480156106c657600080fd5b506106cf611a60565b6040516106dc91906126bd565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190611c81565b611a66565b6040516107199190612427565b60405180910390f35b600e60009054906101000a900460ff16610771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107689061263d565b60405180910390fd5b600b5442101580156107855750600c544211155b6107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb9061265d565b60405180910390fd5b60065434101580156107d857506005543411155b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061269d565b60405180910390fd5b600f6000610823611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061261d565b60405180910390fd5b600a546108c334600354611a8e90919063ffffffff16565b1115610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906124dd565b60405180910390fd5b61095634601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ae34600354611a8e90919063ffffffff16565b600381905550565b6109be611a86565b73ffffffffffffffffffffffffffffffffffffffff166109dc61170b565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906125fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acc91906123e3565b60206040518083038186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d25565b6040518363ffffffff1660e01b8152600401610b399291906123fe565b602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190611cd3565b50565b600e60009054906101000a900460ff1681565b610ba9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610bc761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061267d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cd9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610cf761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906125fd565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610d72611a86565b73ffffffffffffffffffffffffffffffffffffffff16610d9061170b565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906125fd565b60405180910390fd5b8060048190555050565b60045481565b60095481565b60035481565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff16610e2861170b565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906125fd565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915090505481565b610ef9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610f1761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f64906125fd565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60126020528060005260406000206000915054906101000a900460ff1681565b610ff6611a86565b73ffffffffffffffffffffffffffffffffffffffff1661101461170b565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611130611a86565b73ffffffffffffffffffffffffffffffffffffffff1661114e61170b565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906125fd565b60405180910390fd5b8460048190555081600581905550806006819055508360098190555082600a8190555087600b8190555086600c8190555085600d819055505050505050505050565b6111ee611a86565b73ffffffffffffffffffffffffffffffffffffffff1661120c61170b565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611259906125fd565b60405180910390fd5b600c5442116112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d9061257d565b60405180910390fd5b60095460035410156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061253d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611333573d6000803e3d6000fd5b50565b600d5481565b600d544211611380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113779061259d565b60405180910390fd5b60006113d6600454601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b9050600061140260646113f460075485611aec90919063ffffffff16565b611b6790919063ffffffff16565b90506000600854421061141757829050611491565b6000600d5460085461142991906127ca565b90506000600d544261143b91906127ca565b90506000611476836114688461145a898b611bbf90919063ffffffff16565b611aec90919063ffffffff16565b611b6790919063ffffffff16565b905061148b8186611a8e90919063ffffffff16565b93505050505b60006114e5601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611bbf90919063ffffffff16565b90506000811161152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061245d565b60405180910390fd5b61157c81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116749291906123fe565b602060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611cd3565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061255d565b60405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b611742611a86565b73ffffffffffffffffffffffffffffffffffffffff1661176061170b565b73ffffffffffffffffffffffffffffffffffffffff16146117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad906125fd565b60405180910390fd5b6000831180156117c7575060648311155b611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd9061247d565b60405180910390fd5b808210611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906125bd565b60405180910390fd5b8260078190555080600881905550505050565b60085481565b60025481565b600a5481565b60055481565b60116020528060005260406000206000915090505481565b611893611a86565b73ffffffffffffffffffffffffffffffffffffffff166118b161170b565b73ffffffffffffffffffffffffffffffffffffffff1614611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061249d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6000808284611a9d91906126e9565b905083811015611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906124bd565b60405180910390fd5b8091505092915050565b600080831415611aff5760009050611b61565b60008284611b0d9190612770565b9050828482611b1c919061273f565b14611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906125dd565b60405180910390fd5b809150505b92915050565b6000808211611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061251d565b60405180910390fd5b8183611bb7919061273f565b905092915050565b600082821115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906124fd565b60405180910390fd5b8183611c1091906127ca565b905092915050565b600081359050611c27816128c8565b92915050565b600081359050611c3c816128df565b92915050565b600081519050611c51816128df565b92915050565b600081359050611c66816128f6565b92915050565b600081519050611c7b816128f6565b92915050565b600060208284031215611c9357600080fd5b6000611ca184828501611c18565b91505092915050565b600060208284031215611cbc57600080fd5b6000611cca84828501611c2d565b91505092915050565b600060208284031215611ce557600080fd5b6000611cf384828501611c42565b91505092915050565b600060208284031215611d0e57600080fd5b6000611d1c84828501611c57565b91505092915050565b600060208284031215611d3757600080fd5b6000611d4584828501611c6c565b91505092915050565b600080600060608486031215611d6357600080fd5b6000611d7186828701611c57565b9350506020611d8286828701611c57565b9250506040611d9386828701611c57565b9150509250925092565b600080600080600080600080610100898b031215611dba57600080fd5b6000611dc88b828c01611c57565b9850506020611dd98b828c01611c57565b9750506040611dea8b828c01611c57565b9650506060611dfb8b828c01611c57565b9550506080611e0c8b828c01611c57565b94505060a0611e1d8b828c01611c57565b93505060c0611e2e8b828c01611c57565b92505060e0611e3f8b828c01611c57565b9150509295985092959890939650565b611e58816127fe565b82525050565b611e6781612810565b82525050565b611e7681612846565b82525050565b6000611e896029836126d8565b91507f4e6f2076657374656420746f6b656e7320617661696c61626c6520666f72207760008301527f69746864726177616c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eef601a836126d8565b91507f496e76616c69642072656c656173652070657263656e746167650000000000006000830152602082019050919050565b6000611f2f6026836126d8565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f95601b836126d8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611fd5600f836126d8565b91507f45786365656420484152442043415000000000000000000000000000000000006000830152602082019050919050565b6000612015601e836126d8565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612055601a836126d8565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612095601a836126d8565b91507f50726573616c65206469646e27742068697420736f66746361700000000000006000830152602082019050919050565b60006120d56015836126d8565b91507f546f6b656e207472616e73666572206661696c656400000000000000000000006000830152602082019050919050565b6000612115601b836126d8565b91507f50726573616c65206861736e27742066696e69736865642079657400000000006000830152602082019050919050565b6000612155601a836126d8565b91507f56657374696e6720706572696f64206e6f7420737461727465640000000000006000830152602082019050919050565b6000612195602d836126d8565b91507f52656c656173652074696d65206d757374206265206265666f72652066756c6c60008301527f2072656c656173652074696d65000000000000000000000000000000000000006020830152604082019050919050565b60006121fb6021836126d8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122616020836126d8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122a16013836126d8565b91507f596f752061726520626c61636b6c6973746564000000000000000000000000006000830152602082019050919050565b60006122e16013836126d8565b91507f50726573616c65206973206e6f74206f70656e000000000000000000000000006000830152602082019050919050565b60006123216013836126d8565b91507f4e6f7420696e2070726573616c652074696d65000000000000000000000000006000830152602082019050919050565b60006123616015836126d8565b91507f496e76616c696420746f6b656e206164647265737300000000000000000000006000830152602082019050919050565b60006123a16012836126d8565b91507f496e76616c696420424e4220616d6f756e7400000000000000000000000000006000830152602082019050919050565b6123dd8161283c565b82525050565b60006020820190506123f86000830184611e4f565b92915050565b60006040820190506124136000830185611e4f565b61242060208301846123d4565b9392505050565b600060208201905061243c6000830184611e5e565b92915050565b60006020820190506124576000830184611e6d565b92915050565b6000602082019050818103600083015261247681611e7c565b9050919050565b6000602082019050818103600083015261249681611ee2565b9050919050565b600060208201905081810360008301526124b681611f22565b9050919050565b600060208201905081810360008301526124d681611f88565b9050919050565b600060208201905081810360008301526124f681611fc8565b9050919050565b6000602082019050818103600083015261251681612008565b9050919050565b6000602082019050818103600083015261253681612048565b9050919050565b6000602082019050818103600083015261255681612088565b9050919050565b60006020820190508181036000830152612576816120c8565b9050919050565b6000602082019050818103600083015261259681612108565b9050919050565b600060208201905081810360008301526125b681612148565b9050919050565b600060208201905081810360008301526125d681612188565b9050919050565b600060208201905081810360008301526125f6816121ee565b9050919050565b6000602082019050818103600083015261261681612254565b9050919050565b6000602082019050818103600083015261263681612294565b9050919050565b60006020820190508181036000830152612656816122d4565b9050919050565b6000602082019050818103600083015261267681612314565b9050919050565b6000602082019050818103600083015261269681612354565b9050919050565b600060208201905081810360008301526126b681612394565b9050919050565b60006020820190506126d260008301846123d4565b92915050565b600082825260208201905092915050565b60006126f48261283c565b91506126ff8361283c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127345761273361286a565b5b828201905092915050565b600061274a8261283c565b91506127558361283c565b92508261276557612764612899565b5b828204905092915050565b600061277b8261283c565b91506127868361283c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bf576127be61286a565b5b828202905092915050565b60006127d58261283c565b91506127e08361283c565b9250828210156127f3576127f261286a565b5b828203905092915050565b60006128098261281c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061285182612858565b9050919050565b60006128638261281c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6128d1816127fe565b81146128dc57600080fd5b50565b6128e881612810565b81146128f357600080fd5b50565b6128ff8161283c565b811461290a57600080fd5b5056fea26469706673582212204c5d1829949126ae6b554ef8029128086fc36e4d4b3521f07c9309afd952336e64736f6c63430008000033
Deployed Bytecode Sourcemap
11365:5990:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13797:10;:8;:10::i;:::-;11365:5990;;;;;14282:124;;;;;;;;;;;;;:::i;:::-;;12486:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15292:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15170:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11663:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12073:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11599:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14464:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12690:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14558:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11898:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12803:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2683:148;;;;;;;;;;;;;:::i;:::-;;14709:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13929:273;;;;;;;;;;;;;:::i;:::-;;12383:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16137:1215;;;;;;;;;;;;;:::i;:::-;;2036:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12324:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13244:459;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11994:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15458:619;;;:::i;:::-;;11528:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12186:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11716:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12746:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2984:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12261:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11439:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12638:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15458:619;15512:13;;;;;;;;;;;15504:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15587:11;;15568:15;:30;;:62;;;;;15621:9;;15602:15;:28;;15568:62;15560:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15686:21;;15673:9;:34;;:72;;;;;15724:21;;15711:9;:34;;15673:72;15665:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;15788:13;:27;15802:12;:10;:12::i;:::-;15788:27;;;;;;;;;;;;;;;;;;;;;;;;;15787:28;15779:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15895:8;;15858:33;15881:9;15858:18;;:22;;:33;;;;:::i;:::-;:45;;15850:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15963:41;15994:9;15963:14;:26;15978:10;15963:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;15934:14;:26;15949:10;15934:26;;;;;;;;;;;;;;;:70;;;;16036:33;16059:9;16036:18;;:22;;:33;;;;:::i;:::-;16015:18;:54;;;;15458:619::o;14282:124::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14340:5:::1;;;;;;;;;;;:14;;;14355:10;14367:5;;;;;;;;;;;:15;;;14391:4;14367:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14340:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14282:124::o:0;12486:25::-;;;;;;;;;;;;;:::o;13003:185::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13112:1:::1;13087:27;;:13;:27;;;;13079:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13166:13;13151:5;;:29;;;;;;;;;;;;;;;;;;13003:185:::0;:::o;15292:78::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15361:6:::1;15345:13;;:22;;;;;;;;;;;;;;;;;;15292:78:::0;:::o;15170:79::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15237:4:::1;15229:5;:12;;;;15170:79:::0;:::o;11663:20::-;;;;:::o;12073:23::-;;;;:::o;11599:33::-;;;;:::o;14464:88::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14545:4:::1;14523:13;:19;14537:4;14523:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14464:88:::0;:::o;12690:49::-;;;;;;;;;;;;;;;;;:::o;14558:94::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14644:5:::1;14622:13;:19;14636:4;14622:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;14558:94:::0;:::o;11898:39::-;;;;:::o;12803:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2683:148::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2790:1:::1;2753:40;;2774:6;::::0;::::1;;;;;;;;2753:40;;;;;;;;;;;;2821:1;2804:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2683:148::o:0;14709:455::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14904:4:::1;14896:5;:12;;;;14943;14919:21;:36;;;;14990:12;14966:21;:36;;;;15024:7;15013:8;:18;;;;15053:7;15042:8;:18;;;;15085:5;15071:11;:19;;;;15113:3;15101:9;:15;;;;15149:7;15127:19;:29;;;;14709:455:::0;;;;;;;;:::o;13929:273::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14011:9:::1;;13993:15;:27;13985:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14093:8;;14071:18;;:30;;14063:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14151:10;14143:28;;:51;14172:21;14143:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13929:273::o:0;12383:34::-;;;;:::o;16137:1215::-;16207:19;;16189:15;:37;16181:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;16278:19;16300:37;16331:5;;16300:14;:26;16315:10;16300:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;16278:59;;16348:23;16374:50;16420:3;16374:41;16390:24;;16374:11;:15;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;16348:76;;16435:20;16493:15;;16474;:34;16470:489;;16540:11;16525:26;;16470:489;;;16609:23;16653:19;;16635:15;;:37;;;;:::i;:::-;16609:63;;16687:24;16732:19;;16714:15;:37;;;;:::i;:::-;16687:64;;16766:30;16799:75;16858:15;16799:54;16836:16;16799:32;16815:15;16799:11;:15;;:32;;;;:::i;:::-;:36;;:54;;;;:::i;:::-;:58;;:75;;;;:::i;:::-;16766:108;;16904:43;16924:22;16904:15;:19;;:43;;;;:::i;:::-;16889:58;;16470:489;;;;16969:24;16996:45;17013:15;:27;17029:10;17013:27;;;;;;;;;;;;;;;;16996:12;:16;;:45;;;;:::i;:::-;16969:72;;17079:1;17060:16;:20;17052:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17167:49;17199:16;17167:15;:27;17183:10;17167:27;;;;;;;;;;;;;;;;:31;;:49;;;;:::i;:::-;17137:15;:27;17153:10;17137:27;;;;;;;;;;;;;;;:79;;;;17251:4;17227:9;:21;17237:10;17227:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17274:5;;;;;;;;;;;:14;;;17289:10;17301:16;17274:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17266:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;16137:1215;;;;:::o;2036:87::-;2082:7;2109:6;;;;;;;;;;;2102:13;;2036:87;:::o;12324:24::-;;;;:::o;13244:459::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13419:1:::1;13391:25;:29;:65;;;;;13453:3;13424:25;:32;;13391:65;13383:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;13521:16;13506:12;:31;13498:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13625:25;13598:24;:52;;;;13679:16;13661:15;:34;;;;13244:459:::0;;;:::o;11994:30::-;;;;:::o;11528:32::-;;;;:::o;12186:23::-;;;;:::o;11716:36::-;;;;:::o;12746:50::-;;;;;;;;;;;;;;;;;:::o;2984:244::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3093:1:::1;3073:22;;:8;:22;;;;3065:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3183:8;3154:38;;3175:6;::::0;::::1;;;;;;;;3154:38;;;;;;;;;;;;3212:8;3203:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2984:244:::0;:::o;12261:26::-;;;;:::o;11439:19::-;;;;;;;;;;;;;:::o;11799:36::-;;;;:::o;12638:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;668:98::-;721:7;748:10;741:17;;668:98;:::o;5951:179::-;6009:7;6029:9;6045:1;6041;:5;;;;:::i;:::-;6029:17;;6070:1;6065;:6;;6057:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6121:1;6114:8;;;5951:179;;;;:::o;6826:220::-;6884:7;6913:1;6908;:6;6904:20;;;6923:1;6916:8;;;;6904:20;6935:9;6951:1;6947;:5;;;;:::i;:::-;6935:17;;6980:1;6975;6971;:5;;;;:::i;:::-;:10;6963:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7037:1;7030:8;;;6826:220;;;;;:::o;7522:153::-;7580:7;7612:1;7608;:5;7600:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7666:1;7662;:5;;;;:::i;:::-;7655:12;;7522:153;;;;:::o;6411:158::-;6469:7;6502:1;6497;:6;;6489:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6560:1;6556;:5;;;;:::i;:::-;6549:12;;6411:158;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:262::-;;836:2;824:9;815:7;811:23;807:32;804:2;;;852:1;849;842:12;804:2;895:1;920:53;965:7;956:6;945:9;941:22;920:53;:::i;:::-;910:63;;866:117;794:196;;;;:::o;996:256::-;;1101:2;1089:9;1080:7;1076:23;1072:32;1069:2;;;1117:1;1114;1107:12;1069:2;1160:1;1185:50;1227:7;1218:6;1207:9;1203:22;1185:50;:::i;:::-;1175:60;;1131:114;1059:193;;;;:::o;1258:278::-;;1374:2;1362:9;1353:7;1349:23;1345:32;1342:2;;;1390:1;1387;1380:12;1342:2;1433:1;1458:61;1511:7;1502:6;1491:9;1487:22;1458:61;:::i;:::-;1448:71;;1404:125;1332:204;;;;:::o;1542:262::-;;1650:2;1638:9;1629:7;1625:23;1621:32;1618:2;;;1666:1;1663;1656:12;1618:2;1709:1;1734:53;1779:7;1770:6;1759:9;1755:22;1734:53;:::i;:::-;1724:63;;1680:117;1608:196;;;;:::o;1810:284::-;;1929:2;1917:9;1908:7;1904:23;1900:32;1897:2;;;1945:1;1942;1935:12;1897:2;1988:1;2013:64;2069:7;2060:6;2049:9;2045:22;2013:64;:::i;:::-;2003:74;;1959:128;1887:207;;;;:::o;2100:552::-;;;;2242:2;2230:9;2221:7;2217:23;2213:32;2210:2;;;2258:1;2255;2248:12;2210:2;2301:1;2326:53;2371:7;2362:6;2351:9;2347:22;2326:53;:::i;:::-;2316:63;;2272:117;2428:2;2454:53;2499:7;2490:6;2479:9;2475:22;2454:53;:::i;:::-;2444:63;;2399:118;2556:2;2582:53;2627:7;2618:6;2607:9;2603:22;2582:53;:::i;:::-;2572:63;;2527:118;2200:452;;;;;:::o;2658:1282::-;;;;;;;;;2885:3;2873:9;2864:7;2860:23;2856:33;2853:2;;;2902:1;2899;2892:12;2853:2;2945:1;2970:53;3015:7;3006:6;2995:9;2991:22;2970:53;:::i;:::-;2960:63;;2916:117;3072:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;:::i;:::-;3088:63;;3043:118;3200:2;3226:53;3271:7;3262:6;3251:9;3247:22;3226:53;:::i;:::-;3216:63;;3171:118;3328:2;3354:53;3399:7;3390:6;3379:9;3375:22;3354:53;:::i;:::-;3344:63;;3299:118;3456:3;3483:53;3528:7;3519:6;3508:9;3504:22;3483:53;:::i;:::-;3473:63;;3427:119;3585:3;3612:53;3657:7;3648:6;3637:9;3633:22;3612:53;:::i;:::-;3602:63;;3556:119;3714:3;3741:53;3786:7;3777:6;3766:9;3762:22;3741:53;:::i;:::-;3731:63;;3685:119;3843:3;3870:53;3915:7;3906:6;3895:9;3891:22;3870:53;:::i;:::-;3860:63;;3814:119;2843:1097;;;;;;;;;;;:::o;3946:118::-;4033:24;4051:5;4033:24;:::i;:::-;4028:3;4021:37;4011:53;;:::o;4070:109::-;4151:21;4166:5;4151:21;:::i;:::-;4146:3;4139:34;4129:50;;:::o;4185:159::-;4286:51;4331:5;4286:51;:::i;:::-;4281:3;4274:64;4264:80;;:::o;4350:373::-;;4513:67;4577:2;4572:3;4513:67;:::i;:::-;4506:74;;4610:34;4606:1;4601:3;4597:11;4590:55;4676:11;4671:2;4666:3;4662:12;4655:33;4714:2;4709:3;4705:12;4698:19;;4496:227;;;:::o;4729:324::-;;4892:67;4956:2;4951:3;4892:67;:::i;:::-;4885:74;;4989:28;4985:1;4980:3;4976:11;4969:49;5044:2;5039:3;5035:12;5028:19;;4875:178;;;:::o;5059:370::-;;5222:67;5286:2;5281:3;5222:67;:::i;:::-;5215:74;;5319:34;5315:1;5310:3;5306:11;5299:55;5385:8;5380:2;5375:3;5371:12;5364:30;5420:2;5415:3;5411:12;5404:19;;5205:224;;;:::o;5435:325::-;;5598:67;5662:2;5657:3;5598:67;:::i;:::-;5591:74;;5695:29;5691:1;5686:3;5682:11;5675:50;5751:2;5746:3;5742:12;5735:19;;5581:179;;;:::o;5766:313::-;;5929:67;5993:2;5988:3;5929:67;:::i;:::-;5922:74;;6026:17;6022:1;6017:3;6013:11;6006:38;6070:2;6065:3;6061:12;6054:19;;5912:167;;;:::o;6085:328::-;;6248:67;6312:2;6307:3;6248:67;:::i;:::-;6241:74;;6345:32;6341:1;6336:3;6332:11;6325:53;6404:2;6399:3;6395:12;6388:19;;6231:182;;;:::o;6419:324::-;;6582:67;6646:2;6641:3;6582:67;:::i;:::-;6575:74;;6679:28;6675:1;6670:3;6666:11;6659:49;6734:2;6729:3;6725:12;6718:19;;6565:178;;;:::o;6749:324::-;;6912:67;6976:2;6971:3;6912:67;:::i;:::-;6905:74;;7009:28;7005:1;7000:3;6996:11;6989:49;7064:2;7059:3;7055:12;7048:19;;6895:178;;;:::o;7079:319::-;;7242:67;7306:2;7301:3;7242:67;:::i;:::-;7235:74;;7339:23;7335:1;7330:3;7326:11;7319:44;7389:2;7384:3;7380:12;7373:19;;7225:173;;;:::o;7404:325::-;;7567:67;7631:2;7626:3;7567:67;:::i;:::-;7560:74;;7664:29;7660:1;7655:3;7651:11;7644:50;7720:2;7715:3;7711:12;7704:19;;7550:179;;;:::o;7735:324::-;;7898:67;7962:2;7957:3;7898:67;:::i;:::-;7891:74;;7995:28;7991:1;7986:3;7982:11;7975:49;8050:2;8045:3;8041:12;8034:19;;7881:178;;;:::o;8065:377::-;;8228:67;8292:2;8287:3;8228:67;:::i;:::-;8221:74;;8325:34;8321:1;8316:3;8312:11;8305:55;8391:15;8386:2;8381:3;8377:12;8370:37;8433:2;8428:3;8424:12;8417:19;;8211:231;;;:::o;8448:365::-;;8611:67;8675:2;8670:3;8611:67;:::i;:::-;8604:74;;8708:34;8704:1;8699:3;8695:11;8688:55;8774:3;8769:2;8764:3;8760:12;8753:25;8804:2;8799:3;8795:12;8788:19;;8594:219;;;:::o;8819:330::-;;8982:67;9046:2;9041:3;8982:67;:::i;:::-;8975:74;;9079:34;9075:1;9070:3;9066:11;9059:55;9140:2;9135:3;9131:12;9124:19;;8965:184;;;:::o;9155:317::-;;9318:67;9382:2;9377:3;9318:67;:::i;:::-;9311:74;;9415:21;9411:1;9406:3;9402:11;9395:42;9463:2;9458:3;9454:12;9447:19;;9301:171;;;:::o;9478:317::-;;9641:67;9705:2;9700:3;9641:67;:::i;:::-;9634:74;;9738:21;9734:1;9729:3;9725:11;9718:42;9786:2;9781:3;9777:12;9770:19;;9624:171;;;:::o;9801:317::-;;9964:67;10028:2;10023:3;9964:67;:::i;:::-;9957:74;;10061:21;10057:1;10052:3;10048:11;10041:42;10109:2;10104:3;10100:12;10093:19;;9947:171;;;:::o;10124:319::-;;10287:67;10351:2;10346:3;10287:67;:::i;:::-;10280:74;;10384:23;10380:1;10375:3;10371:11;10364:44;10434:2;10429:3;10425:12;10418:19;;10270:173;;;:::o;10449:316::-;;10612:67;10676:2;10671:3;10612:67;:::i;:::-;10605:74;;10709:20;10705:1;10700:3;10696:11;10689:41;10756:2;10751:3;10747:12;10740:19;;10595:170;;;:::o;10771:118::-;10858:24;10876:5;10858:24;:::i;:::-;10853:3;10846:37;10836:53;;:::o;10895:222::-;;11026:2;11015:9;11011:18;11003:26;;11039:71;11107:1;11096:9;11092:17;11083:6;11039:71;:::i;:::-;10993:124;;;;:::o;11123:332::-;;11282:2;11271:9;11267:18;11259:26;;11295:71;11363:1;11352:9;11348:17;11339:6;11295:71;:::i;:::-;11376:72;11444:2;11433:9;11429:18;11420:6;11376:72;:::i;:::-;11249:206;;;;;:::o;11461:210::-;;11586:2;11575:9;11571:18;11563:26;;11599:65;11661:1;11650:9;11646:17;11637:6;11599:65;:::i;:::-;11553:118;;;;:::o;11677:250::-;;11822:2;11811:9;11807:18;11799:26;;11835:85;11917:1;11906:9;11902:17;11893:6;11835:85;:::i;:::-;11789:138;;;;:::o;11933:419::-;;12137:2;12126:9;12122:18;12114:26;;12186:9;12180:4;12176:20;12172:1;12161:9;12157:17;12150:47;12214:131;12340:4;12214:131;:::i;:::-;12206:139;;12104:248;;;:::o;12358:419::-;;12562:2;12551:9;12547:18;12539:26;;12611:9;12605:4;12601:20;12597:1;12586:9;12582:17;12575:47;12639:131;12765:4;12639:131;:::i;:::-;12631:139;;12529:248;;;:::o;12783:419::-;;12987:2;12976:9;12972:18;12964:26;;13036:9;13030:4;13026:20;13022:1;13011:9;13007:17;13000:47;13064:131;13190:4;13064:131;:::i;:::-;13056:139;;12954:248;;;:::o;13208:419::-;;13412:2;13401:9;13397:18;13389:26;;13461:9;13455:4;13451:20;13447:1;13436:9;13432:17;13425:47;13489:131;13615:4;13489:131;:::i;:::-;13481:139;;13379:248;;;:::o;13633:419::-;;13837:2;13826:9;13822:18;13814:26;;13886:9;13880:4;13876:20;13872:1;13861:9;13857:17;13850:47;13914:131;14040:4;13914:131;:::i;:::-;13906:139;;13804:248;;;:::o;14058:419::-;;14262:2;14251:9;14247:18;14239:26;;14311:9;14305:4;14301:20;14297:1;14286:9;14282:17;14275:47;14339:131;14465:4;14339:131;:::i;:::-;14331:139;;14229:248;;;:::o;14483:419::-;;14687:2;14676:9;14672:18;14664:26;;14736:9;14730:4;14726:20;14722:1;14711:9;14707:17;14700:47;14764:131;14890:4;14764:131;:::i;:::-;14756:139;;14654:248;;;:::o;14908:419::-;;15112:2;15101:9;15097:18;15089:26;;15161:9;15155:4;15151:20;15147:1;15136:9;15132:17;15125:47;15189:131;15315:4;15189:131;:::i;:::-;15181:139;;15079:248;;;:::o;15333:419::-;;15537:2;15526:9;15522:18;15514:26;;15586:9;15580:4;15576:20;15572:1;15561:9;15557:17;15550:47;15614:131;15740:4;15614:131;:::i;:::-;15606:139;;15504:248;;;:::o;15758:419::-;;15962:2;15951:9;15947:18;15939:26;;16011:9;16005:4;16001:20;15997:1;15986:9;15982:17;15975:47;16039:131;16165:4;16039:131;:::i;:::-;16031:139;;15929:248;;;:::o;16183:419::-;;16387:2;16376:9;16372:18;16364:26;;16436:9;16430:4;16426:20;16422:1;16411:9;16407:17;16400:47;16464:131;16590:4;16464:131;:::i;:::-;16456:139;;16354:248;;;:::o;16608:419::-;;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16779:248;;;:::o;17033:419::-;;17237:2;17226:9;17222:18;17214:26;;17286:9;17280:4;17276:20;17272:1;17261:9;17257:17;17250:47;17314:131;17440:4;17314:131;:::i;:::-;17306:139;;17204:248;;;:::o;17458:419::-;;17662:2;17651:9;17647:18;17639:26;;17711:9;17705:4;17701:20;17697:1;17686:9;17682:17;17675:47;17739:131;17865:4;17739:131;:::i;:::-;17731:139;;17629:248;;;:::o;17883:419::-;;18087:2;18076:9;18072:18;18064:26;;18136:9;18130:4;18126:20;18122:1;18111:9;18107:17;18100:47;18164:131;18290:4;18164:131;:::i;:::-;18156:139;;18054:248;;;:::o;18308:419::-;;18512:2;18501:9;18497:18;18489:26;;18561:9;18555:4;18551:20;18547:1;18536:9;18532:17;18525:47;18589:131;18715:4;18589:131;:::i;:::-;18581:139;;18479:248;;;:::o;18733:419::-;;18937:2;18926:9;18922:18;18914:26;;18986:9;18980:4;18976:20;18972:1;18961:9;18957:17;18950:47;19014:131;19140:4;19014:131;:::i;:::-;19006:139;;18904:248;;;:::o;19158:419::-;;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19329:248;;;:::o;19583:419::-;;19787:2;19776:9;19772:18;19764:26;;19836:9;19830:4;19826:20;19822:1;19811:9;19807:17;19800:47;19864:131;19990:4;19864:131;:::i;:::-;19856:139;;19754:248;;;:::o;20008:222::-;;20139:2;20128:9;20124:18;20116:26;;20152:71;20220:1;20209:9;20205:17;20196:6;20152:71;:::i;:::-;20106:124;;;;:::o;20236:169::-;;20354:6;20349:3;20342:19;20394:4;20389:3;20385:14;20370:29;;20332:73;;;;:::o;20411:305::-;;20470:20;20488:1;20470:20;:::i;:::-;20465:25;;20504:20;20522:1;20504:20;:::i;:::-;20499:25;;20658:1;20590:66;20586:74;20583:1;20580:81;20577:2;;;20664:18;;:::i;:::-;20577:2;20708:1;20705;20701:9;20694:16;;20455:261;;;;:::o;20722:185::-;;20779:20;20797:1;20779:20;:::i;:::-;20774:25;;20813:20;20831:1;20813:20;:::i;:::-;20808:25;;20852:1;20842:2;;20857:18;;:::i;:::-;20842:2;20899:1;20896;20892:9;20887:14;;20764:143;;;;:::o;20913:348::-;;20976:20;20994:1;20976:20;:::i;:::-;20971:25;;21010:20;21028:1;21010:20;:::i;:::-;21005:25;;21198:1;21130:66;21126:74;21123:1;21120:81;21115:1;21108:9;21101:17;21097:105;21094:2;;;21205:18;;:::i;:::-;21094:2;21253:1;21250;21246:9;21235:20;;20961:300;;;;:::o;21267:191::-;;21327:20;21345:1;21327:20;:::i;:::-;21322:25;;21361:20;21379:1;21361:20;:::i;:::-;21356:25;;21400:1;21397;21394:8;21391:2;;;21405:18;;:::i;:::-;21391:2;21450:1;21447;21443:9;21435:17;;21312:146;;;;:::o;21464:96::-;;21530:24;21548:5;21530:24;:::i;:::-;21519:35;;21509:51;;;:::o;21566:90::-;;21643:5;21636:13;21629:21;21618:32;;21608:48;;;:::o;21662:126::-;;21739:42;21732:5;21728:54;21717:65;;21707:81;;;:::o;21794:77::-;;21860:5;21849:16;;21839:32;;;:::o;21877:154::-;;21974:51;22019:5;21974:51;:::i;:::-;21961:64;;21951:80;;;:::o;22037:127::-;;22134:24;22152:5;22134:24;:::i;:::-;22121:37;;22111:53;;;:::o;22170:180::-;22218:77;22215:1;22208:88;22315:4;22312:1;22305:15;22339:4;22336:1;22329:15;22356:180;22404:77;22401:1;22394:88;22501:4;22498:1;22491:15;22525:4;22522:1;22515:15;22542:122;22615:24;22633:5;22615:24;:::i;:::-;22608:5;22605:35;22595:2;;22654:1;22651;22644:12;22595:2;22585:79;:::o;22670:116::-;22740:21;22755:5;22740:21;:::i;:::-;22733:5;22730:32;22720:2;;22776:1;22773;22766:12;22720:2;22710:76;:::o;22792:122::-;22865:24;22883:5;22865:24;:::i;:::-;22858:5;22855:35;22845:2;;22904:1;22901;22894:12;22845:2;22835:79;:::o
Swarm Source
ipfs://4c5d1829949126ae6b554ef8029128086fc36e4d4b3521f07c9309afd952336e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.127595 | 61,775.5892 | $7,882.25 |
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.