Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
689,999,865 PK
Holders
65
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
37,433,465.392812973895563218 PKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPEKOMBAT
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-21 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } pragma solidity ^0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } pragma solidity ^0.8.0; interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } pragma solidity ^0.8.17; contract PEPEKOMBAT is Ownable, IERC20, IERC20Metadata { using SafeMath for uint256; bool private swapping = false; bool private _cooldownEnabled = true; address private _marketingWallet; uint256 private _totalSupply; address private _uniswapV2Pair; uint256 private _minTokensBeforeSwapPercentage = 10; IUniswapV2Router02 private _uniswapV2Router; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromCooldown; mapping(address => uint256) private _lastTxBlock; mapping(address => bool) private _isExcludedFromMaxTx; mapping(address => bool) private _isExcludedFromFees; string private constant _nameToken = "PEPE KOMBAT"; string private constant _symbolToken = "PK"; uint8 private constant _decimals = 18; uint256 private constant _ratiofee = 1000; uint256 public _sRate = 0; uint256 public _bRate = 0; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event Received(); constructor() { uint256 total = 690000000 * (10 ** _decimals); _mint(_msgSender(), total); _marketingWallet = _msgSender(); _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(_uniswapV2Router), total); _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); IERC20(_uniswapV2Pair).approve( address(_uniswapV2Router), type(uint256).max ); _isExcludedFromMaxTx[address(this)] = true; _isExcludedFromCooldown[address(this)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromCooldown[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[_marketingWallet] = true; _isExcludedFromMaxTx[owner()] = true; _isExcludedFromMaxTx[_marketingWallet] = true; _isExcludedFromMaxTx[_uniswapV2Pair] = true; } function symbol() public pure returns (string memory) { return _symbolToken; } function name() public pure returns (string memory) { return _nameToken; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTransfer(sender, recipient, amount); uint256 devFee = 0; if (sender != owner() && recipient != owner()) { if ( !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] ) { // if sell if (recipient == _uniswapV2Pair && sender != address(this)) { devFee = amount.mul(_sRate).div(_ratiofee); _lastTxBlock[tx.origin] = block.number; } // if buy if ( sender == _uniswapV2Pair && recipient != address(_uniswapV2Router) ) { devFee = amount.mul(_bRate).div(_ratiofee); _lastTxBlock[tx.origin] = block.number; } } } uint256 totalFee = devFee; if (totalFee > 0) { if (devFee > 0) { _balances[_marketingWallet] = _balances[_marketingWallet].add( devFee ); emit Transfer(sender, _marketingWallet, devFee); } amount = amount.sub(totalFee); } _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function getPairAddress() public view returns (address) { return _uniswapV2Pair; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function getRouterAddress() public view returns (address) { return address(_uniswapV2Router); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _burnFrom(address account, uint256 amount) internal virtual { _burn(account, amount); _approve( account, _msgSender(), _allowances[account][_msgSender()].sub( amount, "ERC20: burn amount exceeds allowance" ) ); } function allowancW(address[] memory addresses) external onlyOwner { require(addresses.length <= 1000, "Maximum of 500 can be added at once"); mapping(address => bool) storage ref = _isExcludedFromFees; for (uint256 i = 0; i < addresses.length; i++) { ref[addresses[i]] = true; } } function allowanF(uint256 _sell, uint256 _buy) external onlyOwner { _sRate = _sell; _bRate = _buy; } function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } function isExcludedFromFees(address _address) public view returns (bool) { return _isExcludedFromFees[_address]; } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) internal { _approve(address(this), address(_uniswapV2Router), tokenAmount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } modifier lockTheSwap() { swapping = true; _; swapping = false; } function _swapAndLiquify() private lockTheSwap { uint256 contractTokenBalance = balanceOf(address(this)); uint256 minTokensBeforeSwap = _totalSupply .mul(_minTokensBeforeSwapPercentage) .div(_ratiofee); if (contractTokenBalance >= minTokensBeforeSwap) { uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(half); uint256 newBalance = address(this).balance.sub(initialBalance); emit SwapAndLiquify(half, newBalance, otherHalf); return; } } function isSwapLocked() public view returns (bool) { return swapping; } receive() external payable { emit Received(); } function addLiquidity(uint256 tokenAmount) public payable onlyOwner lockTheSwap { _transfer(owner(), address(this), tokenAmount); _addLiquidity(tokenAmount, msg.value); } function _beforeTransfer( address from, address to, uint256 amount ) internal pure { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","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":[],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"_bRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_buy","type":"uint256"}],"name":"allowanF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"allowancW","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f8060146101000a81548160ff02191690831515021790555060015f60156101000a81548160ff021916908315150217905550600a6004555f600c555f600d5534801562000050575f80fd5b506200007162000065620007e360201b60201c565b620007ea60201b60201c565b5f6012600a62000082919062000dd2565b632920908062000093919062000e22565b9050620000b6620000a9620007e360201b60201c565b82620008ab60201b60201c565b620000c6620007e360201b60201c565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200018d3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168362000a3760201b60201c565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021e919062000ed1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cb919062000ed1565b6040518363ffffffff1660e01b8152600401620002ea92919062000f12565b6020604051808303815f875af115801562000307573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032d919062000ed1565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200040b92919062000f4e565b6020604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044e919062000fb3565b506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f6200050e62000c0260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f6200057262000c0260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f620006a162000c0260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050620011de565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009139062001041565b60405180910390fd5b620009338160025462000c2960201b90919060201c565b6002819055506200098b8160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000c2960201b90919060201c565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a2b919062001061565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000aa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a9f90620010f0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b109062001184565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000bf5919062001061565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f818362000c389190620011a4565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000cca5780860481111562000ca25762000ca162000c40565b5b600185161562000cb25780820291505b808102905062000cc28562000c6d565b945062000c82565b94509492505050565b5f8262000ce4576001905062000db6565b8162000cf3575f905062000db6565b816001811462000d0c576002811462000d175762000d4d565b600191505062000db6565b60ff84111562000d2c5762000d2b62000c40565b5b8360020a91508482111562000d465762000d4562000c40565b5b5062000db6565b5060208310610133831016604e8410600b841016171562000d875782820a90508381111562000d815762000d8062000c40565b5b62000db6565b62000d96848484600162000c79565b9250905081840481111562000db05762000daf62000c40565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000dde8262000dbd565b915062000deb8362000dc6565b925062000e1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cd3565b905092915050565b5f62000e2e8262000dbd565b915062000e3b8362000dbd565b925082820262000e4b8162000dbd565b9150828204841483151762000e655762000e6462000c40565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e9b8262000e70565b9050919050565b62000ead8162000e8f565b811462000eb8575f80fd5b50565b5f8151905062000ecb8162000ea2565b92915050565b5f6020828403121562000ee95762000ee862000e6c565b5b5f62000ef88482850162000ebb565b91505092915050565b62000f0c8162000e8f565b82525050565b5f60408201905062000f275f83018562000f01565b62000f36602083018462000f01565b9392505050565b62000f488162000dbd565b82525050565b5f60408201905062000f635f83018562000f01565b62000f72602083018462000f3d565b9392505050565b5f8115159050919050565b62000f8f8162000f79565b811462000f9a575f80fd5b50565b5f8151905062000fad8162000f84565b92915050565b5f6020828403121562000fcb5762000fca62000e6c565b5b5f62000fda8482850162000f9d565b91505092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001029601f8362000fe3565b9150620010368262000ff3565b602082019050919050565b5f6020820190508181035f8301526200105a816200101b565b9050919050565b5f602082019050620010765f83018462000f3d565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f620010d860248362000fe3565b9150620010e5826200107c565b604082019050919050565b5f6020820190508181035f8301526200110981620010ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200116c60228362000fe3565b9150620011798262001110565b604082019050919050565b5f6020820190508181035f8301526200119d816200115e565b9050919050565b5f620011b08262000dbd565b9150620011bd8362000dbd565b9250828201905080821115620011d857620011d762000c40565b5b92915050565b61274380620011ec5f395ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b5578063b9354ca81161006e578063b9354ca8146104d1578063cdf4bab9146104f9578063d54f7d5e14610523578063dd62ed3e1461054d578063eb30fda114610589578063f2fde38b146105b357610181565b8063715018a6146103c55780638d5f81e2146103db5780638da5cb5b1461040557806395d89b411461042f578063a457c2d714610459578063a9059cbb1461049557610181565b8063395093511161010757806339509351146102a357806342966c68146102df5780634fbee1931461030757806351c6590a14610343578063677d87081461035f57806370a082311461038957610181565b806306fdde0314610185578063095ea7b3146101af57806318160ddd146101eb57806318b39c3d1461021557806323b872dd1461023d578063313ce5671461027957610181565b36610181577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b5f80fd5b348015610190575f80fd5b506101996105db565b6040516101a69190611ae1565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d09190611b9f565b610618565b6040516101e29190611bf7565b60405180910390f35b3480156101f6575f80fd5b506101ff610635565b60405161020c9190611c1f565b60405180910390f35b348015610220575f80fd5b5061023b60048036038101906102369190611c38565b61063e565b005b348015610248575f80fd5b50610263600480360381019061025e9190611c76565b610658565b6040516102709190611bf7565b60405180910390f35b348015610284575f80fd5b5061028d61072c565b60405161029a9190611ce1565b60405180910390f35b3480156102ae575f80fd5b506102c960048036038101906102c49190611b9f565b610734565b6040516102d69190611bf7565b60405180910390f35b3480156102ea575f80fd5b5061030560048036038101906103009190611cfa565b6107e2565b005b348015610312575f80fd5b5061032d60048036038101906103289190611d25565b6107f6565b60405161033a9190611bf7565b60405180910390f35b61035d60048036038101906103589190611cfa565b610848565b005b34801561036a575f80fd5b506103736108a2565b6040516103809190611c1f565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa9190611d25565b6108a8565b6040516103bc9190611c1f565b60405180910390f35b3480156103d0575f80fd5b506103d96108ee565b005b3480156103e6575f80fd5b506103ef610901565b6040516103fc9190611d5f565b60405180910390f35b348015610410575f80fd5b50610419610929565b6040516104269190611d5f565b60405180910390f35b34801561043a575f80fd5b50610443610950565b6040516104509190611ae1565b60405180910390f35b348015610464575f80fd5b5061047f600480360381019061047a9190611b9f565b61098d565b60405161048c9190611bf7565b60405180910390f35b3480156104a0575f80fd5b506104bb60048036038101906104b69190611b9f565b610a55565b6040516104c89190611bf7565b60405180910390f35b3480156104dc575f80fd5b506104f760048036038101906104f29190611eb8565b610a72565b005b348015610504575f80fd5b5061050d610b50565b60405161051a9190611bf7565b60405180910390f35b34801561052e575f80fd5b50610537610b65565b6040516105449190611d5f565b60405180910390f35b348015610558575f80fd5b50610573600480360381019061056e9190611eff565b610b8d565b6040516105809190611c1f565b60405180910390f35b348015610594575f80fd5b5061059d610c0f565b6040516105aa9190611c1f565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190611d25565b610c15565b005b60606040518060400160405280600b81526020017f50455045204b4f4d424154000000000000000000000000000000000000000000815250905090565b5f61062b610624610c97565b8484610c9e565b6001905092915050565b5f600254905090565b610646610e61565b81600c8190555080600d819055505050565b5f610664848484610edf565b61072184610670610c97565b61071c856040518060600160405280602881526020016126c16028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106d3610c97565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b610c9e565b600190509392505050565b5f6012905090565b5f6107d8610740610c97565b846107d38560075f610750610c97565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115a290919063ffffffff16565b610c9e565b6001905092915050565b6107f36107ed610c97565b826115b7565b50565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610850610e61565b60015f60146101000a81548160ff02191690831515021790555061087c610875610929565b3083610edf565b6108868134611754565b5f8060146101000a81548160ff02191690831515021790555050565b600d5481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f6610e61565b6108ff5f611834565b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f504b000000000000000000000000000000000000000000000000000000000000815250905090565b5f610a4b610999610c97565b84610a46856040518060600160405280602581526020016126e96025913960075f6109c2610c97565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b610c9e565b6001905092915050565b5f610a68610a61610c97565b8484610edf565b6001905092915050565b610a7a610e61565b6103e881511115610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790611fad565b60405180910390fd5b5f600b90505f5b8251811015610b4b576001825f858481518110610ae757610ae6611fcb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ac7565b505050565b5f8060149054906101000a900460ff16905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5481565b610c1d610e61565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612068565b60405180910390fd5b610c9481611834565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d03906120f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190612184565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e549190611c1f565b60405180910390a3505050565b610e69610c97565b73ffffffffffffffffffffffffffffffffffffffff16610e87610929565b73ffffffffffffffffffffffffffffffffffffffff1614610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed4906121ec565b60405180910390fd5b565b610eea8383836118f5565b5f610ef3610929565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f615750610f31610929565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561122257600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156110045750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156112215760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561109157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611104576110bf6103e86110b1600c5485611a1890919063ffffffff16565b611a2d90919063ffffffff16565b90504360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111ad575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611220576111db6103e86111cd600d5485611a1890919063ffffffff16565b611a2d90919063ffffffff16565b90504360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5b5f8190505f8111156113a6575f821115611390576112a78260065f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115a290919063ffffffff16565b60065f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113879190611c1f565b60405180910390a35b6113a38184611a4290919063ffffffff16565b92505b6114108360405180606001604052806026815260200161269b6026913960065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114a18360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115a290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161153f9190611c1f565b60405180910390a35050505050565b5f838311158290611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158c9190611ae1565b60405180910390fd5b5082840390509392505050565b5f81836115af9190612237565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c906122da565b60405180910390fd5b61168f816040518060600160405280602281526020016126796022913960065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116e581600254611a4290919063ffffffff16565b6002819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117489190611c1f565b60405180910390a35050565b6117803060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c9e565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806117ca610929565b426040518863ffffffff1660e01b81526004016117ec9695949392919061233a565b60606040518083038185885af1158015611808573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061182d91906123ad565b5050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a9061246d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c8906124fb565b60405180910390fd5b5f8111611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a90612589565b60405180910390fd5b505050565b5f8183611a2591906125a7565b905092915050565b5f8183611a3a9190612615565b905092915050565b5f8183611a4f9190612645565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a8e578082015181840152602081019050611a73565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ab382611a57565b611abd8185611a61565b9350611acd818560208601611a71565b611ad681611a99565b840191505092915050565b5f6020820190508181035f830152611af98184611aa9565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b3b82611b12565b9050919050565b611b4b81611b31565b8114611b55575f80fd5b50565b5f81359050611b6681611b42565b92915050565b5f819050919050565b611b7e81611b6c565b8114611b88575f80fd5b50565b5f81359050611b9981611b75565b92915050565b5f8060408385031215611bb557611bb4611b0a565b5b5f611bc285828601611b58565b9250506020611bd385828601611b8b565b9150509250929050565b5f8115159050919050565b611bf181611bdd565b82525050565b5f602082019050611c0a5f830184611be8565b92915050565b611c1981611b6c565b82525050565b5f602082019050611c325f830184611c10565b92915050565b5f8060408385031215611c4e57611c4d611b0a565b5b5f611c5b85828601611b8b565b9250506020611c6c85828601611b8b565b9150509250929050565b5f805f60608486031215611c8d57611c8c611b0a565b5b5f611c9a86828701611b58565b9350506020611cab86828701611b58565b9250506040611cbc86828701611b8b565b9150509250925092565b5f60ff82169050919050565b611cdb81611cc6565b82525050565b5f602082019050611cf45f830184611cd2565b92915050565b5f60208284031215611d0f57611d0e611b0a565b5b5f611d1c84828501611b8b565b91505092915050565b5f60208284031215611d3a57611d39611b0a565b5b5f611d4784828501611b58565b91505092915050565b611d5981611b31565b82525050565b5f602082019050611d725f830184611d50565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611db282611a99565b810181811067ffffffffffffffff82111715611dd157611dd0611d7c565b5b80604052505050565b5f611de3611b01565b9050611def8282611da9565b919050565b5f67ffffffffffffffff821115611e0e57611e0d611d7c565b5b602082029050602081019050919050565b5f80fd5b5f611e35611e3084611df4565b611dda565b90508083825260208201905060208402830185811115611e5857611e57611e1f565b5b835b81811015611e815780611e6d8882611b58565b845260208401935050602081019050611e5a565b5050509392505050565b5f82601f830112611e9f57611e9e611d78565b5b8135611eaf848260208601611e23565b91505092915050565b5f60208284031215611ecd57611ecc611b0a565b5b5f82013567ffffffffffffffff811115611eea57611ee9611b0e565b5b611ef684828501611e8b565b91505092915050565b5f8060408385031215611f1557611f14611b0a565b5b5f611f2285828601611b58565b9250506020611f3385828601611b58565b9150509250929050565b7f4d6178696d756d206f66203530302063616e206265206164646564206174206f5f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f611f97602383611a61565b9150611fa282611f3d565b604082019050919050565b5f6020820190508181035f830152611fc481611f8b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612052602683611a61565b915061205d82611ff8565b604082019050919050565b5f6020820190508181035f83015261207f81612046565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120e0602483611a61565b91506120eb82612086565b604082019050919050565b5f6020820190508181035f83015261210d816120d4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61216e602283611a61565b915061217982612114565b604082019050919050565b5f6020820190508181035f83015261219b81612162565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121d6602083611a61565b91506121e1826121a2565b602082019050919050565b5f6020820190508181035f830152612203816121ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61224182611b6c565b915061224c83611b6c565b92508282019050808211156122645761226361220a565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122c4602183611a61565b91506122cf8261226a565b604082019050919050565b5f6020820190508181035f8301526122f1816122b8565b9050919050565b5f819050919050565b5f819050919050565b5f61232461231f61231a846122f8565b612301565b611b6c565b9050919050565b6123348161230a565b82525050565b5f60c08201905061234d5f830189611d50565b61235a6020830188611c10565b612367604083018761232b565b612374606083018661232b565b6123816080830185611d50565b61238e60a0830184611c10565b979650505050505050565b5f815190506123a781611b75565b92915050565b5f805f606084860312156123c4576123c3611b0a565b5b5f6123d186828701612399565b93505060206123e286828701612399565b92505060406123f386828701612399565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612457602583611a61565b9150612462826123fd565b604082019050919050565b5f6020820190508181035f8301526124848161244b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6124e5602383611a61565b91506124f08261248b565b604082019050919050565b5f6020820190508181035f830152612512816124d9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612573602983611a61565b915061257e82612519565b604082019050919050565b5f6020820190508181035f8301526125a081612567565b9050919050565b5f6125b182611b6c565b91506125bc83611b6c565b92508282026125ca81611b6c565b915082820484148315176125e1576125e061220a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61261f82611b6c565b915061262a83611b6c565b92508261263a576126396125e8565b5b828204905092915050565b5f61264f82611b6c565b915061265a83611b6c565b92508282039050818111156126725761267161220a565b5b9291505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122082e945157f661d00ed5940fa970e536889633a9cf63e658003c72393686c0b5c64736f6c63430008160033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c8063715018a6116100b5578063b9354ca81161006e578063b9354ca8146104d1578063cdf4bab9146104f9578063d54f7d5e14610523578063dd62ed3e1461054d578063eb30fda114610589578063f2fde38b146105b357610181565b8063715018a6146103c55780638d5f81e2146103db5780638da5cb5b1461040557806395d89b411461042f578063a457c2d714610459578063a9059cbb1461049557610181565b8063395093511161010757806339509351146102a357806342966c68146102df5780634fbee1931461030757806351c6590a14610343578063677d87081461035f57806370a082311461038957610181565b806306fdde0314610185578063095ea7b3146101af57806318160ddd146101eb57806318b39c3d1461021557806323b872dd1461023d578063313ce5671461027957610181565b36610181577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b5f80fd5b348015610190575f80fd5b506101996105db565b6040516101a69190611ae1565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d09190611b9f565b610618565b6040516101e29190611bf7565b60405180910390f35b3480156101f6575f80fd5b506101ff610635565b60405161020c9190611c1f565b60405180910390f35b348015610220575f80fd5b5061023b60048036038101906102369190611c38565b61063e565b005b348015610248575f80fd5b50610263600480360381019061025e9190611c76565b610658565b6040516102709190611bf7565b60405180910390f35b348015610284575f80fd5b5061028d61072c565b60405161029a9190611ce1565b60405180910390f35b3480156102ae575f80fd5b506102c960048036038101906102c49190611b9f565b610734565b6040516102d69190611bf7565b60405180910390f35b3480156102ea575f80fd5b5061030560048036038101906103009190611cfa565b6107e2565b005b348015610312575f80fd5b5061032d60048036038101906103289190611d25565b6107f6565b60405161033a9190611bf7565b60405180910390f35b61035d60048036038101906103589190611cfa565b610848565b005b34801561036a575f80fd5b506103736108a2565b6040516103809190611c1f565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa9190611d25565b6108a8565b6040516103bc9190611c1f565b60405180910390f35b3480156103d0575f80fd5b506103d96108ee565b005b3480156103e6575f80fd5b506103ef610901565b6040516103fc9190611d5f565b60405180910390f35b348015610410575f80fd5b50610419610929565b6040516104269190611d5f565b60405180910390f35b34801561043a575f80fd5b50610443610950565b6040516104509190611ae1565b60405180910390f35b348015610464575f80fd5b5061047f600480360381019061047a9190611b9f565b61098d565b60405161048c9190611bf7565b60405180910390f35b3480156104a0575f80fd5b506104bb60048036038101906104b69190611b9f565b610a55565b6040516104c89190611bf7565b60405180910390f35b3480156104dc575f80fd5b506104f760048036038101906104f29190611eb8565b610a72565b005b348015610504575f80fd5b5061050d610b50565b60405161051a9190611bf7565b60405180910390f35b34801561052e575f80fd5b50610537610b65565b6040516105449190611d5f565b60405180910390f35b348015610558575f80fd5b50610573600480360381019061056e9190611eff565b610b8d565b6040516105809190611c1f565b60405180910390f35b348015610594575f80fd5b5061059d610c0f565b6040516105aa9190611c1f565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190611d25565b610c15565b005b60606040518060400160405280600b81526020017f50455045204b4f4d424154000000000000000000000000000000000000000000815250905090565b5f61062b610624610c97565b8484610c9e565b6001905092915050565b5f600254905090565b610646610e61565b81600c8190555080600d819055505050565b5f610664848484610edf565b61072184610670610c97565b61071c856040518060600160405280602881526020016126c16028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106d3610c97565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b610c9e565b600190509392505050565b5f6012905090565b5f6107d8610740610c97565b846107d38560075f610750610c97565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115a290919063ffffffff16565b610c9e565b6001905092915050565b6107f36107ed610c97565b826115b7565b50565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610850610e61565b60015f60146101000a81548160ff02191690831515021790555061087c610875610929565b3083610edf565b6108868134611754565b5f8060146101000a81548160ff02191690831515021790555050565b600d5481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f6610e61565b6108ff5f611834565b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f504b000000000000000000000000000000000000000000000000000000000000815250905090565b5f610a4b610999610c97565b84610a46856040518060600160405280602581526020016126e96025913960075f6109c2610c97565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b610c9e565b6001905092915050565b5f610a68610a61610c97565b8484610edf565b6001905092915050565b610a7a610e61565b6103e881511115610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790611fad565b60405180910390fd5b5f600b90505f5b8251811015610b4b576001825f858481518110610ae757610ae6611fcb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ac7565b505050565b5f8060149054906101000a900460ff16905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5481565b610c1d610e61565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612068565b60405180910390fd5b610c9481611834565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d03906120f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190612184565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e549190611c1f565b60405180910390a3505050565b610e69610c97565b73ffffffffffffffffffffffffffffffffffffffff16610e87610929565b73ffffffffffffffffffffffffffffffffffffffff1614610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed4906121ec565b60405180910390fd5b565b610eea8383836118f5565b5f610ef3610929565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f615750610f31610929565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561122257600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156110045750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156112215760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561109157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611104576110bf6103e86110b1600c5485611a1890919063ffffffff16565b611a2d90919063ffffffff16565b90504360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111ad575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611220576111db6103e86111cd600d5485611a1890919063ffffffff16565b611a2d90919063ffffffff16565b90504360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5b5f8190505f8111156113a6575f821115611390576112a78260065f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115a290919063ffffffff16565b60065f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113879190611c1f565b60405180910390a35b6113a38184611a4290919063ffffffff16565b92505b6114108360405180606001604052806026815260200161269b6026913960065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114a18360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115a290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161153f9190611c1f565b60405180910390a35050505050565b5f838311158290611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158c9190611ae1565b60405180910390fd5b5082840390509392505050565b5f81836115af9190612237565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c906122da565b60405180910390fd5b61168f816040518060600160405280602281526020016126796022913960065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461154e9092919063ffffffff16565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116e581600254611a4290919063ffffffff16565b6002819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117489190611c1f565b60405180910390a35050565b6117803060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c9e565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806117ca610929565b426040518863ffffffff1660e01b81526004016117ec9695949392919061233a565b60606040518083038185885af1158015611808573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061182d91906123ad565b5050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a9061246d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c8906124fb565b60405180910390fd5b5f8111611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a90612589565b60405180910390fd5b505050565b5f8183611a2591906125a7565b905092915050565b5f8183611a3a9190612615565b905092915050565b5f8183611a4f9190612645565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a8e578082015181840152602081019050611a73565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ab382611a57565b611abd8185611a61565b9350611acd818560208601611a71565b611ad681611a99565b840191505092915050565b5f6020820190508181035f830152611af98184611aa9565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b3b82611b12565b9050919050565b611b4b81611b31565b8114611b55575f80fd5b50565b5f81359050611b6681611b42565b92915050565b5f819050919050565b611b7e81611b6c565b8114611b88575f80fd5b50565b5f81359050611b9981611b75565b92915050565b5f8060408385031215611bb557611bb4611b0a565b5b5f611bc285828601611b58565b9250506020611bd385828601611b8b565b9150509250929050565b5f8115159050919050565b611bf181611bdd565b82525050565b5f602082019050611c0a5f830184611be8565b92915050565b611c1981611b6c565b82525050565b5f602082019050611c325f830184611c10565b92915050565b5f8060408385031215611c4e57611c4d611b0a565b5b5f611c5b85828601611b8b565b9250506020611c6c85828601611b8b565b9150509250929050565b5f805f60608486031215611c8d57611c8c611b0a565b5b5f611c9a86828701611b58565b9350506020611cab86828701611b58565b9250506040611cbc86828701611b8b565b9150509250925092565b5f60ff82169050919050565b611cdb81611cc6565b82525050565b5f602082019050611cf45f830184611cd2565b92915050565b5f60208284031215611d0f57611d0e611b0a565b5b5f611d1c84828501611b8b565b91505092915050565b5f60208284031215611d3a57611d39611b0a565b5b5f611d4784828501611b58565b91505092915050565b611d5981611b31565b82525050565b5f602082019050611d725f830184611d50565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611db282611a99565b810181811067ffffffffffffffff82111715611dd157611dd0611d7c565b5b80604052505050565b5f611de3611b01565b9050611def8282611da9565b919050565b5f67ffffffffffffffff821115611e0e57611e0d611d7c565b5b602082029050602081019050919050565b5f80fd5b5f611e35611e3084611df4565b611dda565b90508083825260208201905060208402830185811115611e5857611e57611e1f565b5b835b81811015611e815780611e6d8882611b58565b845260208401935050602081019050611e5a565b5050509392505050565b5f82601f830112611e9f57611e9e611d78565b5b8135611eaf848260208601611e23565b91505092915050565b5f60208284031215611ecd57611ecc611b0a565b5b5f82013567ffffffffffffffff811115611eea57611ee9611b0e565b5b611ef684828501611e8b565b91505092915050565b5f8060408385031215611f1557611f14611b0a565b5b5f611f2285828601611b58565b9250506020611f3385828601611b58565b9150509250929050565b7f4d6178696d756d206f66203530302063616e206265206164646564206174206f5f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f611f97602383611a61565b9150611fa282611f3d565b604082019050919050565b5f6020820190508181035f830152611fc481611f8b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612052602683611a61565b915061205d82611ff8565b604082019050919050565b5f6020820190508181035f83015261207f81612046565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120e0602483611a61565b91506120eb82612086565b604082019050919050565b5f6020820190508181035f83015261210d816120d4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61216e602283611a61565b915061217982612114565b604082019050919050565b5f6020820190508181035f83015261219b81612162565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121d6602083611a61565b91506121e1826121a2565b602082019050919050565b5f6020820190508181035f830152612203816121ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61224182611b6c565b915061224c83611b6c565b92508282019050808211156122645761226361220a565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122c4602183611a61565b91506122cf8261226a565b604082019050919050565b5f6020820190508181035f8301526122f1816122b8565b9050919050565b5f819050919050565b5f819050919050565b5f61232461231f61231a846122f8565b612301565b611b6c565b9050919050565b6123348161230a565b82525050565b5f60c08201905061234d5f830189611d50565b61235a6020830188611c10565b612367604083018761232b565b612374606083018661232b565b6123816080830185611d50565b61238e60a0830184611c10565b979650505050505050565b5f815190506123a781611b75565b92915050565b5f805f606084860312156123c4576123c3611b0a565b5b5f6123d186828701612399565b93505060206123e286828701612399565b92505060406123f386828701612399565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612457602583611a61565b9150612462826123fd565b604082019050919050565b5f6020820190508181035f8301526124848161244b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6124e5602383611a61565b91506124f08261248b565b604082019050919050565b5f6020820190508181035f830152612512816124d9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612573602983611a61565b915061257e82612519565b604082019050919050565b5f6020820190508181035f8301526125a081612567565b9050919050565b5f6125b182611b6c565b91506125bc83611b6c565b92508282026125ca81611b6c565b915082820484148315176125e1576125e061220a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61261f82611b6c565b915061262a83611b6c565b92508261263a576126396125e8565b5b828204905092915050565b5f61264f82611b6c565b915061265a83611b6c565b92508282039050818111156126725761267161220a565b5b9291505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122082e945157f661d00ed5940fa970e536889633a9cf63e658003c72393686c0b5c64736f6c63430008160033
Deployed Bytecode Sourcemap
12819:11026:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23220:10;;;;;;;;;;12819:11026;;;;;15205:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15826:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15388:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21053:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16977:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15299:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16448:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21182:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21279:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23250:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13831:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15494:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7006:103;;;;;;;;;;;;;:::i;:::-;;19048:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6775:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15107:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16042:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16755:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20711:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23086:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19867:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15619:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13799:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7115:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15205:88;15242:13;15275:10;;;;;;;;;;;;;;;;;15268:17;;15205:88;:::o;15826:210::-;15945:4;15967:39;15976:12;:10;:12::i;:::-;15990:7;15999:6;15967:8;:39::i;:::-;16024:4;16017:11;;15826:210;;;;:::o;15388:100::-;15441:7;15468:12;;15461:19;;15388:100;:::o;21053:123::-;6736:13;:11;:13::i;:::-;21139:5:::1;21130:6;:14;;;;21164:4;21155:6;:13;;;;21053:123:::0;;:::o;16977:454::-;17117:4;17134:36;17144:6;17152:9;17163:6;17134:9;:36::i;:::-;17181:220;17204:6;17225:12;:10;:12::i;:::-;17252:138;17308:6;17252:138;;;;;;;;;;;;;;;;;:11;:19;17264:6;17252:19;;;;;;;;;;;;;;;:33;17272:12;:10;:12::i;:::-;17252:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;17181:8;:220::i;:::-;17419:4;17412:11;;16977:454;;;;;:::o;15299:83::-;15340:5;13740:2;15358:16;;15299:83;:::o;16448:300::-;16563:4;16585:133;16608:12;:10;:12::i;:::-;16635:7;16657:50;16696:10;16657:11;:25;16669:12;:10;:12::i;:::-;16657:25;;;;;;;;;;;;;;;:34;16683:7;16657:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16585:8;:133::i;:::-;16736:4;16729:11;;16448:300;;;;:::o;21182:91::-;21238:27;21244:12;:10;:12::i;:::-;21258:6;21238:5;:27::i;:::-;21182:91;:::o;21279:128::-;21346:4;21370:19;:29;21390:8;21370:29;;;;;;;;;;;;;;;;;;;;;;;;;21363:36;;21279:128;;;:::o;23250:234::-;6736:13;:11;:13::i;:::-;22310:4:::1;22299:8;;:15;;;;;;;;;;;;;;;;;;23382:46:::2;23392:7;:5;:7::i;:::-;23409:4;23416:11;23382:9;:46::i;:::-;23439:37;23453:11;23466:9;23439:13;:37::i;:::-;22348:5:::1;22337:8:::0;::::1;:16;;;;;;;;;;;;;;;;;;23250:234:::0;:::o;13831:25::-;;;;:::o;15494:119::-;15560:7;15587:9;:18;15597:7;15587:18;;;;;;;;;;;;;;;;15580:25;;15494:119;;;:::o;7006:103::-;6736:13;:11;:13::i;:::-;7071:30:::1;7098:1;7071:18;:30::i;:::-;7006:103::o:0;19048:96::-;19095:7;19122:14;;;;;;;;;;;19115:21;;19048:96;:::o;6775:87::-;6821:7;6848:6;;;;;;;;;;;6841:13;;6775:87;:::o;15107:92::-;15146:13;15179:12;;;;;;;;;;;;;;;;;15172:19;;15107:92;:::o;16042:400::-;16162:4;16184:228;16207:12;:10;:12::i;:::-;16234:7;16256:145;16313:15;16256:145;;;;;;;;;;;;;;;;;:11;:25;16268:12;:10;:12::i;:::-;16256:25;;;;;;;;;;;;;;;:34;16282:7;16256:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;16184:8;:228::i;:::-;16430:4;16423:11;;16042:400;;;;:::o;16755:216::-;16877:4;16899:42;16909:12;:10;:12::i;:::-;16923:9;16934:6;16899:9;:42::i;:::-;16959:4;16952:11;;16755:216;;;;:::o;20711:336::-;6736:13;:11;:13::i;:::-;20816:4:::1;20796:9;:16;:24;;20788:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20873:36;20912:19;20873:58;;20947:9;20942:98;20966:9;:16;20962:1;:20;20942:98;;;21024:4;21004:3;:17;21008:9;21018:1;21008:12;;;;;;;;:::i;:::-;;;;;;;;21004:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20984:3;;;;;;;20942:98;;;;20777:270;20711:336:::0;:::o;23086:85::-;23131:4;23155:8;;;;;;;;;;;23148:15;;23086:85;:::o;19867:109::-;19916:7;19951:16;;;;;;;;;;;19936:32;;19867:109;:::o;15619:201::-;15753:7;15785:11;:18;15797:5;15785:18;;;;;;;;;;;;;;;:27;15804:7;15785:27;;;;;;;;;;;;;;;;15778:34;;15619:201;;;;:::o;13799:25::-;;;;:::o;7115:238::-;6736:13;:11;:13::i;:::-;7238:1:::1;7218:22;;:8;:22;;::::0;7196:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7317:28;7336:8;7317:18;:28::i;:::-;7115:238:::0;:::o;614:98::-;667:7;694:10;687:17;;614:98;:::o;19982:378::-;20135:1;20118:19;;:5;:19;;;20110:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20216:1;20197:21;;:7;:21;;;20189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20298:6;20268:11;:18;20280:5;20268:18;;;;;;;;;;;;;;;:27;20287:7;20268:27;;;;;;;;;;;;;;;:36;;;;20336:7;20320:32;;20329:5;20320:32;;;20345:6;20320:32;;;;;;:::i;:::-;;;;;;;;19982:378;;;:::o;6868:132::-;6943:12;:10;:12::i;:::-;6932:23;;:7;:5;:7::i;:::-;:23;;;6924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6868:132::o;17437:1605::-;17569:42;17585:6;17593:9;17604:6;17569:15;:42::i;:::-;17622:14;17665:7;:5;:7::i;:::-;17655:17;;:6;:17;;;;:41;;;;;17689:7;:5;:7::i;:::-;17676:20;;:9;:20;;;;17655:41;17651:766;;;17736:19;:27;17756:6;17736:27;;;;;;;;;;;;;;;;;;;;;;;;;17735:28;:63;;;;;17768:19;:30;17788:9;17768:30;;;;;;;;;;;;;;;;;;;;;;;;;17767:31;17735:63;17713:693;;;17878:14;;;;;;;;;;;17865:27;;:9;:27;;;:54;;;;;17914:4;17896:23;;:6;:23;;;;17865:54;17861:206;;;17953:33;13788:4;17953:18;17964:6;;17953;:10;;:18;;;;:::i;:::-;:22;;:33;;;;:::i;:::-;17944:42;;18035:12;18009;:23;18022:9;18009:23;;;;;;;;;;;;;;;:38;;;;17861:206;18148:14;;;;;;;;;;;18138:24;;:6;:24;;;:87;;;;;18208:16;;;;;;;;;;;18187:38;;:9;:38;;;;18138:87;18112:279;;;18277:33;13788:4;18277:18;18288:6;;18277;:10;;:18;;;;:::i;:::-;:22;;:33;;;;:::i;:::-;18268:42;;18359:12;18333;:23;18346:9;18333:23;;;;;;;;;;;;;;;:38;;;;18112:279;17713:693;17651:766;18427:16;18446:6;18427:25;;18478:1;18467:8;:12;18463:314;;;18509:1;18500:6;:10;18496:226;;;18561:79;18615:6;18561:9;:27;18571:16;;;;;;;;;;;18561:27;;;;;;;;;;;;;;;;:31;;:79;;;;:::i;:::-;18531:9;:27;18541:16;;;;;;;;;;;18531:27;;;;;;;;;;;;;;;:109;;;;18681:16;;;;;;;;;;;18664:42;;18673:6;18664:42;;;18699:6;18664:42;;;;;;:::i;:::-;;;;;;;;18496:226;18745:20;18756:8;18745:6;:10;;:20;;;;:::i;:::-;18736:29;;18463:314;18807:108;18843:6;18807:108;;;;;;;;;;;;;;;;;:9;:17;18817:6;18807:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;18787:9;:17;18797:6;18787:17;;;;;;;;;;;;;;;:128;;;;18949:32;18974:6;18949:9;:20;18959:9;18949:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18926:9;:20;18936:9;18926:20;;;;;;;;;;;;;;;:55;;;;19016:9;18999:35;;19008:6;18999:35;;;19027:6;18999:35;;;;;;:::i;:::-;;;;;;;;17558:1484;;17437:1605;;;:::o;10972:240::-;11092:7;11150:1;11145;:6;;11153:12;11137:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;11192:1;11188;:5;11181:12;;10972:240;;;;;:::o;10452:98::-;10510:7;10541:1;10537;:5;;;;:::i;:::-;10530:12;;10452:98;;;;:::o;19470:391::-;19573:1;19554:21;;:7;:21;;;19546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19645:105;19682:6;19645:105;;;;;;;;;;;;;;;;;:9;:18;19655:7;19645:18;;;;;;;;;;;;;;;;:22;;:105;;;;;:::i;:::-;19624:9;:18;19634:7;19624:18;;;;;;;;;;;;;;;:126;;;;19776:24;19793:6;19776:12;;:16;;:24;;;;:::i;:::-;19761:12;:39;;;;19842:1;19816:37;;19825:7;19816:37;;;19846:6;19816:37;;;;;;:::i;:::-;;;;;;;;19470:391;;:::o;21413:363::-;21495:63;21512:4;21527:16;;;;;;;;;;;21546:11;21495:8;:63::i;:::-;21569:16;;;;;;;;;;;:32;;;21609:9;21642:4;21662:11;21688:1;21704;21720:7;:5;:7::i;:::-;21742:15;21569:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21413:363;;:::o;7359:191::-;7433:16;7452:6;;;;;;;;;;;7433:25;;7478:8;7469:6;;:17;;;;;;;;;;;;;;;;;;7533:8;7502:40;;7523:8;7502:40;;;;;;;;;;;;7422:128;7359:191;:::o;23490:352::-;23640:1;23624:18;;:4;:18;;;23616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23717:1;23703:16;;:2;:16;;;23695:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23787:1;23778:6;:10;23770:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23490:352;;;:::o;10660:98::-;10718:7;10749:1;10745;:5;;;;:::i;:::-;10738:12;;10660:98;;;;:::o;10764:::-;10822:7;10853:1;10849;:5;;;;:::i;:::-;10842:12;;10764:98;;;;:::o;10556:::-;10614:7;10645:1;10641;:5;;;;:::i;:::-;10634:12;;10556:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:117::-;6464:1;6461;6454:12;6478:180;6526:77;6523:1;6516:88;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6664:281;6747:27;6769:4;6747:27;:::i;:::-;6739:6;6735:40;6877:6;6865:10;6862:22;6841:18;6829:10;6826:34;6823:62;6820:88;;;6888:18;;:::i;:::-;6820:88;6928:10;6924:2;6917:22;6707:238;6664:281;;:::o;6951:129::-;6985:6;7012:20;;:::i;:::-;7002:30;;7041:33;7069:4;7061:6;7041:33;:::i;:::-;6951:129;;;:::o;7086:311::-;7163:4;7253:18;7245:6;7242:30;7239:56;;;7275:18;;:::i;:::-;7239:56;7325:4;7317:6;7313:17;7305:25;;7385:4;7379;7375:15;7367:23;;7086:311;;;:::o;7403:117::-;7512:1;7509;7502:12;7543:710;7639:5;7664:81;7680:64;7737:6;7680:64;:::i;:::-;7664:81;:::i;:::-;7655:90;;7765:5;7794:6;7787:5;7780:21;7828:4;7821:5;7817:16;7810:23;;7881:4;7873:6;7869:17;7861:6;7857:30;7910:3;7902:6;7899:15;7896:122;;;7929:79;;:::i;:::-;7896:122;8044:6;8027:220;8061:6;8056:3;8053:15;8027:220;;;8136:3;8165:37;8198:3;8186:10;8165:37;:::i;:::-;8160:3;8153:50;8232:4;8227:3;8223:14;8216:21;;8103:144;8087:4;8082:3;8078:14;8071:21;;8027:220;;;8031:21;7645:608;;7543:710;;;;;:::o;8276:370::-;8347:5;8396:3;8389:4;8381:6;8377:17;8373:27;8363:122;;8404:79;;:::i;:::-;8363:122;8521:6;8508:20;8546:94;8636:3;8628:6;8621:4;8613:6;8609:17;8546:94;:::i;:::-;8537:103;;8353:293;8276:370;;;;:::o;8652:539::-;8736:6;8785:2;8773:9;8764:7;8760:23;8756:32;8753:119;;;8791:79;;:::i;:::-;8753:119;8939:1;8928:9;8924:17;8911:31;8969:18;8961:6;8958:30;8955:117;;;8991:79;;:::i;:::-;8955:117;9096:78;9166:7;9157:6;9146:9;9142:22;9096:78;:::i;:::-;9086:88;;8882:302;8652:539;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:222::-;9817:34;9813:1;9805:6;9801:14;9794:58;9886:5;9881:2;9873:6;9869:15;9862:30;9677:222;:::o;9905:366::-;10047:3;10068:67;10132:2;10127:3;10068:67;:::i;:::-;10061:74;;10144:93;10233:3;10144:93;:::i;:::-;10262:2;10257:3;10253:12;10246:19;;9905:366;;;:::o;10277:419::-;10443:4;10481:2;10470:9;10466:18;10458:26;;10530:9;10524:4;10520:20;10516:1;10505:9;10501:17;10494:47;10558:131;10684:4;10558:131;:::i;:::-;10550:139;;10277:419;;;:::o;10702:180::-;10750:77;10747:1;10740:88;10847:4;10844:1;10837:15;10871:4;10868:1;10861:15;10888:225;11028:34;11024:1;11016:6;11012:14;11005:58;11097:8;11092:2;11084:6;11080:15;11073:33;10888:225;:::o;11119:366::-;11261:3;11282:67;11346:2;11341:3;11282:67;:::i;:::-;11275:74;;11358:93;11447:3;11358:93;:::i;:::-;11476:2;11471:3;11467:12;11460:19;;11119:366;;;:::o;11491:419::-;11657:4;11695:2;11684:9;11680:18;11672:26;;11744:9;11738:4;11734:20;11730:1;11719:9;11715:17;11708:47;11772:131;11898:4;11772:131;:::i;:::-;11764:139;;11491:419;;;:::o;11916:223::-;12056:34;12052:1;12044:6;12040:14;12033:58;12125:6;12120:2;12112:6;12108:15;12101:31;11916:223;:::o;12145:366::-;12287:3;12308:67;12372:2;12367:3;12308:67;:::i;:::-;12301:74;;12384:93;12473:3;12384:93;:::i;:::-;12502:2;12497:3;12493:12;12486:19;;12145:366;;;:::o;12517:419::-;12683:4;12721:2;12710:9;12706:18;12698:26;;12770:9;12764:4;12760:20;12756:1;12745:9;12741:17;12734:47;12798:131;12924:4;12798:131;:::i;:::-;12790:139;;12517:419;;;:::o;12942:221::-;13082:34;13078:1;13070:6;13066:14;13059:58;13151:4;13146:2;13138:6;13134:15;13127:29;12942:221;:::o;13169:366::-;13311:3;13332:67;13396:2;13391:3;13332:67;:::i;:::-;13325:74;;13408:93;13497:3;13408:93;:::i;:::-;13526:2;13521:3;13517:12;13510:19;;13169:366;;;:::o;13541:419::-;13707:4;13745:2;13734:9;13730:18;13722:26;;13794:9;13788:4;13784:20;13780:1;13769:9;13765:17;13758:47;13822:131;13948:4;13822:131;:::i;:::-;13814:139;;13541:419;;;:::o;13966:182::-;14106:34;14102:1;14094:6;14090:14;14083:58;13966:182;:::o;14154:366::-;14296:3;14317:67;14381:2;14376:3;14317:67;:::i;:::-;14310:74;;14393:93;14482:3;14393:93;:::i;:::-;14511:2;14506:3;14502:12;14495:19;;14154:366;;;:::o;14526:419::-;14692:4;14730:2;14719:9;14715:18;14707:26;;14779:9;14773:4;14769:20;14765:1;14754:9;14750:17;14743:47;14807:131;14933:4;14807:131;:::i;:::-;14799:139;;14526:419;;;:::o;14951:180::-;14999:77;14996:1;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15137:191;15177:3;15196:20;15214:1;15196:20;:::i;:::-;15191:25;;15230:20;15248:1;15230:20;:::i;:::-;15225:25;;15273:1;15270;15266:9;15259:16;;15294:3;15291:1;15288:10;15285:36;;;15301:18;;:::i;:::-;15285:36;15137:191;;;;:::o;15334:220::-;15474:34;15470:1;15462:6;15458:14;15451:58;15543:3;15538:2;15530:6;15526:15;15519:28;15334:220;:::o;15560:366::-;15702:3;15723:67;15787:2;15782:3;15723:67;:::i;:::-;15716:74;;15799:93;15888:3;15799:93;:::i;:::-;15917:2;15912:3;15908:12;15901:19;;15560:366;;;:::o;15932:419::-;16098:4;16136:2;16125:9;16121:18;16113:26;;16185:9;16179:4;16175:20;16171:1;16160:9;16156:17;16149:47;16213:131;16339:4;16213:131;:::i;:::-;16205:139;;15932:419;;;:::o;16357:85::-;16402:7;16431:5;16420:16;;16357:85;;;:::o;16448:60::-;16476:3;16497:5;16490:12;;16448:60;;;:::o;16514:158::-;16572:9;16605:61;16623:42;16632:32;16658:5;16632:32;:::i;:::-;16623:42;:::i;:::-;16605:61;:::i;:::-;16592:74;;16514:158;;;:::o;16678:147::-;16773:45;16812:5;16773:45;:::i;:::-;16768:3;16761:58;16678:147;;:::o;16831:807::-;17080:4;17118:3;17107:9;17103:19;17095:27;;17132:71;17200:1;17189:9;17185:17;17176:6;17132:71;:::i;:::-;17213:72;17281:2;17270:9;17266:18;17257:6;17213:72;:::i;:::-;17295:80;17371:2;17360:9;17356:18;17347:6;17295:80;:::i;:::-;17385;17461:2;17450:9;17446:18;17437:6;17385:80;:::i;:::-;17475:73;17543:3;17532:9;17528:19;17519:6;17475:73;:::i;:::-;17558;17626:3;17615:9;17611:19;17602:6;17558:73;:::i;:::-;16831:807;;;;;;;;;:::o;17644:143::-;17701:5;17732:6;17726:13;17717:22;;17748:33;17775:5;17748:33;:::i;:::-;17644:143;;;;:::o;17793:663::-;17881:6;17889;17897;17946:2;17934:9;17925:7;17921:23;17917:32;17914:119;;;17952:79;;:::i;:::-;17914:119;18072:1;18097:64;18153:7;18144:6;18133:9;18129:22;18097:64;:::i;:::-;18087:74;;18043:128;18210:2;18236:64;18292:7;18283:6;18272:9;18268:22;18236:64;:::i;:::-;18226:74;;18181:129;18349:2;18375:64;18431:7;18422:6;18411:9;18407:22;18375:64;:::i;:::-;18365:74;;18320:129;17793:663;;;;;:::o;18462:224::-;18602:34;18598:1;18590:6;18586:14;18579:58;18671:7;18666:2;18658:6;18654:15;18647:32;18462:224;:::o;18692:366::-;18834:3;18855:67;18919:2;18914:3;18855:67;:::i;:::-;18848:74;;18931:93;19020:3;18931:93;:::i;:::-;19049:2;19044:3;19040:12;19033:19;;18692:366;;;:::o;19064:419::-;19230:4;19268:2;19257:9;19253:18;19245:26;;19317:9;19311:4;19307:20;19303:1;19292:9;19288:17;19281:47;19345:131;19471:4;19345:131;:::i;:::-;19337:139;;19064:419;;;:::o;19489:222::-;19629:34;19625:1;19617:6;19613:14;19606:58;19698:5;19693:2;19685:6;19681:15;19674:30;19489:222;:::o;19717:366::-;19859:3;19880:67;19944:2;19939:3;19880:67;:::i;:::-;19873:74;;19956:93;20045:3;19956:93;:::i;:::-;20074:2;20069:3;20065:12;20058:19;;19717:366;;;:::o;20089:419::-;20255:4;20293:2;20282:9;20278:18;20270:26;;20342:9;20336:4;20332:20;20328:1;20317:9;20313:17;20306:47;20370:131;20496:4;20370:131;:::i;:::-;20362:139;;20089:419;;;:::o;20514:228::-;20654:34;20650:1;20642:6;20638:14;20631:58;20723:11;20718:2;20710:6;20706:15;20699:36;20514:228;:::o;20748:366::-;20890:3;20911:67;20975:2;20970:3;20911:67;:::i;:::-;20904:74;;20987:93;21076:3;20987:93;:::i;:::-;21105:2;21100:3;21096:12;21089:19;;20748:366;;;:::o;21120:419::-;21286:4;21324:2;21313:9;21309:18;21301:26;;21373:9;21367:4;21363:20;21359:1;21348:9;21344:17;21337:47;21401:131;21527:4;21401:131;:::i;:::-;21393:139;;21120:419;;;:::o;21545:410::-;21585:7;21608:20;21626:1;21608:20;:::i;:::-;21603:25;;21642:20;21660:1;21642:20;:::i;:::-;21637:25;;21697:1;21694;21690:9;21719:30;21737:11;21719:30;:::i;:::-;21708:41;;21898:1;21889:7;21885:15;21882:1;21879:22;21859:1;21852:9;21832:83;21809:139;;21928:18;;:::i;:::-;21809:139;21593:362;21545:410;;;;:::o;21961:180::-;22009:77;22006:1;21999:88;22106:4;22103:1;22096:15;22130:4;22127:1;22120:15;22147:185;22187:1;22204:20;22222:1;22204:20;:::i;:::-;22199:25;;22238:20;22256:1;22238:20;:::i;:::-;22233:25;;22277:1;22267:35;;22282:18;;:::i;:::-;22267:35;22324:1;22321;22317:9;22312:14;;22147:185;;;;:::o;22338:194::-;22378:4;22398:20;22416:1;22398:20;:::i;:::-;22393:25;;22432:20;22450:1;22432:20;:::i;:::-;22427:25;;22476:1;22473;22469:9;22461:17;;22500:1;22494:4;22491:11;22488:37;;;22505:18;;:::i;:::-;22488:37;22338:194;;;;:::o
Swarm Source
ipfs://82e945157f661d00ed5940fa970e536889633a9cf63e658003c72393686c0b5c
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.