Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 $OCFI
Holders
61
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract contains unverified libraries: MaxWalletCalculator, OcfiFees, OcfiReferrals, OcfiStorage, OcfiTransfers
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
Ocfi
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)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT/*OCFI SOCIALS:Telegram: https://t.me/OCFI_OfficialWebsite: https://www.octofi.ioTwitter: https://twitter.com/realoctofi*/pragma solidity ^0.8.4;import "./OcfiDividendTracker.sol";import "./SafeMath.sol";import "./Ownable.sol";import "./MaxWalletCalculator.sol";import "./OcfiStorage.sol";import "./ERC20.sol";contract Ocfi is ERC20, Ownable {using SafeMath for uint256;using OcfiStorage for OcfiStorage.Data;using OcfiFees for OcfiFees.Data;using OcfiReferrals for OcfiReferrals.Data;using OcfiTransfers for OcfiTransfers.Data;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IUniswapV2Pair.sol";import "./IWETH.sol";import "./DividendDelayedPayingToken.sol";import "./SafeMath.sol";import "./IERC20.sol";import "./Ocfi.sol";import "./OcfiDividendTrackerBalanceCalculator.sol";import "./IUniswapV2Router.sol";contract OcfiDividendTracker is DividendDelayedPayingToken {using SafeMath for uint256;using SafeMathInt for int256;Ocfi public immutable token;OcfiDividendTrackerBalanceCalculator public balanceCalculator;mapping (address => bool) public excludedFromDividends;mapping (address => uint256) public lastClaimTimes;event OcfiDividendTrackerBalanceCalculatorUpdated(address balanceCalculator);event ExcludeFromDividends(address indexed account);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;library SafeMath {/*** @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).*
1234567891011121314151617181920212223242526pragma solidity ^0.8.4;// SPDX-License-Identifier: MIT Licenseimport "./Context.sol";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 returns (address) {return _owner;}
12345678910111213141516171819202122// SPDX-License-Identifier: MITpragma solidity ^0.8.4;library MaxWalletCalculator {function calculateMaxWallet(uint256 totalSupply, uint256 startTime) public view returns (uint256) {if(startTime == 0) {return totalSupply;}uint256 FACTOR_MAX = 10000;uint256 age = block.timestamp - startTime;uint256 base = totalSupply * 10 / FACTOR_MAX; // 0.1%uint256 incrasePerMinute = totalSupply * 10 / FACTOR_MAX; // 0.1%uint256 extra = incrasePerMinute * age / (1 minutes); // up 0.1% per minutereturn base + extra + (10 ** 18);}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./OcfiFees.sol";import "./OcfiReferrals.sol";import "./OcfiTransfers.sol";import "./OcfiDividendTracker.sol";import "./OcfiDividendTrackerFactory.sol";import "./IUniswapV2Pair.sol";import "./IUniswapV2Router.sol";import "./IUniswapV2Factory.sol";import "./ICustomContract.sol";import "./IERC721A.sol";library OcfiStorage {using OcfiTransfers for OcfiTransfers.Data;using OcfiReferrals for OcfiReferrals.Data;using OcfiFees for OcfiFees.Data;event UpdateMarketingWallet(address marketingWallet);event UpdateTeamWallet(address teamWallet);event UpdateDevWallet(address devWallet);event UpdateDividendTrackerContract(address dividednTrackerContract);event UpdateNftContract(address nftContract);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IERC20.sol";import "./IERC20Metadata.sol";import "./Context.sol";import "./SafeMath.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.* For a generic mechanism see {ERC20PresetMinterPauser}.** TIP: For a detailed writeup see our guide* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** We have followed general OpenZeppelin guidelines: functions revert instead* of returning `false` on failure. This behavior is nonetheless conventional* and does not conflict with the expectations of ERC20 applications.** Additionally, an {Approval} event is emitted on calls to {transferFrom}.* This allows applications to reconstruct the allowance for all accounts just
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IUniswapV2Pair {event Approval(address indexed owner, address indexed spender, uint value);event Transfer(address indexed from, address indexed to, uint value);function name() external pure returns (string memory);function symbol() external pure returns (string memory);function decimals() external pure returns (uint8);function totalSupply() external view returns (uint);function balanceOf(address owner) external view returns (uint);function allowance(address owner, address spender) external view returns (uint);function approve(address spender, uint value) external returns (bool);function transfer(address to, uint value) external returns (bool);function transferFrom(address from, address to, uint value) external returns (bool);function DOMAIN_SEPARATOR() external view returns (bytes32);function PERMIT_TYPEHASH() external pure returns (bytes32);function nonces(address owner) external view returns (uint);function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;event Mint(address indexed sender, uint amount0, uint amount1);
123456789// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IWETH {function deposit() external payable;function transfer(address dst, uint wad) external returns (bool);function balanceOf(address account) external returns (uint256);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./ERC20.sol";import "./SafeMath.sol";import "./SafeMathUint.sol";import "./SafeMathInt.sol";import "./DividendPayingTokenInterface.sol";import "./DividendPayingTokenOptionalInterface.sol";import "./Ownable.sol";/// @title Dividend-Paying Token/// @author Roger Wu (https://github.com/roger-wu)/// @dev A mintable ERC20 token that allows anyone to pay and distribute ether/// to token holders as dividends and allows token holders to withdraw their dividends./// Reference: the source code of PoWH3D: https://etherscan.io/address/0xB3775fB83F7D12A36E0475aBdD1FCA35c091efBe#codecontract DividendDelayedPayingToken is ERC20, DividendPayingTokenInterface, DividendPayingTokenOptionalInterface, Ownable {using SafeMath for uint256;using SafeMathUint for uint256;using SafeMathInt for int256;// With `magnitude`, we can properly distribute dividends even if the amount of received ether is small.// For more discussion about choosing the value of `magnitude`,// see https://github.com/ethereum/EIPs/issues/1726#issuecomment-472352728
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Returns the amount of tokens in existence.*/function totalSupply() external view returns (uint256);/*** @dev Returns the amount of tokens owned by `account`.*/function balanceOf(address account) external view returns (uint256);/*** @dev Moves `amount` tokens from the caller's account to `recipient`.** Returns a boolean value indicating whether the operation succeeded.** Emits a {Transfer} event.*/function transfer(address recipient, uint256 amount) external returns (bool);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./Ocfi.sol";import "./OcfiClaim.sol";import "./IOcfiDividendTrackerBalanceCalculator.sol";contract OcfiDividendTrackerBalanceCalculator is IOcfiDividendTrackerBalanceCalculator, Ownable {Ocfi public immutable token;OcfiClaim public immutable claim;constructor(address payable _token, address payable _claim) {token = Ocfi(_token);claim = OcfiClaim(_claim);}function calculateBalance(address account) external override view returns (uint256) {if(account == address(0)) {return 0;}return token.balanceOf(account) + claim.getTotalClaimRemaining(account);}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IUniswapV2Router01 {function factory() external pure returns (address);function WETH() external pure returns (address);function addLiquidity(address tokenA,address tokenB,uint amountADesired,uint amountBDesired,uint amountAMin,uint amountBMin,address to,uint deadline) external returns (uint amountA, uint amountB, uint liquidity);function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
123456789101112131415// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/*** @title SafeMathUint* @dev Math operations with safety checks that revert on error*/library SafeMathUint {function toInt256Safe(uint256 a) internal pure returns (int256) {int256 b = int256(a);require(b >= 0);return b;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT/*MIT LicenseCopyright (c) 2018 requestnetworkCopyright (c) 2018 Fragments, Inc.Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @title Dividend-Paying Token Interface/// @author Roger Wu (https://github.com/roger-wu)/// @dev An interface for a dividend-paying token contract.interface DividendPayingTokenInterface {/// @notice View the amount of dividend in wei that an address can withdraw./// @param _owner The address of a token holder./// @return The amount of dividend in wei that `_owner` can withdraw.function dividendOf(address _owner) external view returns(uint256);/// @dev This event MUST emit when ether is distributed to token holders./// @param from The address which sends ether to this contract./// @param weiAmount The amount of distributed ether in wei.event DividendsDistributed(address indexed from,uint256 weiAmount,bool delayed);/// @dev This event MUST emit when an address withdraws their dividend./// @param to The address which withdraws ether from this contract./// @param weiAmount The amount of withdrawn ether in wei.
12345678910111213141516171819202122232425// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @title Dividend-Paying Token Optional Interface/// @author Roger Wu (https://github.com/roger-wu)/// @dev OPTIONAL functions for a dividend-paying token contract.interface DividendPayingTokenOptionalInterface {/// @notice View the amount of dividend in wei that an address can withdraw./// @param _owner The address of a token holder./// @return The amount of dividend in wei that `_owner` can withdraw.function withdrawableDividendOf(address _owner) external view returns(uint256);/// @notice View the amount of dividend in wei that an address has withdrawn./// @param _owner The address of a token holder./// @return The amount of dividend in wei that `_owner` has withdrawn.function withdrawnDividendOf(address _owner) external view returns(uint256);/// @notice View the amount of dividend in wei that an address has earned in total./// @dev accumulativeDividendOf(_owner) = withdrawableDividendOf(_owner) + withdrawnDividendOf(_owner)/// @param _owner The address of a token holder./// @return The amount of dividend in wei that `_owner` has earned in total.function accumulativeDividendOf(address _owner) external view returns(uint256);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC20 standard.** _Available since v4.1._*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/function decimals() external view returns (uint8);
123456789101112131415161718192021222324// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/** @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) {this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./UniswapV2PriceImpactCalculator.sol";import "./OcfiDividendTracker.sol";import "./OcfiStorage.sol";import "./IUniswapV2Router.sol";import "./IUniswapV2Pair.sol";import "./IWETH.sol";import "./Math.sol";library OcfiFees {struct Data {address uniswapV2Pair;uint256 baseFee;//in 100ths of a percentuint256 maxFee;uint256 minFee;uint256 sellFee;uint256 buyFee;uint256 extraFee;//in 100ths of a percent, extra sell fees. Buy fee is baseFee - extraFeeuint256 extraFeeUpdateTime; //when the extraFee was updated. Use time elapsed to dynamically calculate new feeuint256 feeSellImpact; //in 100ths of a percent, how much price impact on sells (in percent) increases extraFee.uint256 feeTimeImpact; //in 100ths of a percent, how much time elapsed (in minutes) lowers extraFee
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;library OcfiReferrals {struct Data {uint256 referralBonus;uint256 referredBonus;uint256 tokensNeededForRefferalNumber;mapping(uint256 => address) registeredReferrersByCode;mapping(address => uint256) registeredReferrersByAddress;uint256 currentRefferralCode;}uint256 private constant FACTOR_MAX = 10000;event RefferalCodeGenerated(address account, uint256 code, uint256 inc1, uint256 inc2);event UpdateReferralBonus(uint256 value);event UpdateReferredBonus(uint256 value);event UpdateTokensNeededForReferralNumber(uint256 value);function init(Data storage data) public {updateReferralBonus(data, 800); //2% bonus on buys from people you refer
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./OcfiStorage.sol";import "./OcfiFees.sol";import "./OcfiReferrals.sol";import "./OcfiStorage.sol";library OcfiTransfers {using OcfiFees for OcfiFees.Data;using OcfiReferrals for OcfiReferrals.Data;using OcfiStorage for OcfiStorage.Data;struct Data {address uniswapV2Router;address uniswapV2Pair;}uint256 private constant FACTOR_MAX = 10000;event BuyWithFees(address indexed account,uint256 amount,uint256 feeFactor,uint256 feeTokens
1234567891011// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./OcfiDividendTracker.sol";library OcfiDividendTrackerFactory {function createDividendTracker() public returns (OcfiDividendTracker) {return new OcfiDividendTracker(payable(address(this)));}}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IUniswapV2Factory {event PairCreated(address indexed token0, address indexed token1, address pair, uint);function feeTo() external view returns (address);function feeToSetter() external view returns (address);function getPair(address tokenA, address tokenB) external view returns (address pair);function allPairs(uint) external view returns (address pair);function allPairsLength() external view returns (uint);function createPair(address tokenA, address tokenB) external returns (address pair);function setFeeTo(address) external;function setFeeToSetter(address) external;}
123456789101112// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface ICustomContract {function beforeTokenTransfer(address from, address to, uint256 amount) external;function handleBuy(address account, uint256 amount, uint256 feeTokens) external;function handleSell(address account, uint256 amount, uint256 feeTokens) external;function handleBalanceUpdated(address account, uint256 amount) external;function getData(address account) external view returns (uint256[] memory data);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.1.0// Creator: Chiru Labspragma solidity ^0.8.4;/*** @dev Interface of an ERC721A compliant contract.*/interface IERC721A {/*** The caller must own the token or be an approved operator.*/error ApprovalCallerNotOwnerNorApproved();/*** The token does not exist.*/error ApprovalQueryForNonexistentToken();/*** The caller cannot approve to their own address.*/error ApproveToCaller();/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IUniswapV2Pair.sol";import "./IERC20Metadata.sol";library UniswapV2PriceImpactCalculator {function calculateSellPriceImpact(address tokenAddress, address pairAddress, uint256 value) public view returns (uint256) {value = value * 998 / 1000;IUniswapV2Pair pair = IUniswapV2Pair(pairAddress);(uint256 r0, uint256 r1,) = pair.getReserves();IERC20Metadata token0 = IERC20Metadata(pair.token0());IERC20Metadata token1 = IERC20Metadata(pair.token1());if(address(token1) == tokenAddress) {IERC20Metadata tokenTemp = token0;token0 = token1;token1 = tokenTemp;uint256 rTemp = r0;r0 = r1;r1 = rTemp;
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;library Math {function sqrt(uint y) internal pure returns (uint z) {if (y > 3) {z = y;uint x = y / 2 + 1;while (x < z) {z = x;x = (y / x + x) / 2;}} else if (y != 0) {z = 1;}}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IERC20.sol";import "./Ocfi.sol";import "./OcfiDividendTracker.sol";import "./Ownable.sol";contract OcfiClaim is Ownable {Ocfi token;OcfiDividendTracker dividendTracker;uint256 private constant FACTOR_MAX = 10000;mapping (address => ClaimInfo) public claimInfo;uint256 private totalTokens;struct ClaimInfo {uint128 totalClaimAmount;uint128 totalClaimed;uint64 startTime;uint64 factor;uint64 period;uint64 expiryDuration;
1234567// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IOcfiDividendTrackerBalanceCalculator {function calculateBalance(address account) external view returns (uint256);}
1234567891011121314151617181920212223242526{"optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {"contracts/MaxWalletCalculator.sol": {"MaxWalletCalculator": "0xb9465abd8f286c6720a9464f023539321c0fc32e"},"contracts/OcfiFees.sol": {"OcfiFees": "0x5391cbd188a3826edc589dd6ff73a2d66c3c0c43"},"contracts/OcfiReferrals.sol": {"OcfiReferrals": "0xe923a2c3bce58ce2ee617d0d65f01669aec9e8bc"
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"reinvest","type":"bool"}],"name":"claimDividends","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"customContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dividendTracker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentFees","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getData","outputs":[{"internalType":"uint256[]","name":"dividendInfo","type":"uint256[]"},{"internalType":"uint256[]","name":"customContractInfo","type":"uint256[]"},{"internalType":"uint256","name":"reinvestBonus","type":"uint256"},{"internalType":"uint256","name":"referralCode","type":"uint256"},{"internalType":"uint256[]","name":"fees","type":"uint256[]"},{"internalType":"uint256","name":"blockTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapAccumulatedFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"reinvestDividends","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"atAmount","type":"uint256"},{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"name":"setSwapTokensParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCustomContract","type":"address"},{"internalType":"bool","name":"excludeContractFromDividends","type":"bool"}],"name":"updateCustomContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"dividendTrackerContract","type":"address"}],"name":"updateDividendTrackerContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendsFactor","type":"uint256"},{"internalType":"uint256","name":"nftDividendsFactor","type":"uint256"},{"internalType":"uint256","name":"liquidityFactor","type":"uint256"},{"internalType":"uint256","name":"customContractFactor","type":"uint256"},{"internalType":"uint256","name":"burnFactor","type":"uint256"},{"internalType":"uint256","name":"marketingFactor","type":"uint256"},{"internalType":"uint256","name":"teamFactor","type":"uint256"},{"internalType":"uint256","name":"devFactor","type":"uint256"}],"name":"updateFeeDestinationPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256"},{"internalType":"uint256","name":"maxFee","type":"uint256"},{"internalType":"uint256","name":"minFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellImpact","type":"uint256"},{"internalType":"uint256","name":"timeImpact","type":"uint256"}],"name":"updateFeeSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newNftContract","type":"address"}],"name":"updateNftContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presaleContract","type":"address"}],"name":"updatePresaleContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"referralBonus","type":"uint256"},{"internalType":"uint256","name":"referredBonus","type":"uint256"},{"internalType":"uint256","name":"tokensNeeded","type":"uint256"}],"name":"updateReferrals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bonus","type":"uint256"}],"name":"updateReinvestBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600481526020017f4f434649000000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f244f434649000000000000000000000000000000000000000000000000000000815250816003908051906020019062000088929190620019c7565b508060049080519060200190620000a1929190620019c7565b5050506000620000b66200029f60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001713069d3c21bcecceda1000000620002a760201b60201c565b60067333853a30a6407f116e247673f05e763158e292e063e6ed9fd290916200019f6200045660201b60201c565b6040518363ffffffff1660e01b8152600401620001be92919062001f69565b60006040518083038186803b158015620001d757600080fd5b505af4158015620001ec573d6000803e3d6000fd5b505050506200023a30620002056200045660201b60201c565b6103e861019f69d3c21bcecceda100000062000222919062002242565b6200022e91906200220a565b6200048060201b60201c565b62000299306006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166103e8605569d3c21bcecceda100000062000281919062002242565b6200028d91906200220a565b6200048060201b60201c565b620026d2565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200031a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003119062001e90565b60405180910390fd5b6200032e6000838362000ceb60201b60201c565b6200034a8160025462000d6460201b62002dad1790919060201c565b600281905550620003a8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000d6460201b62002dad1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044a919062002147565b60405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620004bb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004f657600080fd5b6000600660270154141562000619573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200057a57506200054b6200045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620005d65750600660240160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b62000618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060f9062001e08565b60405180910390fd5b5b60008114806200065457508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000678576200067283838362000dc760201b62002e0b1760201c565b62000ce6565b6200068b8383836200107b60201b60201c565b600060067333853a30a6407f116e247673f05e763158e292e0635f02a859909186866040518463ffffffff1660e01b8152600401620006cd9392919062001f96565b60206040518083038186803b158015620006e657600080fd5b505af4158015620006fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000721919062001ae8565b905060008290506000808315620009af576000600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc638ecc50f49091886040518363ffffffff1660e01b81526004016200077592919062001f3c565b60206040518083038186803b1580156200078e57600080fd5b505af4158015620007a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007c9919062001abc565b9050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc630e514c71909183620007fe856200148260201b60201c565b8b6040518563ffffffff1660e01b815260040162000820949392919062001eef565b60206040518083038186803b1580156200083957600080fd5b505af41580156200084e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000874919062001ae8565b6200087e57600090505b6000806006601a01738b20c17da67c85a8e2aacf349a26cfee168f55766369d776ae909160068d8d8d896040518763ffffffff1660e01b8152600401620008cb96959493929190620020da565b604080518083038186803b158015620008e357600080fd5b505af4158015620008f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200091e919062001b40565b9150915081945060008111156200097857818111156200093c578190505b80826200094a9190620022a3565b915080886200095a9190620022a3565b9750620009748a848362000dc760201b62002e0b1760201c565b8293505b6000821115620009ab578188620009909190620022a3565b9750620009aa8a308462000dc760201b62002e0b1760201c565b5b5050505b620009c787878762000dc760201b62002e0b1760201c565b60067333853a30a6407f116e247673f05e763158e292e0638d0a6c5c909188620009f78a6200148260201b60201c565b6040518463ffffffff1660e01b815260040162000a17939291906200209d565b60006040518083038186803b15801562000a3057600080fd5b505af415801562000a45573d6000803e3d6000fd5b505050506006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a886040518263ffffffff1660e01b815260040162000aa9919062001d61565b600060405180830381600087803b15801562000ac457600080fd5b505af115801562000ad9573d6000803e3d6000fd5b505050506006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a876040518263ffffffff1660e01b815260040162000b3d919062001d61565b600060405180830381600087803b15801562000b5857600080fd5b505af115801562000b6d573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000c3b576006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a826040518263ffffffff1660e01b815260040162000c06919062001d61565b600060405180830381600087803b15801562000c2157600080fd5b505af115801562000c36573d6000803e3d6000fd5b505050505b600062000c4e886200148260201b60201c565b9050600062000c63886200148260201b60201c565b905060067333853a30a6407f116e247673f05e763158e292e0630b14227e90918b8b86868b8b6040518863ffffffff1660e01b815260040162000cad979695949392919062002020565b60006040518083038186803b15801562000cc657600080fd5b505af415801562000cdb573d6000803e3d6000fd5b505050505050505050505b505050565b60067333853a30a6407f116e247673f05e763158e292e06312cba02390918585856040518563ffffffff1660e01b815260040162000d2d949392919062001fd3565b60006040518083038186803b15801562000d4657600080fd5b505af415801562000d5b573d6000803e3d6000fd5b50505050505050565b600080828462000d759190620021ad565b90508381101562000dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000db49062001de6565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e319062001e4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000ead576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ea49062001da2565b60405180910390fd5b62000ec083838362000ceb60201b60201c565b62000f338160405180606001604052806026815260200162008267602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620014ca60201b620030a0179092919060201c565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000fcd816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000d6460201b62002dad1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200106e919062002147565b60405180910390a3505050565b60006200108e306200148260201b60201c565b905060006006602501548210159050620010ad6200045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015620011245750620010f46200045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156200147b573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015620011b857506006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156200121657506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1562001257576200122c6200153360201b60201c565b836200123e866200148260201b60201c565b6200124a9190620021ad565b11156200125657600080fd5b5b808015620012755750600660280160009054906101000a900460ff16155b8015620012d257506006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015620012e457506000600660270154115b8015620012f5575060066027015442115b156200147a576001600660280160006101000a81548160ff0219169083151502179055506000829050600660260154811115620013355760066026015490505b60006127106006600001601001548362001350919062002242565b6200135c91906200220a565b905060008111156200138b578082620013769190620022a3565b91506200138a3082620015d860201b60201c565b5b620013e3306006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620017a260201b60201c565b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43635a11992090916006856040518463ffffffff1660e01b8152600401620014279392919062001eb2565b60006040518083038186803b1580156200144057600080fd5b505af415801562001455573d6000803e3d6000fd5b505050506000600660280160006101000a81548160ff02191690831515021790555050505b5b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600083831115829062001515576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200150c919062001d7e565b60405180910390fd5b5060008385620015269190620022a3565b9050809150509392505050565b600073b9465abd8f286c6720a9464f023539321c0fc32e63202eb29069d3c21bcecceda10000006006602701546040518363ffffffff1660e01b81526004016200157f92919062002164565b60206040518083038186803b1580156200159857600080fd5b505af4158015620015ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d3919062001b14565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200164b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620016429062001e2a565b60405180910390fd5b6200165f8260008362000ceb60201b60201c565b620016d28160405180606001604052806022815260200162008245602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620014ca60201b620030a0179092919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062001730816002546200197560201b620031041790919060201c565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001796919062002147565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562001815576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200180c9062001e6e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562001888576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200187f9062001dc4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162001968919062002147565b60405180910390a3505050565b6000620019bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620014ca60201b60201c565b905092915050565b828054620019d5906200235e565b90600052602060002090601f016020900481019282620019f9576000855562001a45565b82601f1062001a1457805160ff191683800117855562001a45565b8280016001018555821562001a45579182015b8281111562001a4457825182559160200191906001019062001a27565b5b50905062001a54919062001a58565b5090565b5b8082111562001a7357600081600090555060010162001a59565b5090565b60008151905062001a888162002684565b92915050565b60008151905062001a9f816200269e565b92915050565b60008151905062001ab681620026b8565b92915050565b60006020828403121562001acf57600080fd5b600062001adf8482850162001a77565b91505092915050565b60006020828403121562001afb57600080fd5b600062001b0b8482850162001a8e565b91505092915050565b60006020828403121562001b2757600080fd5b600062001b378482850162001aa5565b91505092915050565b6000806040838503121562001b5457600080fd5b600062001b648582860162001aa5565b925050602062001b778582860162001aa5565b9150509250929050565b62001b8c81620022de565b82525050565b62001b9d81620022de565b82525050565b600062001bb08262002191565b62001bbc81856200219c565b935062001bce81856020860162002328565b62001bd98162002421565b840191505092915050565b600062001bf36023836200219c565b915062001c008262002432565b604082019050919050565b600062001c1a6022836200219c565b915062001c278262002481565b604082019050919050565b600062001c41601b836200219c565b915062001c4e82620024d0565b602082019050919050565b600062001c68604a836200219c565b915062001c7582620024f9565b606082019050919050565b600062001c8f6021836200219c565b915062001c9c826200256e565b604082019050919050565b600062001cb66025836200219c565b915062001cc382620025bd565b604082019050919050565b600062001cdd6024836200219c565b915062001cea826200260c565b604082019050919050565b600062001d04601f836200219c565b915062001d11826200265b565b602082019050919050565b8082525050565b8082525050565b8082525050565b8082525050565b8082525050565b62001d4a816200231e565b82525050565b62001d5b816200231e565b82525050565b600060208201905062001d78600083018462001b81565b92915050565b6000602082019050818103600083015262001d9a818462001ba3565b905092915050565b6000602082019050818103600083015262001dbd8162001be4565b9050919050565b6000602082019050818103600083015262001ddf8162001c0b565b9050919050565b6000602082019050818103600083015262001e018162001c32565b9050919050565b6000602082019050818103600083015262001e238162001c59565b9050919050565b6000602082019050818103600083015262001e458162001c80565b9050919050565b6000602082019050818103600083015262001e678162001ca7565b9050919050565b6000602082019050818103600083015262001e898162001cce565b9050919050565b6000602082019050818103600083015262001eab8162001cf5565b9050919050565b600060608201905062001ec9600083018662001d1c565b62001ed8602083018562001d31565b62001ee7604083018462001d50565b949350505050565b600060808201905062001f06600083018762001d23565b62001f15602083018662001b92565b62001f24604083018562001d50565b62001f33606083018462001b92565b95945050505050565b600060408201905062001f53600083018562001d23565b62001f62602083018462001d50565b9392505050565b600060408201905062001f80600083018562001d2a565b62001f8f602083018462001b92565b9392505050565b600060608201905062001fad600083018662001d2a565b62001fbc602083018562001b92565b62001fcb604083018462001b92565b949350505050565b600060808201905062001fea600083018762001d2a565b62001ff9602083018662001b92565b62002008604083018562001b92565b62002017606083018462001d50565b95945050505050565b600060e08201905062002037600083018a62001d2a565b62002046602083018962001b92565b62002055604083018862001b92565b62002064606083018762001d50565b62002073608083018662001d50565b6200208260a083018562001d50565b6200209160c083018462001d50565b98975050505050505050565b6000606082019050620020b4600083018662001d2a565b620020c3602083018562001b92565b620020d2604083018462001d50565b949350505050565b600060c082019050620020f1600083018962001d38565b62002100602083018862001d31565b6200210f604083018762001b92565b6200211e606083018662001b92565b6200212d608083018562001d50565b6200213c60a083018462001b92565b979650505050505050565b60006020820190506200215e600083018462001d3f565b92915050565b60006040820190506200217b600083018562001d50565b6200218a602083018462001d50565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000620021ba826200231e565b9150620021c7836200231e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620021ff57620021fe62002394565b5b828201905092915050565b600062002217826200231e565b915062002224836200231e565b925082620022375762002236620023c3565b5b828204905092915050565b60006200224f826200231e565b91506200225c836200231e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562002298576200229762002394565b5b828202905092915050565b6000620022b0826200231e565b9150620022bd836200231e565b925082821015620022d357620022d262002394565b5b828203905092915050565b6000620022eb82620022fe565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620023485780820151818401526020810190506200232b565b8381111562002358576000848401525b50505050565b600060028204905060018216806200237757607f821691505b602082108114156200238e576200238d620023f2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f6e6c7920636f6e74726163742c206f776e65722c206f722070726573616c6560008201527f20636f6e74726163742063616e207472616e7366657220746f6b656e7320626560208201527f666f726520737461727400000000000000000000000000000000000000000000604082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6200268f81620022de565b81146200269b57600080fd5b50565b620026a981620022f2565b8114620026b557600080fd5b50565b620026c3816200231e565b8114620026cf57600080fd5b50565b615b6380620026e26000396000f3fe60806040526004361061024a5760003560e01c806378e9792511610139578063a9059cbb116100b6578063c02466681161007a578063c024666814610864578063d43575331461088d578063dd62ed3e146108a9578063e4c2b2d2146108e6578063f2fde38b1461090f578063f8b45b051461093857610251565b8063a9059cbb14610795578063aacebbe3146107d2578063b123c9f3146107fb578063b1d8970814610824578063be9a65551461084d57610251565b80638e875715116100fd5780638e875715146106b057806392e67c06146106d957806395d89b4114610702578063a457c2d71461072d578063a8aa1b311461076a57610251565b806378e97925146105dd5780637cb332bb146106085780638bcd04aa146106315780638d0496131461065c5780638da5cb5b1461068557610251565b806331e79db0116101c757806351e6113b1161018b57806351e6113b1461050c57806358cf72de1461053557806370a082311461055e578063715018a61461059b57806371908a03146105b257610251565b806331e79db01461042257806332cb6b0c1461044b57806338266b221461047657806339509351146104b85780633ccfd60b146104f557610251565b80631816467f1161020e5780631816467f1461034f57806323b872dd146103785780632c1f5216146103b55780632d0f5b34146103e0578063313ce567146103f757610251565b806306fdde0314610256578063095ea7b3146102815780630b893326146102be5780631124f7dd146102fb57806318160ddd1461032457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610963565b6040516102789190614ccb565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190614329565b6109f5565b6040516102b59190614c64565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190614477565b610a13565b6040516102f29190614c64565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d91906141e7565b610ace565b005b34801561033057600080fd5b50610339610bd4565b60405161034691906152e6565b60405180910390f35b34801561035b57600080fd5b50610376600480360381019061037191906141e7565b610bde565b005b34801561038457600080fd5b5061039f600480360381019061039a919061429e565b610ceb565b6040516103ac9190614c64565b60405180910390f35b3480156103c157600080fd5b506103ca610dc4565b6040516103d79190614b27565b60405180910390f35b3480156103ec57600080fd5b506103f5610df1565b005b34801561040357600080fd5b5061040c610f04565b604051610419919061532a565b60405180910390f35b34801561042e57600080fd5b50610449600480360381019061044491906141e7565b610f0d565b005b34801561045757600080fd5b50610460611037565b60405161046d91906152e6565b60405180910390f35b34801561048257600080fd5b5061049d600480360381019061049891906141e7565b611045565b6040516104af96959493929190614bee565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190614329565b6110f5565b6040516104ec9190614c64565b60405180910390f35b34801561050157600080fd5b5061050a6111a8565b005b34801561051857600080fd5b50610533600480360381019061052e9190614593565b611307565b005b34801561054157600080fd5b5061055c600480360381019061055791906142ed565b6114f0565b005b34801561056a57600080fd5b50610585600480360381019061058091906141e7565b6115f8565b60405161059291906152e6565b60405180910390f35b3480156105a757600080fd5b506105b0611640565b005b3480156105be57600080fd5b506105c7611798565b6040516105d49190614bcc565b60405180910390f35b3480156105e957600080fd5b506105f2611834565b6040516105ff91906152e6565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906141e7565b611841565b005b34801561063d57600080fd5b50610646611947565b6040516106539190614b27565b60405180910390f35b34801561066857600080fd5b50610683600480360381019061067e919061451b565b611974565b005b34801561069157600080fd5b5061069a611a7d565b6040516106a79190614b27565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d291906146cf565b611aa7565b005b3480156106e557600080fd5b5061070060048036038101906106fb91906141e7565b611bc8565b005b34801561070e57600080fd5b50610717611cce565b6040516107249190614ccb565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f9190614329565b611d60565b6040516107619190614c64565b60405180910390f35b34801561077657600080fd5b5061077f611e2d565b60405161078c9190614b27565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b79190614329565b611e5a565b6040516107c99190614c64565b60405180910390f35b3480156107de57600080fd5b506107f960048036038101906107f491906141e7565b611e78565b005b34801561080757600080fd5b50610822600480360381019061081d91906144c9565b611f7e565b005b34801561083057600080fd5b5061084b60048036038101906108469190614239565b612087565b005b34801561085957600080fd5b50610862612196565b005b34801561087057600080fd5b5061088b600480360381019061088691906142ed565b612369565b005b6108a760048036038101906108a291906141e7565b612475565b005b3480156108b557600080fd5b506108d060048036038101906108cb9190614262565b6129a5565b6040516108dd91906152e6565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190614631565b612a2c565b005b34801561091b57600080fd5b50610936600480360381019061093191906141e7565b612b47565b005b34801561094457600080fd5b5061094d612d0e565b60405161095a91906152e6565b60405180910390f35b606060038054610972906155f0565b80601f016020809104026020016040519081016040528092919081815260200182805461099e906155f0565b80156109eb5780601f106109c0576101008083540402835291602001916109eb565b820191906000526020600020905b8154815290600101906020018083116109ce57829003601f168201915b5050505050905090565b6000610a09610a0261314e565b8484613156565b6001905092915050565b60006006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a918f3d33846040518363ffffffff1660e01b8152600401610a75929190614b42565b602060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906144a0565b9050919050565b610ad661314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e063c0ded8f29091836040518363ffffffff1660e01b8152600401610ba1929190615095565b60006040518083038186803b158015610bb957600080fd5b505af4158015610bcd573d6000803e3d6000fd5b5050505050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c1857600080fd5b600660210160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5c61314e565b73ffffffffffffffffffffffffffffffffffffffff1614610c7c57600080fd5b60067333853a30a6407f116e247673f05e763158e292e063904ddd539091836040518363ffffffff1660e01b8152600401610cb8929190615095565b60006040518083038186803b158015610cd057600080fd5b505af4158015610ce4573d6000803e3d6000fd5b5050505050565b6000610cf8848484613321565b610db984610d0461314e565b610db485604051806060016040528060288152602001615ae160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d6a61314e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b613156565b600190509392505050565b60006006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df961314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43635a11992090916006610eb4306115f8565b6040518463ffffffff1660e01b8152600401610ed293929190614ead565b60006040518083038186803b158015610eea57600080fd5b505af4158015610efe573d6000803e3d6000fd5b50505050565b60006012905090565b610f1561314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b90614dcd565b60405180910390fd5b6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0826040518263ffffffff1660e01b81526004016110029190614b27565b600060405180830381600087803b15801561101c57600080fd5b505af1158015611030573d6000803e3d6000fd5b5050505050565b69d3c21bcecceda100000081565b6060806000806060600060067333853a30a6407f116e247673f05e763158e292e0636f0d303a9091896040518363ffffffff1660e01b815260040161108b929190615095565b60006040518083038186803b1580156110a357600080fd5b505af41580156110b7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110e091906143a6565b95509550955095509550955091939550919395565b600061119e61110261314e565b84611199856001600061111361314e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dad90919063ffffffff16565b613156565b6001905092915050565b6111b061314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690614dcd565b60405180910390fd5b60006006602701541461125157600080fd5b600061125b611a7d565b73ffffffffffffffffffffffffffffffffffffffff164760405161127e90614b12565b60006040518083038185875af1925050503d80600081146112bb576040519150601f19603f3d011682016040523d82523d6000602084013e6112c0565b606091505b5050905080611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90614d6d565b60405180910390fd5b50565b61130f61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590614dcd565b60405180910390fd5b600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc63f72910339091856040518363ffffffff1660e01b81526004016113dd92919061506c565b60006040518083038186803b1580156113f557600080fd5b505af4158015611409573d6000803e3d6000fd5b50505050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc634777cb309091846040518363ffffffff1660e01b815260040161144c92919061506c565b60006040518083038186803b15801561146457600080fd5b505af4158015611478573d6000803e3d6000fd5b50505050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc6397d764f09091836040518363ffffffff1660e01b81526004016114bb92919061506c565b60006040518083038186803b1580156114d357600080fd5b505af41580156114e7573d6000803e3d6000fd5b50505050505050565b6114f861314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e06279a68f909184846040518463ffffffff1660e01b81526004016115c4939291906151e0565b60006040518083038186803b1580156115dc57600080fd5b505af41580156115f0573d6000803e3d6000fd5b505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61164861314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90614dcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43637142fc5d909160066040518363ffffffff1660e01b81526004016117da929190614e84565b60006040518083038186803b1580156117f257600080fd5b505af4158015611806573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061182f9190614365565b905090565b6000600660270154905090565b61184961314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e06329cf7e499091836040518363ffffffff1660e01b8152600401611914929190615095565b60006040518083038186803b15801561192c57600080fd5b505af4158015611940573d6000803e3d6000fd5b5050505050565b6000600660230160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61197c61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e0635222f5cf909184846040518463ffffffff1660e01b8152600401611a499392919061524e565b60006040518083038186803b158015611a6157600080fd5b505af4158015611a75573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611aaf61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c4363d6b7b8a3909160068b8b8b8b8b8b8b8b6040518b63ffffffff1660e01b8152600401611b8e9a99989796959493929190614ee4565b60006040518083038186803b158015611ba657600080fd5b505af4158015611bba573d6000803e3d6000fd5b505050505050505050505050565b611bd061314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5690614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e063f75983d99091836040518363ffffffff1660e01b8152600401611c9b929190615095565b60006040518083038186803b158015611cb357600080fd5b505af4158015611cc7573d6000803e3d6000fd5b5050505050565b606060048054611cdd906155f0565b80601f0160208091040260200160405190810160405280929190818152602001828054611d09906155f0565b8015611d565780601f10611d2b57610100808354040283529160200191611d56565b820191906000526020600020905b815481529060010190602001808311611d3957829003601f168201915b5050505050905090565b6000611e23611d6d61314e565b84611e1e85604051806060016040528060258152602001615b096025913960016000611d9761314e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b613156565b6001905092915050565b60006006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611e6e611e6761314e565b8484613321565b6001905092915050565b611e8061314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0690614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e06336185cde9091836040518363ffffffff1660e01b8152600401611f4b929190615095565b60006040518083038186803b158015611f6357600080fd5b505af4158015611f77573d6000803e3d6000fd5b5050505050565b611f8661314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c436341d3f1a59091836040518363ffffffff1660e01b8152600401612054929190614f80565b60006040518083038186803b15801561206c57600080fd5b505af4158015612080573d6000803e3d6000fd5b5050505050565b61208f61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e063530c2d0a909183612145611a7d565b6040518463ffffffff1660e01b8152600401612163939291906150be565b60006040518083038186803b15801561217b57600080fd5b505af415801561218f573d6000803e3d6000fd5b5050505050565b61219e61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490614dcd565b60405180910390fd5b60006006602701541461223f57600080fd5b42600660270181905550612299306006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613156565b6006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306122e5306115f8565b6000806122f0611a7d565b426040518863ffffffff1660e01b815260040161231296959493929190614b6b565b6060604051808303818588803b15801561232b57600080fd5b505af115801561233f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236491906145e2565b505050565b61237161314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f790614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c4363d984224f909184846040518463ffffffff1660e01b815260040161244193929190614e4d565b60006040518083038186803b15801561245957600080fd5b505af415801561246d573d6000803e3d6000fd5b505050505050565b61247d61314e565b73ffffffffffffffffffffffffffffffffffffffff166006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461250f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250690614ced565b60405180910390fd5b6000600267ffffffffffffffff811115612552577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125805781602001602082028036833780820191505090505b5090506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ee57600080fd5b505afa158015612602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126269190614210565b81600081518110612660577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106126d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600061271a836115f8565b90506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008587426040518663ffffffff1660e01b81526004016127829493929190614c7f565b6000604051808303818588803b15801561279b57600080fd5b505af11580156127af573d6000803e3d6000fd5b505050505060006127bf846115f8565b90508181111561299f57600082826127d79190615510565b905060006006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43634449b4fe9091846040518363ffffffff1660e01b815260040161281a929190614f80565b60206040518083038186803b15801561283257600080fd5b505af4158015612846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286a91906144f2565b905061289a6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f8565b8111156128d2576128cf6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f8565b90505b600081111561299c5761290b6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168783612e0b565b6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a876040518263ffffffff1660e01b81526004016129699190614b27565b600060405180830381600087803b15801561298357600080fd5b505af1158015612997573d6000803e3d6000fd5b505050505b50505b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a3461314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aba90614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c436355f5f5569091898989898989896040518963ffffffff1660e01b8152600401612b0e989796959493929190614fa9565b60006040518083038186803b158015612b2657600080fd5b505af4158015612b3a573d6000803e3d6000fd5b5050505050505050505050565b612b4f61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd590614dcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4590614d2d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073b9465abd8f286c6720a9464f023539321c0fc32e63202eb29069d3c21bcecceda10000006006602701546040518363ffffffff1660e01b8152600401612d58929190615301565b60206040518083038186803b158015612d7057600080fd5b505af4158015612d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da891906144f2565b905090565b6000808284612dbc919061542f565b905083811015612e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df890614d8d565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7290614e0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee290614d0d565b60405180910390fd5b612ef6838383613ae5565b612f6181604051806060016040528060268152602001615abb602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dad90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161309391906152e6565b60405180910390a3505050565b60008383111582906130e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130df9190614ccb565b60405180910390fd5b50600083856130f79190615510565b9050809150509392505050565b600061314683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130a0565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131bd90614e2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322d90614d4d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161331491906152e6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561335b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561339557600080fd5b600060066027015414156134aa573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061340f57506133e0611a7d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061346a5750600660240160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6134a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a090614dad565b60405180910390fd5b5b60008114806134e457508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156134f9576134f4838383612e0b565b613ae0565b613504838383613b5a565b600060067333853a30a6407f116e247673f05e763158e292e0635f02a859909186866040518463ffffffff1660e01b8152600401613544939291906150f5565b60206040518083038186803b15801561355c57600080fd5b505af4158015613570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359491906144a0565b9050600082905060008083156137e3576000600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc638ecc50f49091886040518363ffffffff1660e01b81526004016135e592919061506c565b60206040518083038186803b1580156135fd57600080fd5b505af4158015613611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136359190614210565b9050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc630e514c71909183613662856115f8565b8b6040518563ffffffff1660e01b81526004016136829493929190615027565b60206040518083038186803b15801561369a57600080fd5b505af41580156136ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d291906144a0565b6136db57600090505b6000806006601a01738b20c17da67c85a8e2aacf349a26cfee168f55766369d776ae909160068d8d8d896040518763ffffffff1660e01b815260040161372696959493929190615285565b604080518083038186803b15801561373d57600080fd5b505af4158015613751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137759190614557565b9150915081945060008111156137bc5781811115613791578190505b808261379d9190615510565b915080886137ab9190615510565b97506137b88a8483612e0b565b8293505b60008211156137df5781886137d19190615510565b97506137de8a3084612e0b565b5b5050505b6137ee878787612e0b565b60067333853a30a6407f116e247673f05e763158e292e0638d0a6c5c9091886138168a6115f8565b6040518463ffffffff1660e01b815260040161383493929190615217565b60006040518083038186803b15801561384c57600080fd5b505af4158015613860573d6000803e3d6000fd5b505050506006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a886040518263ffffffff1660e01b81526004016138c29190614b27565b600060405180830381600087803b1580156138dc57600080fd5b505af11580156138f0573d6000803e3d6000fd5b505050506006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a876040518263ffffffff1660e01b81526004016139529190614b27565b600060405180830381600087803b15801561396c57600080fd5b505af1158015613980573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613a49576006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a826040518263ffffffff1660e01b8152600401613a169190614b27565b600060405180830381600087803b158015613a3057600080fd5b505af1158015613a44573d6000803e3d6000fd5b505050505b6000613a54886115f8565b90506000613a61886115f8565b905060067333853a30a6407f116e247673f05e763158e292e0630b14227e90918b8b86868b8b6040518863ffffffff1660e01b8152600401613aa99796959493929190615171565b60006040518083038186803b158015613ac157600080fd5b505af4158015613ad5573d6000803e3d6000fd5b505050505050505050505b505050565b60067333853a30a6407f116e247673f05e763158e292e06312cba02390918585856040518563ffffffff1660e01b8152600401613b25949392919061512c565b60006040518083038186803b158015613b3d57600080fd5b505af4158015613b51573d6000803e3d6000fd5b50505050505050565b6000613b65306115f8565b905060006006602501548210159050613b7c611a7d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015613bea5750613bba611a7d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613f09573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015613c7c57506006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015613cd957506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613d0657613ce6612d0e565b83613cf0866115f8565b613cfa919061542f565b1115613d0557600080fd5b5b808015613d235750600660280160009054906101000a900460ff16155b8015613d7f57506006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015613d9057506000600660270154115b8015613da0575060066027015442115b15613f08576001600660280160006101000a81548160ff0219169083151502179055506000829050600660260154811115613dde5760066026015490505b600061271060066000016010015483613df791906154b6565b613e019190615485565b90506000811115613e25578082613e189190615510565b9150613e243082613f10565b5b613e75306006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613156565b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43635a11992090916006856040518463ffffffff1660e01b8152600401613eb793929190614ead565b60006040518083038186803b158015613ecf57600080fd5b505af4158015613ee3573d6000803e3d6000fd5b505050506000600660280160006101000a81548160ff02191690831515021790555050505b5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f7790614ded565b60405180910390fd5b613f8c82600083613ae5565b613ff781604051806060016040528060228152602001615a99602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061404e8160025461310490919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140b291906152e6565b60405180910390a35050565b60006140d16140cc8461536a565b615345565b905080838252602082019050828560208602820111156140f057600080fd5b60005b85811015614120578161410688826141d2565b8452602084019350602083019250506001810190506140f3565b5050509392505050565b60008135905061413981615a3c565b92915050565b60008151905061414e81615a3c565b92915050565b60008135905061416381615a53565b92915050565b600082601f83011261417a57600080fd5b815161418a8482602086016140be565b91505092915050565b6000813590506141a281615a6a565b92915050565b6000815190506141b781615a6a565b92915050565b6000813590506141cc81615a81565b92915050565b6000815190506141e181615a81565b92915050565b6000602082840312156141f957600080fd5b60006142078482850161412a565b91505092915050565b60006020828403121561422257600080fd5b60006142308482850161413f565b91505092915050565b60006020828403121561424b57600080fd5b600061425984828501614154565b91505092915050565b6000806040838503121561427557600080fd5b60006142838582860161412a565b92505060206142948582860161412a565b9150509250929050565b6000806000606084860312156142b357600080fd5b60006142c18682870161412a565b93505060206142d28682870161412a565b92505060406142e3868287016141bd565b9150509250925092565b6000806040838503121561430057600080fd5b600061430e8582860161412a565b925050602061431f85828601614193565b9150509250929050565b6000806040838503121561433c57600080fd5b600061434a8582860161412a565b925050602061435b858286016141bd565b9150509250929050565b60006020828403121561437757600080fd5b600082015167ffffffffffffffff81111561439157600080fd5b61439d84828501614169565b91505092915050565b60008060008060008060c087890312156143bf57600080fd5b600087015167ffffffffffffffff8111156143d957600080fd5b6143e589828a01614169565b965050602087015167ffffffffffffffff81111561440257600080fd5b61440e89828a01614169565b955050604061441f89828a016141d2565b945050606061443089828a016141d2565b935050608087015167ffffffffffffffff81111561444d57600080fd5b61445989828a01614169565b92505060a061446a89828a016141d2565b9150509295509295509295565b60006020828403121561448957600080fd5b600061449784828501614193565b91505092915050565b6000602082840312156144b257600080fd5b60006144c0848285016141a8565b91505092915050565b6000602082840312156144db57600080fd5b60006144e9848285016141bd565b91505092915050565b60006020828403121561450457600080fd5b6000614512848285016141d2565b91505092915050565b6000806040838503121561452e57600080fd5b600061453c858286016141bd565b925050602061454d858286016141bd565b9150509250929050565b6000806040838503121561456a57600080fd5b6000614578858286016141d2565b9250506020614589858286016141d2565b9150509250929050565b6000806000606084860312156145a857600080fd5b60006145b6868287016141bd565b93505060206145c7868287016141bd565b92505060406145d8868287016141bd565b9150509250925092565b6000806000606084860312156145f757600080fd5b6000614605868287016141d2565b9350506020614616868287016141d2565b9250506040614627868287016141d2565b9150509250925092565b600080600080600080600060e0888a03121561464c57600080fd5b600061465a8a828b016141bd565b975050602061466b8a828b016141bd565b965050604061467c8a828b016141bd565b955050606061468d8a828b016141bd565b945050608061469e8a828b016141bd565b93505060a06146af8a828b016141bd565b92505060c06146c08a828b016141bd565b91505092959891949750929550565b600080600080600080600080610100898b0312156146ec57600080fd5b60006146fa8b828c016141bd565b985050602061470b8b828c016141bd565b975050604061471c8b828c016141bd565b965050606061472d8b828c016141bd565b955050608061473e8b828c016141bd565b94505060a061474f8b828c016141bd565b93505060c06147608b828c016141bd565b92505060e06147718b828c016141bd565b9150509295985092959890939650565b600061478d83836147c0565b60208301905092915050565b60006147a58383614ad6565b60208301905092915050565b6147ba81615556565b82525050565b6147c981615544565b82525050565b6147d881615544565b82525050565b6147e781615544565b82525050565b60006147f8826153b6565b61480281856153f1565b935061480d83615396565b8060005b8381101561483e5781516148258882614781565b9750614830836153d7565b925050600181019050614811565b5085935050505092915050565b6000614856826153c1565b6148608185615402565b935061486b836153a6565b8060005b8381101561489c5781516148838882614799565b975061488e836153e4565b92505060018101905061486f565b5085935050505092915050565b6148b281615568565b82525050565b6148c181615568565b82525050565b6148d0816155ab565b82525050565b60006148e1826153cc565b6148eb818561541e565b93506148fb8185602086016155bd565b6149048161570f565b840191505092915050565b600061491c60228361541e565b915061492782615720565b604082019050919050565b600061493f60238361541e565b915061494a8261576f565b604082019050919050565b600061496260268361541e565b915061496d826157be565b604082019050919050565b600061498560228361541e565b91506149908261580d565b604082019050919050565b60006149a860188361541e565b91506149b38261585c565b602082019050919050565b60006149cb601b8361541e565b91506149d682615885565b602082019050919050565b60006149ee604a8361541e565b91506149f9826158ae565b606082019050919050565b6000614a1160208361541e565b9150614a1c82615923565b602082019050919050565b6000614a3460218361541e565b9150614a3f8261594c565b604082019050919050565b6000614a5760258361541e565b9150614a628261599b565b604082019050919050565b6000614a7a600083615413565b9150614a85826159ea565b600082019050919050565b6000614a9d60248361541e565b9150614aa8826159ed565b604082019050919050565b8082525050565b8082525050565b8082525050565b8082525050565b8082525050565b614adf81615594565b82525050565b614aee81615594565b82525050565b614afd81615594565b82525050565b614b0c8161559e565b82525050565b6000614b1d82614a6d565b9150819050919050565b6000602082019050614b3c60008301846147cf565b92915050565b6000604082019050614b5760008301856147cf565b614b6460208301846148a9565b9392505050565b600060c082019050614b8060008301896147cf565b614b8d6020830188614ae5565b614b9a60408301876148c7565b614ba760608301866148c7565b614bb460808301856147cf565b614bc160a0830184614ae5565b979650505050505050565b60006020820190508181036000830152614be6818461484b565b905092915050565b600060c0820190508181036000830152614c08818961484b565b90508181036020830152614c1c818861484b565b9050614c2b6040830187614ae5565b614c386060830186614ae5565b8181036080830152614c4a818561484b565b9050614c5960a0830184614ae5565b979650505050505050565b6000602082019050614c7960008301846148a9565b92915050565b6000608082019050614c9460008301876148c7565b8181036020830152614ca681866147ed565b9050614cb560408301856147cf565b614cc26060830184614ae5565b95945050505050565b60006020820190508181036000830152614ce581846148d6565b905092915050565b60006020820190508181036000830152614d068161490f565b9050919050565b60006020820190508181036000830152614d2681614932565b9050919050565b60006020820190508181036000830152614d4681614955565b9050919050565b60006020820190508181036000830152614d6681614978565b9050919050565b60006020820190508181036000830152614d868161499b565b9050919050565b60006020820190508181036000830152614da6816149be565b9050919050565b60006020820190508181036000830152614dc6816149e1565b9050919050565b60006020820190508181036000830152614de681614a04565b9050919050565b60006020820190508181036000830152614e0681614a27565b9050919050565b60006020820190508181036000830152614e2681614a4a565b9050919050565b60006020820190508181036000830152614e4681614a90565b9050919050565b6000606082019050614e626000830186614ab3565b614e6f60208301856147de565b614e7c60408301846148b8565b949350505050565b6000604082019050614e996000830185614ab3565b614ea66020830184614ac8565b9392505050565b6000606082019050614ec26000830186614ab3565b614ecf6020830185614ac8565b614edc6040830184614af4565b949350505050565b600061014082019050614efa600083018d614ab3565b614f07602083018c614ac8565b614f14604083018b614af4565b614f21606083018a614af4565b614f2e6080830189614af4565b614f3b60a0830188614af4565b614f4860c0830187614af4565b614f5560e0830186614af4565b614f63610100830185614af4565b614f71610120830184614af4565b9b9a5050505050505050505050565b6000604082019050614f956000830185614ab3565b614fa26020830184614af4565b9392505050565b600061010082019050614fbf600083018b614ab3565b614fcc602083018a614af4565b614fd96040830189614af4565b614fe66060830188614af4565b614ff36080830187614af4565b61500060a0830186614af4565b61500d60c0830185614af4565b61501a60e0830184614af4565b9998505050505050505050565b600060808201905061503c6000830187614aba565b61504960208301866147de565b6150566040830185614af4565b61506360608301846147de565b95945050505050565b60006040820190506150816000830185614aba565b61508e6020830184614af4565b9392505050565b60006040820190506150aa6000830185614ac1565b6150b760208301846147de565b9392505050565b60006060820190506150d36000830186614ac1565b6150e060208301856147b1565b6150ed60408301846147de565b949350505050565b600060608201905061510a6000830186614ac1565b61511760208301856147de565b61512460408301846147de565b949350505050565b60006080820190506151416000830187614ac1565b61514e60208301866147de565b61515b60408301856147de565b6151686060830184614af4565b95945050505050565b600060e082019050615186600083018a614ac1565b61519360208301896147de565b6151a060408301886147de565b6151ad6060830187614af4565b6151ba6080830186614af4565b6151c760a0830185614af4565b6151d460c0830184614af4565b98975050505050505050565b60006060820190506151f56000830186614ac1565b61520260208301856147de565b61520f60408301846148b8565b949350505050565b600060608201905061522c6000830186614ac1565b61523960208301856147de565b6152466040830184614af4565b949350505050565b60006060820190506152636000830186614ac1565b6152706020830185614af4565b61527d6040830184614af4565b949350505050565b600060c08201905061529a6000830189614acf565b6152a76020830188614ac8565b6152b460408301876147de565b6152c160608301866147de565b6152ce6080830185614af4565b6152db60a08301846147de565b979650505050505050565b60006020820190506152fb6000830184614ae5565b92915050565b60006040820190506153166000830185614af4565b6153236020830184614af4565b9392505050565b600060208201905061533f6000830184614b03565b92915050565b600061534f615360565b905061535b8282615622565b919050565b6000604051905090565b600067ffffffffffffffff821115615385576153846156e0565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061543a82615594565b915061544583615594565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561547a57615479615653565b5b828201905092915050565b600061549082615594565b915061549b83615594565b9250826154ab576154aa615682565b5b828204905092915050565b60006154c182615594565b91506154cc83615594565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561550557615504615653565b5b828202905092915050565b600061551b82615594565b915061552683615594565b92508282101561553957615538615653565b5b828203905092915050565b600061554f82615574565b9050919050565b600061556182615574565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155b682615594565b9050919050565b60005b838110156155db5780820151818401526020810190506155c0565b838111156155ea576000848401525b50505050565b6000600282049050600182168061560857607f821691505b6020821081141561561c5761561b6156b1565b5b50919050565b61562b8261570f565b810181811067ffffffffffffffff8211171561564a576156496156e0565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c6572206973206e6f7420746865206469766964656e6420747261636b60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f436f756c64206e6f742077697468647261772066756e64730000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f6e6c7920636f6e74726163742c206f776e65722c206f722070726573616c6560008201527f20636f6e74726163742063616e207472616e7366657220746f6b656e7320626560208201527f666f726520737461727400000000000000000000000000000000000000000000604082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a4581615544565b8114615a5057600080fd5b50565b615a5c81615556565b8114615a6757600080fd5b50565b615a7381615568565b8114615a7e57600080fd5b50565b615a8a81615594565b8114615a9557600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eab86e9b80a875a9566aa0b5bafe51e48f4e6fc0d2d54463441c1c32b969834864736f6c6343000804003345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365
Deployed Bytecode
0x60806040526004361061024a5760003560e01c806378e9792511610139578063a9059cbb116100b6578063c02466681161007a578063c024666814610864578063d43575331461088d578063dd62ed3e146108a9578063e4c2b2d2146108e6578063f2fde38b1461090f578063f8b45b051461093857610251565b8063a9059cbb14610795578063aacebbe3146107d2578063b123c9f3146107fb578063b1d8970814610824578063be9a65551461084d57610251565b80638e875715116100fd5780638e875715146106b057806392e67c06146106d957806395d89b4114610702578063a457c2d71461072d578063a8aa1b311461076a57610251565b806378e97925146105dd5780637cb332bb146106085780638bcd04aa146106315780638d0496131461065c5780638da5cb5b1461068557610251565b806331e79db0116101c757806351e6113b1161018b57806351e6113b1461050c57806358cf72de1461053557806370a082311461055e578063715018a61461059b57806371908a03146105b257610251565b806331e79db01461042257806332cb6b0c1461044b57806338266b221461047657806339509351146104b85780633ccfd60b146104f557610251565b80631816467f1161020e5780631816467f1461034f57806323b872dd146103785780632c1f5216146103b55780632d0f5b34146103e0578063313ce567146103f757610251565b806306fdde0314610256578063095ea7b3146102815780630b893326146102be5780631124f7dd146102fb57806318160ddd1461032457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610963565b6040516102789190614ccb565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190614329565b6109f5565b6040516102b59190614c64565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190614477565b610a13565b6040516102f29190614c64565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d91906141e7565b610ace565b005b34801561033057600080fd5b50610339610bd4565b60405161034691906152e6565b60405180910390f35b34801561035b57600080fd5b50610376600480360381019061037191906141e7565b610bde565b005b34801561038457600080fd5b5061039f600480360381019061039a919061429e565b610ceb565b6040516103ac9190614c64565b60405180910390f35b3480156103c157600080fd5b506103ca610dc4565b6040516103d79190614b27565b60405180910390f35b3480156103ec57600080fd5b506103f5610df1565b005b34801561040357600080fd5b5061040c610f04565b604051610419919061532a565b60405180910390f35b34801561042e57600080fd5b50610449600480360381019061044491906141e7565b610f0d565b005b34801561045757600080fd5b50610460611037565b60405161046d91906152e6565b60405180910390f35b34801561048257600080fd5b5061049d600480360381019061049891906141e7565b611045565b6040516104af96959493929190614bee565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190614329565b6110f5565b6040516104ec9190614c64565b60405180910390f35b34801561050157600080fd5b5061050a6111a8565b005b34801561051857600080fd5b50610533600480360381019061052e9190614593565b611307565b005b34801561054157600080fd5b5061055c600480360381019061055791906142ed565b6114f0565b005b34801561056a57600080fd5b50610585600480360381019061058091906141e7565b6115f8565b60405161059291906152e6565b60405180910390f35b3480156105a757600080fd5b506105b0611640565b005b3480156105be57600080fd5b506105c7611798565b6040516105d49190614bcc565b60405180910390f35b3480156105e957600080fd5b506105f2611834565b6040516105ff91906152e6565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906141e7565b611841565b005b34801561063d57600080fd5b50610646611947565b6040516106539190614b27565b60405180910390f35b34801561066857600080fd5b50610683600480360381019061067e919061451b565b611974565b005b34801561069157600080fd5b5061069a611a7d565b6040516106a79190614b27565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d291906146cf565b611aa7565b005b3480156106e557600080fd5b5061070060048036038101906106fb91906141e7565b611bc8565b005b34801561070e57600080fd5b50610717611cce565b6040516107249190614ccb565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f9190614329565b611d60565b6040516107619190614c64565b60405180910390f35b34801561077657600080fd5b5061077f611e2d565b60405161078c9190614b27565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b79190614329565b611e5a565b6040516107c99190614c64565b60405180910390f35b3480156107de57600080fd5b506107f960048036038101906107f491906141e7565b611e78565b005b34801561080757600080fd5b50610822600480360381019061081d91906144c9565b611f7e565b005b34801561083057600080fd5b5061084b60048036038101906108469190614239565b612087565b005b34801561085957600080fd5b50610862612196565b005b34801561087057600080fd5b5061088b600480360381019061088691906142ed565b612369565b005b6108a760048036038101906108a291906141e7565b612475565b005b3480156108b557600080fd5b506108d060048036038101906108cb9190614262565b6129a5565b6040516108dd91906152e6565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190614631565b612a2c565b005b34801561091b57600080fd5b50610936600480360381019061093191906141e7565b612b47565b005b34801561094457600080fd5b5061094d612d0e565b60405161095a91906152e6565b60405180910390f35b606060038054610972906155f0565b80601f016020809104026020016040519081016040528092919081815260200182805461099e906155f0565b80156109eb5780601f106109c0576101008083540402835291602001916109eb565b820191906000526020600020905b8154815290600101906020018083116109ce57829003601f168201915b5050505050905090565b6000610a09610a0261314e565b8484613156565b6001905092915050565b60006006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a918f3d33846040518363ffffffff1660e01b8152600401610a75929190614b42565b602060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906144a0565b9050919050565b610ad661314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e063c0ded8f29091836040518363ffffffff1660e01b8152600401610ba1929190615095565b60006040518083038186803b158015610bb957600080fd5b505af4158015610bcd573d6000803e3d6000fd5b5050505050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c1857600080fd5b600660210160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5c61314e565b73ffffffffffffffffffffffffffffffffffffffff1614610c7c57600080fd5b60067333853a30a6407f116e247673f05e763158e292e063904ddd539091836040518363ffffffff1660e01b8152600401610cb8929190615095565b60006040518083038186803b158015610cd057600080fd5b505af4158015610ce4573d6000803e3d6000fd5b5050505050565b6000610cf8848484613321565b610db984610d0461314e565b610db485604051806060016040528060288152602001615ae160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d6a61314e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b613156565b600190509392505050565b60006006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df961314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43635a11992090916006610eb4306115f8565b6040518463ffffffff1660e01b8152600401610ed293929190614ead565b60006040518083038186803b158015610eea57600080fd5b505af4158015610efe573d6000803e3d6000fd5b50505050565b60006012905090565b610f1561314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b90614dcd565b60405180910390fd5b6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0826040518263ffffffff1660e01b81526004016110029190614b27565b600060405180830381600087803b15801561101c57600080fd5b505af1158015611030573d6000803e3d6000fd5b5050505050565b69d3c21bcecceda100000081565b6060806000806060600060067333853a30a6407f116e247673f05e763158e292e0636f0d303a9091896040518363ffffffff1660e01b815260040161108b929190615095565b60006040518083038186803b1580156110a357600080fd5b505af41580156110b7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110e091906143a6565b95509550955095509550955091939550919395565b600061119e61110261314e565b84611199856001600061111361314e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dad90919063ffffffff16565b613156565b6001905092915050565b6111b061314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690614dcd565b60405180910390fd5b60006006602701541461125157600080fd5b600061125b611a7d565b73ffffffffffffffffffffffffffffffffffffffff164760405161127e90614b12565b60006040518083038185875af1925050503d80600081146112bb576040519150601f19603f3d011682016040523d82523d6000602084013e6112c0565b606091505b5050905080611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90614d6d565b60405180910390fd5b50565b61130f61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590614dcd565b60405180910390fd5b600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc63f72910339091856040518363ffffffff1660e01b81526004016113dd92919061506c565b60006040518083038186803b1580156113f557600080fd5b505af4158015611409573d6000803e3d6000fd5b50505050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc634777cb309091846040518363ffffffff1660e01b815260040161144c92919061506c565b60006040518083038186803b15801561146457600080fd5b505af4158015611478573d6000803e3d6000fd5b50505050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc6397d764f09091836040518363ffffffff1660e01b81526004016114bb92919061506c565b60006040518083038186803b1580156114d357600080fd5b505af41580156114e7573d6000803e3d6000fd5b50505050505050565b6114f861314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e06279a68f909184846040518463ffffffff1660e01b81526004016115c4939291906151e0565b60006040518083038186803b1580156115dc57600080fd5b505af41580156115f0573d6000803e3d6000fd5b505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61164861314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90614dcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43637142fc5d909160066040518363ffffffff1660e01b81526004016117da929190614e84565b60006040518083038186803b1580156117f257600080fd5b505af4158015611806573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061182f9190614365565b905090565b6000600660270154905090565b61184961314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e06329cf7e499091836040518363ffffffff1660e01b8152600401611914929190615095565b60006040518083038186803b15801561192c57600080fd5b505af4158015611940573d6000803e3d6000fd5b5050505050565b6000600660230160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61197c61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e0635222f5cf909184846040518463ffffffff1660e01b8152600401611a499392919061524e565b60006040518083038186803b158015611a6157600080fd5b505af4158015611a75573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611aaf61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c4363d6b7b8a3909160068b8b8b8b8b8b8b8b6040518b63ffffffff1660e01b8152600401611b8e9a99989796959493929190614ee4565b60006040518083038186803b158015611ba657600080fd5b505af4158015611bba573d6000803e3d6000fd5b505050505050505050505050565b611bd061314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5690614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e063f75983d99091836040518363ffffffff1660e01b8152600401611c9b929190615095565b60006040518083038186803b158015611cb357600080fd5b505af4158015611cc7573d6000803e3d6000fd5b5050505050565b606060048054611cdd906155f0565b80601f0160208091040260200160405190810160405280929190818152602001828054611d09906155f0565b8015611d565780601f10611d2b57610100808354040283529160200191611d56565b820191906000526020600020905b815481529060010190602001808311611d3957829003601f168201915b5050505050905090565b6000611e23611d6d61314e565b84611e1e85604051806060016040528060258152602001615b096025913960016000611d9761314e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b613156565b6001905092915050565b60006006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611e6e611e6761314e565b8484613321565b6001905092915050565b611e8061314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0690614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e06336185cde9091836040518363ffffffff1660e01b8152600401611f4b929190615095565b60006040518083038186803b158015611f6357600080fd5b505af4158015611f77573d6000803e3d6000fd5b5050505050565b611f8661314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c436341d3f1a59091836040518363ffffffff1660e01b8152600401612054929190614f80565b60006040518083038186803b15801561206c57600080fd5b505af4158015612080573d6000803e3d6000fd5b5050505050565b61208f61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590614dcd565b60405180910390fd5b60067333853a30a6407f116e247673f05e763158e292e063530c2d0a909183612145611a7d565b6040518463ffffffff1660e01b8152600401612163939291906150be565b60006040518083038186803b15801561217b57600080fd5b505af415801561218f573d6000803e3d6000fd5b5050505050565b61219e61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490614dcd565b60405180910390fd5b60006006602701541461223f57600080fd5b42600660270181905550612299306006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613156565b6006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306122e5306115f8565b6000806122f0611a7d565b426040518863ffffffff1660e01b815260040161231296959493929190614b6b565b6060604051808303818588803b15801561232b57600080fd5b505af115801561233f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236491906145e2565b505050565b61237161314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f790614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c4363d984224f909184846040518463ffffffff1660e01b815260040161244193929190614e4d565b60006040518083038186803b15801561245957600080fd5b505af415801561246d573d6000803e3d6000fd5b505050505050565b61247d61314e565b73ffffffffffffffffffffffffffffffffffffffff166006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461250f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250690614ced565b60405180910390fd5b6000600267ffffffffffffffff811115612552577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125805781602001602082028036833780820191505090505b5090506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ee57600080fd5b505afa158015612602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126269190614210565b81600081518110612660577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106126d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600061271a836115f8565b90506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008587426040518663ffffffff1660e01b81526004016127829493929190614c7f565b6000604051808303818588803b15801561279b57600080fd5b505af11580156127af573d6000803e3d6000fd5b505050505060006127bf846115f8565b90508181111561299f57600082826127d79190615510565b905060006006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43634449b4fe9091846040518363ffffffff1660e01b815260040161281a929190614f80565b60206040518083038186803b15801561283257600080fd5b505af4158015612846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286a91906144f2565b905061289a6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f8565b8111156128d2576128cf6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f8565b90505b600081111561299c5761290b6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168783612e0b565b6006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a876040518263ffffffff1660e01b81526004016129699190614b27565b600060405180830381600087803b15801561298357600080fd5b505af1158015612997573d6000803e3d6000fd5b505050505b50505b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a3461314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aba90614dcd565b60405180910390fd5b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c436355f5f5569091898989898989896040518963ffffffff1660e01b8152600401612b0e989796959493929190614fa9565b60006040518083038186803b158015612b2657600080fd5b505af4158015612b3a573d6000803e3d6000fd5b5050505050505050505050565b612b4f61314e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd590614dcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4590614d2d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073b9465abd8f286c6720a9464f023539321c0fc32e63202eb29069d3c21bcecceda10000006006602701546040518363ffffffff1660e01b8152600401612d58929190615301565b60206040518083038186803b158015612d7057600080fd5b505af4158015612d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da891906144f2565b905090565b6000808284612dbc919061542f565b905083811015612e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df890614d8d565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7290614e0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee290614d0d565b60405180910390fd5b612ef6838383613ae5565b612f6181604051806060016040528060268152602001615abb602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dad90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161309391906152e6565b60405180910390a3505050565b60008383111582906130e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130df9190614ccb565b60405180910390fd5b50600083856130f79190615510565b9050809150509392505050565b600061314683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130a0565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131bd90614e2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322d90614d4d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161331491906152e6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561335b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561339557600080fd5b600060066027015414156134aa573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061340f57506133e0611a7d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061346a5750600660240160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6134a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a090614dad565b60405180910390fd5b5b60008114806134e457508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156134f9576134f4838383612e0b565b613ae0565b613504838383613b5a565b600060067333853a30a6407f116e247673f05e763158e292e0635f02a859909186866040518463ffffffff1660e01b8152600401613544939291906150f5565b60206040518083038186803b15801561355c57600080fd5b505af4158015613570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359491906144a0565b9050600082905060008083156137e3576000600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc638ecc50f49091886040518363ffffffff1660e01b81526004016135e592919061506c565b60206040518083038186803b1580156135fd57600080fd5b505af4158015613611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136359190614210565b9050600660140173e923a2c3bce58ce2ee617d0d65f01669aec9e8bc630e514c71909183613662856115f8565b8b6040518563ffffffff1660e01b81526004016136829493929190615027565b60206040518083038186803b15801561369a57600080fd5b505af41580156136ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d291906144a0565b6136db57600090505b6000806006601a01738b20c17da67c85a8e2aacf349a26cfee168f55766369d776ae909160068d8d8d896040518763ffffffff1660e01b815260040161372696959493929190615285565b604080518083038186803b15801561373d57600080fd5b505af4158015613751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137759190614557565b9150915081945060008111156137bc5781811115613791578190505b808261379d9190615510565b915080886137ab9190615510565b97506137b88a8483612e0b565b8293505b60008211156137df5781886137d19190615510565b97506137de8a3084612e0b565b5b5050505b6137ee878787612e0b565b60067333853a30a6407f116e247673f05e763158e292e0638d0a6c5c9091886138168a6115f8565b6040518463ffffffff1660e01b815260040161383493929190615217565b60006040518083038186803b15801561384c57600080fd5b505af4158015613860573d6000803e3d6000fd5b505050506006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a886040518263ffffffff1660e01b81526004016138c29190614b27565b600060405180830381600087803b1580156138dc57600080fd5b505af11580156138f0573d6000803e3d6000fd5b505050506006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a876040518263ffffffff1660e01b81526004016139529190614b27565b600060405180830381600087803b15801561396c57600080fd5b505af1158015613980573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613a49576006601e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd133c8a826040518263ffffffff1660e01b8152600401613a169190614b27565b600060405180830381600087803b158015613a3057600080fd5b505af1158015613a44573d6000803e3d6000fd5b505050505b6000613a54886115f8565b90506000613a61886115f8565b905060067333853a30a6407f116e247673f05e763158e292e0630b14227e90918b8b86868b8b6040518863ffffffff1660e01b8152600401613aa99796959493929190615171565b60006040518083038186803b158015613ac157600080fd5b505af4158015613ad5573d6000803e3d6000fd5b505050505050505050505b505050565b60067333853a30a6407f116e247673f05e763158e292e06312cba02390918585856040518563ffffffff1660e01b8152600401613b25949392919061512c565b60006040518083038186803b158015613b3d57600080fd5b505af4158015613b51573d6000803e3d6000fd5b50505050505050565b6000613b65306115f8565b905060006006602501548210159050613b7c611a7d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015613bea5750613bba611a7d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613f09573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015613c7c57506006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015613cd957506006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613d0657613ce6612d0e565b83613cf0866115f8565b613cfa919061542f565b1115613d0557600080fd5b5b808015613d235750600660280160009054906101000a900460ff16155b8015613d7f57506006601d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015613d9057506000600660270154115b8015613da0575060066027015442115b15613f08576001600660280160006101000a81548160ff0219169083151502179055506000829050600660260154811115613dde5760066026015490505b600061271060066000016010015483613df791906154b6565b613e019190615485565b90506000811115613e25578082613e189190615510565b9150613e243082613f10565b5b613e75306006601c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613156565b6006600001735391cbd188a3826edc589dd6ff73a2d66c3c0c43635a11992090916006856040518463ffffffff1660e01b8152600401613eb793929190614ead565b60006040518083038186803b158015613ecf57600080fd5b505af4158015613ee3573d6000803e3d6000fd5b505050506000600660280160006101000a81548160ff02191690831515021790555050505b5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f7790614ded565b60405180910390fd5b613f8c82600083613ae5565b613ff781604051806060016040528060228152602001615a99602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a09092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061404e8160025461310490919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140b291906152e6565b60405180910390a35050565b60006140d16140cc8461536a565b615345565b905080838252602082019050828560208602820111156140f057600080fd5b60005b85811015614120578161410688826141d2565b8452602084019350602083019250506001810190506140f3565b5050509392505050565b60008135905061413981615a3c565b92915050565b60008151905061414e81615a3c565b92915050565b60008135905061416381615a53565b92915050565b600082601f83011261417a57600080fd5b815161418a8482602086016140be565b91505092915050565b6000813590506141a281615a6a565b92915050565b6000815190506141b781615a6a565b92915050565b6000813590506141cc81615a81565b92915050565b6000815190506141e181615a81565b92915050565b6000602082840312156141f957600080fd5b60006142078482850161412a565b91505092915050565b60006020828403121561422257600080fd5b60006142308482850161413f565b91505092915050565b60006020828403121561424b57600080fd5b600061425984828501614154565b91505092915050565b6000806040838503121561427557600080fd5b60006142838582860161412a565b92505060206142948582860161412a565b9150509250929050565b6000806000606084860312156142b357600080fd5b60006142c18682870161412a565b93505060206142d28682870161412a565b92505060406142e3868287016141bd565b9150509250925092565b6000806040838503121561430057600080fd5b600061430e8582860161412a565b925050602061431f85828601614193565b9150509250929050565b6000806040838503121561433c57600080fd5b600061434a8582860161412a565b925050602061435b858286016141bd565b9150509250929050565b60006020828403121561437757600080fd5b600082015167ffffffffffffffff81111561439157600080fd5b61439d84828501614169565b91505092915050565b60008060008060008060c087890312156143bf57600080fd5b600087015167ffffffffffffffff8111156143d957600080fd5b6143e589828a01614169565b965050602087015167ffffffffffffffff81111561440257600080fd5b61440e89828a01614169565b955050604061441f89828a016141d2565b945050606061443089828a016141d2565b935050608087015167ffffffffffffffff81111561444d57600080fd5b61445989828a01614169565b92505060a061446a89828a016141d2565b9150509295509295509295565b60006020828403121561448957600080fd5b600061449784828501614193565b91505092915050565b6000602082840312156144b257600080fd5b60006144c0848285016141a8565b91505092915050565b6000602082840312156144db57600080fd5b60006144e9848285016141bd565b91505092915050565b60006020828403121561450457600080fd5b6000614512848285016141d2565b91505092915050565b6000806040838503121561452e57600080fd5b600061453c858286016141bd565b925050602061454d858286016141bd565b9150509250929050565b6000806040838503121561456a57600080fd5b6000614578858286016141d2565b9250506020614589858286016141d2565b9150509250929050565b6000806000606084860312156145a857600080fd5b60006145b6868287016141bd565b93505060206145c7868287016141bd565b92505060406145d8868287016141bd565b9150509250925092565b6000806000606084860312156145f757600080fd5b6000614605868287016141d2565b9350506020614616868287016141d2565b9250506040614627868287016141d2565b9150509250925092565b600080600080600080600060e0888a03121561464c57600080fd5b600061465a8a828b016141bd565b975050602061466b8a828b016141bd565b965050604061467c8a828b016141bd565b955050606061468d8a828b016141bd565b945050608061469e8a828b016141bd565b93505060a06146af8a828b016141bd565b92505060c06146c08a828b016141bd565b91505092959891949750929550565b600080600080600080600080610100898b0312156146ec57600080fd5b60006146fa8b828c016141bd565b985050602061470b8b828c016141bd565b975050604061471c8b828c016141bd565b965050606061472d8b828c016141bd565b955050608061473e8b828c016141bd565b94505060a061474f8b828c016141bd565b93505060c06147608b828c016141bd565b92505060e06147718b828c016141bd565b9150509295985092959890939650565b600061478d83836147c0565b60208301905092915050565b60006147a58383614ad6565b60208301905092915050565b6147ba81615556565b82525050565b6147c981615544565b82525050565b6147d881615544565b82525050565b6147e781615544565b82525050565b60006147f8826153b6565b61480281856153f1565b935061480d83615396565b8060005b8381101561483e5781516148258882614781565b9750614830836153d7565b925050600181019050614811565b5085935050505092915050565b6000614856826153c1565b6148608185615402565b935061486b836153a6565b8060005b8381101561489c5781516148838882614799565b975061488e836153e4565b92505060018101905061486f565b5085935050505092915050565b6148b281615568565b82525050565b6148c181615568565b82525050565b6148d0816155ab565b82525050565b60006148e1826153cc565b6148eb818561541e565b93506148fb8185602086016155bd565b6149048161570f565b840191505092915050565b600061491c60228361541e565b915061492782615720565b604082019050919050565b600061493f60238361541e565b915061494a8261576f565b604082019050919050565b600061496260268361541e565b915061496d826157be565b604082019050919050565b600061498560228361541e565b91506149908261580d565b604082019050919050565b60006149a860188361541e565b91506149b38261585c565b602082019050919050565b60006149cb601b8361541e565b91506149d682615885565b602082019050919050565b60006149ee604a8361541e565b91506149f9826158ae565b606082019050919050565b6000614a1160208361541e565b9150614a1c82615923565b602082019050919050565b6000614a3460218361541e565b9150614a3f8261594c565b604082019050919050565b6000614a5760258361541e565b9150614a628261599b565b604082019050919050565b6000614a7a600083615413565b9150614a85826159ea565b600082019050919050565b6000614a9d60248361541e565b9150614aa8826159ed565b604082019050919050565b8082525050565b8082525050565b8082525050565b8082525050565b8082525050565b614adf81615594565b82525050565b614aee81615594565b82525050565b614afd81615594565b82525050565b614b0c8161559e565b82525050565b6000614b1d82614a6d565b9150819050919050565b6000602082019050614b3c60008301846147cf565b92915050565b6000604082019050614b5760008301856147cf565b614b6460208301846148a9565b9392505050565b600060c082019050614b8060008301896147cf565b614b8d6020830188614ae5565b614b9a60408301876148c7565b614ba760608301866148c7565b614bb460808301856147cf565b614bc160a0830184614ae5565b979650505050505050565b60006020820190508181036000830152614be6818461484b565b905092915050565b600060c0820190508181036000830152614c08818961484b565b90508181036020830152614c1c818861484b565b9050614c2b6040830187614ae5565b614c386060830186614ae5565b8181036080830152614c4a818561484b565b9050614c5960a0830184614ae5565b979650505050505050565b6000602082019050614c7960008301846148a9565b92915050565b6000608082019050614c9460008301876148c7565b8181036020830152614ca681866147ed565b9050614cb560408301856147cf565b614cc26060830184614ae5565b95945050505050565b60006020820190508181036000830152614ce581846148d6565b905092915050565b60006020820190508181036000830152614d068161490f565b9050919050565b60006020820190508181036000830152614d2681614932565b9050919050565b60006020820190508181036000830152614d4681614955565b9050919050565b60006020820190508181036000830152614d6681614978565b9050919050565b60006020820190508181036000830152614d868161499b565b9050919050565b60006020820190508181036000830152614da6816149be565b9050919050565b60006020820190508181036000830152614dc6816149e1565b9050919050565b60006020820190508181036000830152614de681614a04565b9050919050565b60006020820190508181036000830152614e0681614a27565b9050919050565b60006020820190508181036000830152614e2681614a4a565b9050919050565b60006020820190508181036000830152614e4681614a90565b9050919050565b6000606082019050614e626000830186614ab3565b614e6f60208301856147de565b614e7c60408301846148b8565b949350505050565b6000604082019050614e996000830185614ab3565b614ea66020830184614ac8565b9392505050565b6000606082019050614ec26000830186614ab3565b614ecf6020830185614ac8565b614edc6040830184614af4565b949350505050565b600061014082019050614efa600083018d614ab3565b614f07602083018c614ac8565b614f14604083018b614af4565b614f21606083018a614af4565b614f2e6080830189614af4565b614f3b60a0830188614af4565b614f4860c0830187614af4565b614f5560e0830186614af4565b614f63610100830185614af4565b614f71610120830184614af4565b9b9a5050505050505050505050565b6000604082019050614f956000830185614ab3565b614fa26020830184614af4565b9392505050565b600061010082019050614fbf600083018b614ab3565b614fcc602083018a614af4565b614fd96040830189614af4565b614fe66060830188614af4565b614ff36080830187614af4565b61500060a0830186614af4565b61500d60c0830185614af4565b61501a60e0830184614af4565b9998505050505050505050565b600060808201905061503c6000830187614aba565b61504960208301866147de565b6150566040830185614af4565b61506360608301846147de565b95945050505050565b60006040820190506150816000830185614aba565b61508e6020830184614af4565b9392505050565b60006040820190506150aa6000830185614ac1565b6150b760208301846147de565b9392505050565b60006060820190506150d36000830186614ac1565b6150e060208301856147b1565b6150ed60408301846147de565b949350505050565b600060608201905061510a6000830186614ac1565b61511760208301856147de565b61512460408301846147de565b949350505050565b60006080820190506151416000830187614ac1565b61514e60208301866147de565b61515b60408301856147de565b6151686060830184614af4565b95945050505050565b600060e082019050615186600083018a614ac1565b61519360208301896147de565b6151a060408301886147de565b6151ad6060830187614af4565b6151ba6080830186614af4565b6151c760a0830185614af4565b6151d460c0830184614af4565b98975050505050505050565b60006060820190506151f56000830186614ac1565b61520260208301856147de565b61520f60408301846148b8565b949350505050565b600060608201905061522c6000830186614ac1565b61523960208301856147de565b6152466040830184614af4565b949350505050565b60006060820190506152636000830186614ac1565b6152706020830185614af4565b61527d6040830184614af4565b949350505050565b600060c08201905061529a6000830189614acf565b6152a76020830188614ac8565b6152b460408301876147de565b6152c160608301866147de565b6152ce6080830185614af4565b6152db60a08301846147de565b979650505050505050565b60006020820190506152fb6000830184614ae5565b92915050565b60006040820190506153166000830185614af4565b6153236020830184614af4565b9392505050565b600060208201905061533f6000830184614b03565b92915050565b600061534f615360565b905061535b8282615622565b919050565b6000604051905090565b600067ffffffffffffffff821115615385576153846156e0565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061543a82615594565b915061544583615594565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561547a57615479615653565b5b828201905092915050565b600061549082615594565b915061549b83615594565b9250826154ab576154aa615682565b5b828204905092915050565b60006154c182615594565b91506154cc83615594565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561550557615504615653565b5b828202905092915050565b600061551b82615594565b915061552683615594565b92508282101561553957615538615653565b5b828203905092915050565b600061554f82615574565b9050919050565b600061556182615574565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155b682615594565b9050919050565b60005b838110156155db5780820151818401526020810190506155c0565b838111156155ea576000848401525b50505050565b6000600282049050600182168061560857607f821691505b6020821081141561561c5761561b6156b1565b5b50919050565b61562b8261570f565b810181811067ffffffffffffffff8211171561564a576156496156e0565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c6572206973206e6f7420746865206469766964656e6420747261636b60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f436f756c64206e6f742077697468647261772066756e64730000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f6e6c7920636f6e74726163742c206f776e65722c206f722070726573616c6560008201527f20636f6e74726163742063616e207472616e7366657220746f6b656e7320626560208201527f666f726520737461727400000000000000000000000000000000000000000000604082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a4581615544565b8114615a5057600080fd5b50565b615a5c81615556565b8114615a6757600080fd5b50565b615a7381615568565b8114615a7e57600080fd5b50565b615a8a81615594565b8114615a9557600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eab86e9b80a875a9566aa0b5bafe51e48f4e6fc0d2d54463441c1c32b969834864736f6c63430008040033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.