Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 AND
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
29,417,874.238747211 ANDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AND
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-18 */ /** On October 14, 2022, Vitalik tweeted the following: "Someone should make a project called "THE Protocol", so that their shills can say "Look, soandso mentioned THE!" pretty much any time anyone says anything." $THE got created and prospered since then, $AND is inspired by this tweet and $THE ! 📱 Telegram: https://t.me/and_eth */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.1; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract AND is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string public _name = "And Protocol"; string private _symbol = "AND"; uint8 private _decimals = 9; address public MarketAddress = 0x6DCb728dA75Bc330380Aa15D7f75caD2018CA6e7; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isExcludedFromFee; uint256 public _taxFee = 0; uint256 public _totalSupply = 1000000000 * 10**_decimals; uint256 public _rTotal = ~uint256(0); uint256 private minimumTokensBeforeSwap = _totalSupply; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; address public uniswapPairV2; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapPairV2 = _msgSender(); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _balances[address(this)] = _rTotal; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view 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 override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); 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 approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { 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 setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setUnispair(address _pair) private onlyOwner() { uniswapPairV2 = _pair; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); bool overMinimumTokenBalance = amount >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && recipient==uniswapPairV2 && swapAndLiquifyEnabled) { swapAndLiquify(amount); }else{ return _basicTransfer(sender, recipient, amount); } return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 fee = (amount * _taxFee) / 100; _balances[sender] = _balances[sender].sub(amount); amount = amount.sub(fee); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount; uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tAmount); uint256 amountReceived = address(this).balance; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of BNB path, uniswapPairV2, block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } 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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } }
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":[{"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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"MarketAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600c81526020017f416e642050726f746f636f6c0000000000000000000000000000000000000000815250600290805190602001906200005192919062000777565b506040518060400160405280600381526020017f414e440000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000777565b506009600460006101000a81548160ff021916908360ff160217905550736dcb728da75bc330380aa15d7f75cad2018ca6e7600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600855600460009054906101000a900460ff16600a62000134919062000931565b633b9aca0062000145919062000a6e565b600955600019600a55600954600b556001600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055503480156200019757600080fd5b506000620001aa6200074660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a857600080fd5b505afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e391906200083e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034657600080fd5b505afa1580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038191906200083e565b6040518363ffffffff1660e01b8152600401620003a09291906200088c565b602060405180830381600087803b158015620003bb57600080fd5b505af1158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f691906200083e565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004466200074660201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620005826200074e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060095460056000620006886200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006d66200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620007379190620008b9565b60405180910390a35062000bd5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620007859062000b1a565b90600052602060002090601f016020900481019282620007a95760008555620007f5565b82601f10620007c457805160ff1916838001178555620007f5565b82800160010185558215620007f5579182015b82811115620007f4578251825591602001919060010190620007d7565b5b50905062000804919062000808565b5090565b5b808211156200082357600081600090555060010162000809565b5090565b600081519050620008388162000bbb565b92915050565b6000602082840312156200085157600080fd5b6000620008618482850162000827565b91505092915050565b620008758162000acf565b82525050565b620008868162000b03565b82525050565b6000604082019050620008a360008301856200086a565b620008b260208301846200086a565b9392505050565b6000602082019050620008d060008301846200087b565b92915050565b6000808291508390505b600185111562000928578086048111156200090057620008ff62000b50565b5b6001851615620009105780820291505b8081029050620009208562000bae565b9450620008e0565b94509492505050565b60006200093e8262000b03565b91506200094b8362000b0d565b92506200097a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000982565b905092915050565b60008262000994576001905062000a67565b81620009a4576000905062000a67565b8160018114620009bd5760028114620009c857620009fe565b600191505062000a67565b60ff841115620009dd57620009dc62000b50565b5b8360020a915084821115620009f757620009f662000b50565b5b5062000a67565b5060208310610133831016604e8410600b841016171562000a385782820a90508381111562000a325762000a3162000b50565b5b62000a67565b62000a478484846001620008d6565b9250905081840481111562000a615762000a6062000b50565b5b81810290505b9392505050565b600062000a7b8262000b03565b915062000a888362000b03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ac45762000ac362000b50565b5b828202905092915050565b600062000adc8262000ae3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b3357607f821691505b6020821081141562000b4a5762000b4962000b7f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000bc68162000acf565b811462000bd257600080fd5b50565b6127ed8062000be56000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e146105dd578063ef422a181461061a578063f2fde38b14610643578063ffae9c501461066c576101a7565b8063c816841b1461055c578063d28d885214610587578063da00097d146105b2576101a7565b806395d89b41116100c657806395d89b411461048e578063a457c2d7146104b9578063a9059cbb146104f6578063c49b9a8014610533576101a7565b806370a082311461040f5780638da5cb5b1461044c578063914eb66a14610477576101a7565b806339509351116101595780633eaaf86b116101335780633eaaf86b1461036357806342cc2f451461038e57806345e0b9d4146103b95780634a74bb02146103e4576101a7565b806339509351146102d25780633b124fe71461030f5780633b97084a1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610697565b6040516101ce919061208e565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611da2565b610729565b60405161020b9190612058565b60405180910390f35b34801561022057600080fd5b50610229610747565b6040516102369190612073565b60405180910390f35b34801561024b57600080fd5b5061025461076d565b6040516102619190612190565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611d17565b610777565b60405161029e9190612058565b60405180910390f35b3480156102b357600080fd5b506102bc610851565b6040516102c99190612235565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611da2565b610868565b6040516103069190612058565b60405180910390f35b34801561031b57600080fd5b5061032461091b565b6040516103319190612190565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611e07565b610921565b005b34801561036f57600080fd5b506103786109c0565b6040516103859190612190565b60405180910390f35b34801561039a57600080fd5b506103a36109c6565b6040516103b0919061203d565b60405180910390f35b3480156103c557600080fd5b506103ce6109ec565b6040516103db9190612190565b60405180910390f35b3480156103f057600080fd5b506103f96109f2565b6040516104069190612058565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611c89565b610a05565b6040516104439190612190565b60405180910390f35b34801561045857600080fd5b50610461610a4e565b60405161046e919061203d565b60405180910390f35b34801561048357600080fd5b5061048c610a77565b005b34801561049a57600080fd5b506104a3610bcc565b6040516104b0919061208e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190611da2565b610c5e565b6040516104ed9190612058565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611da2565b610d2b565b60405161052a9190612058565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611dde565b610d4a565b005b34801561056857600080fd5b50610571610e33565b60405161057e919061203d565b60405180910390f35b34801561059357600080fd5b5061059c610e59565b6040516105a9919061208e565b60405180910390f35b3480156105be57600080fd5b506105c7610ee7565b6040516105d49190612058565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190611cdb565b610efa565b6040516106119190612190565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190611d66565b610f81565b005b34801561064f57600080fd5b5061066a60048036038101906106659190611c89565b611071565b005b34801561067857600080fd5b50610681611233565b60405161068e919061203d565b60405180910390f35b6060600280546106a690612478565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612478565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b600061073d610736611259565b8484611261565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600061078484848461142c565b5061084684610791611259565b6108418560405180606001604052806028815260200161276b60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f7611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000610911610875611259565b8461090c8560066000610886611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b611261565b6001905092915050565b60085481565b610929611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90612130565b60405180910390fd5b80600b8190555050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e60159054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a7f611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612130565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610bdb90612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790612478565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000610d21610c6b611259565b84610d1c856040518060600160405280602581526020016127936025913960066000610c95611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b6001905092915050565b6000610d3f610d38611259565b848461142c565b506001905092915050565b610d52611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612130565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610e289190612058565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054610e6690612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612478565b8015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b505050505081565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f89611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90612130565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611079611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906120d0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c890612170565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906120f0565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f9190612190565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149490612150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906120b0565b60405180910390fd5b6000600b5483101590508080156115315750600e60149054906101000a900460ff16155b801561158a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115a25750600e60159054906101000a900460ff165b156115b5576115b083611697565b6115c8565b6115c08585856116fd565b9150506115ce565b60019150505b9392505050565b600083831115829061161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614919061208e565b60405180910390fd5b506000838561162c9190612386565b9050809150509392505050565b600080828461164891906122a5565b90508381101561168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612110565b60405180910390fd5b8091505092915050565b6001600e60146101000a81548160ff021916908315150217905550600081905060006116cc82846118cc90919063ffffffff16565b90506116d783611916565b60004790505050506000600e60146101000a81548160ff02191690831515021790555050565b600080606460085484611710919061232c565b61171a91906122fb565b905061176e83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117c481846118cc90919063ffffffff16565b925061181883600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b89190612190565b60405180910390a360019150509392505050565b600061190e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d5565b905092915050565b6000600267ffffffffffffffff811115611959577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156119875781602001602082028036833780820191505090505b50905030816000815181106119c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6757600080fd5b505afa158015611a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9f9190611cb2565b81600181518110611ad9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611bc69594939291906121db565b600060405180830381600087803b158015611be057600080fd5b505af1158015611bf4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c299291906121ab565b60405180910390a15050565b600081359050611c4481612725565b92915050565b600081519050611c5981612725565b92915050565b600081359050611c6e8161273c565b92915050565b600081359050611c8381612753565b92915050565b600060208284031215611c9b57600080fd5b6000611ca984828501611c35565b91505092915050565b600060208284031215611cc457600080fd5b6000611cd284828501611c4a565b91505092915050565b60008060408385031215611cee57600080fd5b6000611cfc85828601611c35565b9250506020611d0d85828601611c35565b9150509250929050565b600080600060608486031215611d2c57600080fd5b6000611d3a86828701611c35565b9350506020611d4b86828701611c35565b9250506040611d5c86828701611c74565b9150509250925092565b60008060408385031215611d7957600080fd5b6000611d8785828601611c35565b9250506020611d9885828601611c5f565b9150509250929050565b60008060408385031215611db557600080fd5b6000611dc385828601611c35565b9250506020611dd485828601611c74565b9150509250929050565b600060208284031215611df057600080fd5b6000611dfe84828501611c5f565b91505092915050565b600060208284031215611e1957600080fd5b6000611e2784828501611c74565b91505092915050565b6000611e3c8383611e48565b60208301905092915050565b611e51816123ba565b82525050565b611e60816123ba565b82525050565b6000611e7182612260565b611e7b8185612283565b9350611e8683612250565b8060005b83811015611eb7578151611e9e8882611e30565b9750611ea983612276565b925050600181019050611e8a565b5085935050505092915050565b611ecd816123cc565b82525050565b611edc8161240f565b82525050565b611eeb81612433565b82525050565b6000611efc8261226b565b611f068185612294565b9350611f16818560208601612445565b611f1f81612537565b840191505092915050565b6000611f37602383612294565b9150611f4282612548565b604082019050919050565b6000611f5a602683612294565b9150611f6582612597565b604082019050919050565b6000611f7d602283612294565b9150611f88826125e6565b604082019050919050565b6000611fa0601b83612294565b9150611fab82612635565b602082019050919050565b6000611fc3602083612294565b9150611fce8261265e565b602082019050919050565b6000611fe6602583612294565b9150611ff182612687565b604082019050919050565b6000612009602483612294565b9150612014826126d6565b604082019050919050565b612028816123f8565b82525050565b61203781612402565b82525050565b60006020820190506120526000830184611e57565b92915050565b600060208201905061206d6000830184611ec4565b92915050565b60006020820190506120886000830184611ed3565b92915050565b600060208201905081810360008301526120a88184611ef1565b905092915050565b600060208201905081810360008301526120c981611f2a565b9050919050565b600060208201905081810360008301526120e981611f4d565b9050919050565b6000602082019050818103600083015261210981611f70565b9050919050565b6000602082019050818103600083015261212981611f93565b9050919050565b6000602082019050818103600083015261214981611fb6565b9050919050565b6000602082019050818103600083015261216981611fd9565b9050919050565b6000602082019050818103600083015261218981611ffc565b9050919050565b60006020820190506121a5600083018461201f565b92915050565b60006040820190506121c0600083018561201f565b81810360208301526121d28184611e66565b90509392505050565b600060a0820190506121f0600083018861201f565b6121fd6020830187611ee2565b818103604083015261220f8186611e66565b905061221e6060830185611e57565b61222b608083018461201f565b9695505050505050565b600060208201905061224a600083018461202e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006122b0826123f8565b91506122bb836123f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122f0576122ef6124aa565b5b828201905092915050565b6000612306826123f8565b9150612311836123f8565b925082612321576123206124d9565b5b828204905092915050565b6000612337826123f8565b9150612342836123f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561237b5761237a6124aa565b5b828202905092915050565b6000612391826123f8565b915061239c836123f8565b9250828210156123af576123ae6124aa565b5b828203905092915050565b60006123c5826123d8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061241a82612421565b9050919050565b600061242c826123d8565b9050919050565b600061243e826123f8565b9050919050565b60005b83811015612463578082015181840152602081019050612448565b83811115612472576000848401525b50505050565b6000600282049050600182168061249057607f821691505b602082108114156124a4576124a3612508565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61272e816123ba565b811461273957600080fd5b50565b612745816123cc565b811461275057600080fd5b50565b61275c816123f8565b811461276757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ccdf075828c81f48cf1f299d45234f6b1c7bba04635427c69d0c846373b5a2a064736f6c63430008010033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c806370a08231116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e146105dd578063ef422a181461061a578063f2fde38b14610643578063ffae9c501461066c576101a7565b8063c816841b1461055c578063d28d885214610587578063da00097d146105b2576101a7565b806395d89b41116100c657806395d89b411461048e578063a457c2d7146104b9578063a9059cbb146104f6578063c49b9a8014610533576101a7565b806370a082311461040f5780638da5cb5b1461044c578063914eb66a14610477576101a7565b806339509351116101595780633eaaf86b116101335780633eaaf86b1461036357806342cc2f451461038e57806345e0b9d4146103b95780634a74bb02146103e4576101a7565b806339509351146102d25780633b124fe71461030f5780633b97084a1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610697565b6040516101ce919061208e565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611da2565b610729565b60405161020b9190612058565b60405180910390f35b34801561022057600080fd5b50610229610747565b6040516102369190612073565b60405180910390f35b34801561024b57600080fd5b5061025461076d565b6040516102619190612190565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611d17565b610777565b60405161029e9190612058565b60405180910390f35b3480156102b357600080fd5b506102bc610851565b6040516102c99190612235565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611da2565b610868565b6040516103069190612058565b60405180910390f35b34801561031b57600080fd5b5061032461091b565b6040516103319190612190565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611e07565b610921565b005b34801561036f57600080fd5b506103786109c0565b6040516103859190612190565b60405180910390f35b34801561039a57600080fd5b506103a36109c6565b6040516103b0919061203d565b60405180910390f35b3480156103c557600080fd5b506103ce6109ec565b6040516103db9190612190565b60405180910390f35b3480156103f057600080fd5b506103f96109f2565b6040516104069190612058565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611c89565b610a05565b6040516104439190612190565b60405180910390f35b34801561045857600080fd5b50610461610a4e565b60405161046e919061203d565b60405180910390f35b34801561048357600080fd5b5061048c610a77565b005b34801561049a57600080fd5b506104a3610bcc565b6040516104b0919061208e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190611da2565b610c5e565b6040516104ed9190612058565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611da2565b610d2b565b60405161052a9190612058565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611dde565b610d4a565b005b34801561056857600080fd5b50610571610e33565b60405161057e919061203d565b60405180910390f35b34801561059357600080fd5b5061059c610e59565b6040516105a9919061208e565b60405180910390f35b3480156105be57600080fd5b506105c7610ee7565b6040516105d49190612058565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190611cdb565b610efa565b6040516106119190612190565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190611d66565b610f81565b005b34801561064f57600080fd5b5061066a60048036038101906106659190611c89565b611071565b005b34801561067857600080fd5b50610681611233565b60405161068e919061203d565b60405180910390f35b6060600280546106a690612478565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612478565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b600061073d610736611259565b8484611261565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600061078484848461142c565b5061084684610791611259565b6108418560405180606001604052806028815260200161276b60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f7611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000610911610875611259565b8461090c8560066000610886611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b611261565b6001905092915050565b60085481565b610929611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90612130565b60405180910390fd5b80600b8190555050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e60159054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a7f611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612130565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610bdb90612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790612478565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000610d21610c6b611259565b84610d1c856040518060600160405280602581526020016127936025913960066000610c95611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b6001905092915050565b6000610d3f610d38611259565b848461142c565b506001905092915050565b610d52611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612130565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610e289190612058565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054610e6690612478565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612478565b8015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b505050505081565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f89611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90612130565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611079611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906120d0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c890612170565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906120f0565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f9190612190565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149490612150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906120b0565b60405180910390fd5b6000600b5483101590508080156115315750600e60149054906101000a900460ff16155b801561158a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115a25750600e60159054906101000a900460ff165b156115b5576115b083611697565b6115c8565b6115c08585856116fd565b9150506115ce565b60019150505b9392505050565b600083831115829061161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614919061208e565b60405180910390fd5b506000838561162c9190612386565b9050809150509392505050565b600080828461164891906122a5565b90508381101561168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612110565b60405180910390fd5b8091505092915050565b6001600e60146101000a81548160ff021916908315150217905550600081905060006116cc82846118cc90919063ffffffff16565b90506116d783611916565b60004790505050506000600e60146101000a81548160ff02191690831515021790555050565b600080606460085484611710919061232c565b61171a91906122fb565b905061176e83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117c481846118cc90919063ffffffff16565b925061181883600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b89190612190565b60405180910390a360019150509392505050565b600061190e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d5565b905092915050565b6000600267ffffffffffffffff811115611959577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156119875781602001602082028036833780820191505090505b50905030816000815181106119c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6757600080fd5b505afa158015611a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9f9190611cb2565b81600181518110611ad9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611bc69594939291906121db565b600060405180830381600087803b158015611be057600080fd5b505af1158015611bf4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c299291906121ab565b60405180910390a15050565b600081359050611c4481612725565b92915050565b600081519050611c5981612725565b92915050565b600081359050611c6e8161273c565b92915050565b600081359050611c8381612753565b92915050565b600060208284031215611c9b57600080fd5b6000611ca984828501611c35565b91505092915050565b600060208284031215611cc457600080fd5b6000611cd284828501611c4a565b91505092915050565b60008060408385031215611cee57600080fd5b6000611cfc85828601611c35565b9250506020611d0d85828601611c35565b9150509250929050565b600080600060608486031215611d2c57600080fd5b6000611d3a86828701611c35565b9350506020611d4b86828701611c35565b9250506040611d5c86828701611c74565b9150509250925092565b60008060408385031215611d7957600080fd5b6000611d8785828601611c35565b9250506020611d9885828601611c5f565b9150509250929050565b60008060408385031215611db557600080fd5b6000611dc385828601611c35565b9250506020611dd485828601611c74565b9150509250929050565b600060208284031215611df057600080fd5b6000611dfe84828501611c5f565b91505092915050565b600060208284031215611e1957600080fd5b6000611e2784828501611c74565b91505092915050565b6000611e3c8383611e48565b60208301905092915050565b611e51816123ba565b82525050565b611e60816123ba565b82525050565b6000611e7182612260565b611e7b8185612283565b9350611e8683612250565b8060005b83811015611eb7578151611e9e8882611e30565b9750611ea983612276565b925050600181019050611e8a565b5085935050505092915050565b611ecd816123cc565b82525050565b611edc8161240f565b82525050565b611eeb81612433565b82525050565b6000611efc8261226b565b611f068185612294565b9350611f16818560208601612445565b611f1f81612537565b840191505092915050565b6000611f37602383612294565b9150611f4282612548565b604082019050919050565b6000611f5a602683612294565b9150611f6582612597565b604082019050919050565b6000611f7d602283612294565b9150611f88826125e6565b604082019050919050565b6000611fa0601b83612294565b9150611fab82612635565b602082019050919050565b6000611fc3602083612294565b9150611fce8261265e565b602082019050919050565b6000611fe6602583612294565b9150611ff182612687565b604082019050919050565b6000612009602483612294565b9150612014826126d6565b604082019050919050565b612028816123f8565b82525050565b61203781612402565b82525050565b60006020820190506120526000830184611e57565b92915050565b600060208201905061206d6000830184611ec4565b92915050565b60006020820190506120886000830184611ed3565b92915050565b600060208201905081810360008301526120a88184611ef1565b905092915050565b600060208201905081810360008301526120c981611f2a565b9050919050565b600060208201905081810360008301526120e981611f4d565b9050919050565b6000602082019050818103600083015261210981611f70565b9050919050565b6000602082019050818103600083015261212981611f93565b9050919050565b6000602082019050818103600083015261214981611fb6565b9050919050565b6000602082019050818103600083015261216981611fd9565b9050919050565b6000602082019050818103600083015261218981611ffc565b9050919050565b60006020820190506121a5600083018461201f565b92915050565b60006040820190506121c0600083018561201f565b81810360208301526121d28184611e66565b90509392505050565b600060a0820190506121f0600083018861201f565b6121fd6020830187611ee2565b818103604083015261220f8186611e66565b905061221e6060830185611e57565b61222b608083018461201f565b9695505050505050565b600060208201905061224a600083018461202e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006122b0826123f8565b91506122bb836123f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122f0576122ef6124aa565b5b828201905092915050565b6000612306826123f8565b9150612311836123f8565b925082612321576123206124d9565b5b828204905092915050565b6000612337826123f8565b9150612342836123f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561237b5761237a6124aa565b5b828202905092915050565b6000612391826123f8565b915061239c836123f8565b9250828210156123af576123ae6124aa565b5b828203905092915050565b60006123c5826123d8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061241a82612421565b9050919050565b600061242c826123d8565b9050919050565b600061243e826123f8565b9050919050565b60005b83811015612463578082015181840152602081019050612448565b83811115612472576000848401525b50505050565b6000600282049050600182168061249057607f821691505b602082108114156124a4576124a3612508565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61272e816123ba565b811461273957600080fd5b50565b612745816123cc565b811461275057600080fd5b50565b61275c816123f8565b811461276757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ccdf075828c81f48cf1f299d45234f6b1c7bba04635427c69d0c846373b5a2a064736f6c63430008010033
Deployed Bytecode Sourcemap
14237:7374:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17596:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14969:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16707:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21289:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16616:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17093:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14757:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18257:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14792:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15050:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14857:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15119:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16815:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5692:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5917:227;;;;;;;;;;;;;:::i;:::-;;16521:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17319:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18845:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18493:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15017:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14362:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15166:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16942:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18114:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6152:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14482:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16430:83;16467:13;16500:5;16493:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:83;:::o;17596:161::-;17671:4;17688:39;17697:12;:10;:12::i;:::-;17711:7;17720:6;17688:8;:39::i;:::-;17745:4;17738:11;;17596:161;;;;:::o;14969:41::-;;;;;;;;;;;;;:::o;16707:100::-;16760:7;16787:12;;16780:19;;16707:100;:::o;21289:313::-;21387:4;21404:36;21414:6;21422:9;21433:6;21404:9;:36::i;:::-;;21451:121;21460:6;21468:12;:10;:12::i;:::-;21482:89;21520:6;21482:89;;;;;;;;;;;;;;;;;:11;:19;21494:6;21482:19;;;;;;;;;;;;;;;:33;21502:12;:10;:12::i;:::-;21482:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21451:8;:121::i;:::-;21590:4;21583:11;;21289:313;;;;;:::o;16616:83::-;16657:5;16682:9;;;;;;;;;;;16675:16;;16616:83;:::o;17093:218::-;17181:4;17198:83;17207:12;:10;:12::i;:::-;17221:7;17230:50;17269:10;17230:11;:25;17242:12;:10;:12::i;:::-;17230:25;;;;;;;;;;;;;;;:34;17256:7;17230:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17198:8;:83::i;:::-;17299:4;17292:11;;17093:218;;;;:::o;14757:26::-;;;;:::o;18257:124::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18365:8:::1;18339:23;:34;;;;18257:124:::0;:::o;14792:56::-;;;;:::o;15050:28::-;;;;;;;;;;;;;:::o;14857:36::-;;;;:::o;15119:40::-;;;;;;;;;;;;;:::o;16815:119::-;16881:7;16908:9;:18;16918:7;16908:18;;;;;;;;;;;;;;;;16901:25;;16815:119;;;:::o;5692:79::-;5730:7;5757:6;;;;;;;;;;;5750:13;;5692:79;:::o;5917:227::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6021:42:::1;5984:81;;6005:6;::::0;::::1;;;;;;;;5984:81;;;;;;;;;;;;6093:42;6076:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;5917:227::o:0;16521:87::-;16560:13;16593:7;16586:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16521:87;:::o;17319:269::-;17412:4;17429:129;17438:12;:10;:12::i;:::-;17452:7;17461:96;17500:15;17461:96;;;;;;;;;;;;;;;;;:11;:25;17473:12;:10;:12::i;:::-;17461:25;;;;;;;;;;;;;;;:34;17487:7;17461:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17429:8;:129::i;:::-;17576:4;17569:11;;17319:269;;;;:::o;18845:167::-;18923:4;18940:42;18950:12;:10;:12::i;:::-;18964:9;18975:6;18940:9;:42::i;:::-;;19000:4;18993:11;;18845:167;;;;:::o;18493:171::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18594:8:::1;18570:21;;:32;;;;;;;;;;;;;;;;;;18618:38;18647:8;18618:38;;;;;;:::i;:::-;;;;;;;;18493:171:::0;:::o;15017:26::-;;;;;;;;;;;;;:::o;14362:36::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15166:45::-;;;;;;;;;;;;;:::o;16942:143::-;17023:7;17050:11;:18;17062:5;17050:18;;;;;;;;;;;;;;;:27;17069:7;17050:27;;;;;;;;;;;;;;;;17043:34;;16942:143;;;;:::o;18114:135::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18233:8:::1;18204:17;:26;18222:7;18204:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18114:135:::0;;:::o;6152:244::-;5836:12;:10;:12::i;:::-;5826:22;;:6;;;;;;;;;;:22;;;5818:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6261:1:::1;6241:22;;:8;:22;;;;6233:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6351:8;6322:38;;6343:6;::::0;::::1;;;;;;;;6322:38;;;;;;;;;;;;6380:8;6371:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6152:244:::0;:::o;14482:73::-;;;;;;;;;;;;;:::o;462:115::-;515:15;558:10;543:26;;462:115;:::o;17765:337::-;17875:1;17858:19;;:5;:19;;;;17850:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17956:1;17937:21;;:7;:21;;;;17929:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18040:6;18010:11;:18;18022:5;18010:18;;;;;;;;;;;;;;;:27;18029:7;18010:27;;;;;;;;;;;;;;;:36;;;;18078:7;18062:32;;18071:5;18062:32;;;18087:6;18062:32;;;;;;:::i;:::-;;;;;;;;17765:337;;;:::o;19024:621::-;19111:4;19156:1;19138:20;;:6;:20;;;;19130:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19240:1;19219:23;;:9;:23;;;;19211:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19295:28;19336:23;;19326:6;:33;;19295:64;;19374:23;:44;;;;;19402:16;;;;;;;;;;;19401:17;19374:44;:72;;;;;19433:13;;;;;;;;;;;19422:24;;:9;:24;;;19374:72;:97;;;;;19450:21;;;;;;;;;;;19374:97;19370:246;;;19498:22;19513:6;19498:14;:22::i;:::-;19370:246;;;19562:41;19577:6;19585:9;19596:6;19562:14;:41::i;:::-;19555:48;;;;;19370:246;19633:4;19626:11;;;19024:621;;;;;;:::o;1732:192::-;1818:7;1851:1;1846;:6;;1854:12;1838:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1878:9;1894:1;1890;:5;;;;:::i;:::-;1878:17;;1915:1;1908:8;;;1732:192;;;;;:::o;1399:181::-;1457:7;1477:9;1493:1;1489;:5;;;;:::i;:::-;1477:17;;1518:1;1513;:6;;1505:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1571:1;1564:8;;;1399:181;;;;:::o;20051:275::-;15653:4;15634:16;;:23;;;;;;;;;;;;;;;;;;20133:19:::1;20155:7;20133:29;;20173:21;20197:24;20209:11;20197:7;:11;;:24;;;;:::i;:::-;20173:48;;20234:25;20251:7;20234:16;:25::i;:::-;20270:22;20295:21;20270:46;;15668:1;;;15699:5:::0;15680:16;;:24;;;;;;;;;;;;;;;;;;20051:275;:::o;19653:390::-;19746:4;19763:11;19798:3;19787:7;;19778:6;:16;;;;:::i;:::-;19777:24;;;;:::i;:::-;19763:38;;19832:29;19854:6;19832:9;:17;19842:6;19832:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;19812:9;:17;19822:6;19812:17;;;;;;;;;;;;;;;:49;;;;19881:15;19892:3;19881:6;:10;;:15;;;;:::i;:::-;19872:24;;19930:32;19955:6;19930:9;:20;19940:9;19930:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19907:9;:20;19917:9;19907:20;;;;;;;;;;;;;;;:55;;;;19995:9;19978:35;;19987:6;19978:35;;;20006:6;19978:35;;;;;;:::i;:::-;;;;;;;;20031:4;20024:11;;;19653:390;;;;;:::o;1588:136::-;1646:7;1673:43;1677:1;1680;1673:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1666:50;;1588:136;;;;:::o;20338:568::-;20406:21;20444:1;20430:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20406:40;;20475:4;20457;20462:1;20457:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;20501:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20491:4;20496:1;20491:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;20536:62;20553:4;20568:15;;;;;;;;;;;20586:11;20536:8;:62::i;:::-;20613:15;;;;;;;;;;;:66;;;20694:11;20720:1;20764:4;20783:13;;;;;;;;;;;20811:15;20613:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20863:35;20880:11;20893:4;20863:35;;;;;;;:::i;:::-;;;;;;;;20338:568;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;;;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;;;;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:401::-;;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:53;2365:7;2356:6;2345:9;2341:22;2320:53;:::i;:::-;2310:63;;2266:117;2422:2;2448:50;2490:7;2481:6;2470:9;2466:22;2448:50;:::i;:::-;2438:60;;2393:115;2194:321;;;;;:::o;2521:407::-;;;2646:2;2634:9;2625:7;2621:23;2617:32;2614:2;;;2662:1;2659;2652:12;2614:2;2705:1;2730:53;2775:7;2766:6;2755:9;2751:22;2730:53;:::i;:::-;2720:63;;2676:117;2832:2;2858:53;2903:7;2894:6;2883:9;2879:22;2858:53;:::i;:::-;2848:63;;2803:118;2604:324;;;;;:::o;2934:256::-;;3039:2;3027:9;3018:7;3014:23;3010:32;3007:2;;;3055:1;3052;3045:12;3007:2;3098:1;3123:50;3165:7;3156:6;3145:9;3141:22;3123:50;:::i;:::-;3113:60;;3069:114;2997:193;;;;:::o;3196:262::-;;3304:2;3292:9;3283:7;3279:23;3275:32;3272:2;;;3320:1;3317;3310:12;3272:2;3363:1;3388:53;3433:7;3424:6;3413:9;3409:22;3388:53;:::i;:::-;3378:63;;3334:117;3262:196;;;;:::o;3464:179::-;;3554:46;3596:3;3588:6;3554:46;:::i;:::-;3632:4;3627:3;3623:14;3609:28;;3544:99;;;;:::o;3649:108::-;3726:24;3744:5;3726:24;:::i;:::-;3721:3;3714:37;3704:53;;:::o;3763:118::-;3850:24;3868:5;3850:24;:::i;:::-;3845:3;3838:37;3828:53;;:::o;3917:732::-;;4065:54;4113:5;4065:54;:::i;:::-;4135:86;4214:6;4209:3;4135:86;:::i;:::-;4128:93;;4245:56;4295:5;4245:56;:::i;:::-;4324:7;4355:1;4340:284;4365:6;4362:1;4359:13;4340:284;;;4441:6;4435:13;4468:63;4527:3;4512:13;4468:63;:::i;:::-;4461:70;;4554:60;4607:6;4554:60;:::i;:::-;4544:70;;4400:224;4387:1;4384;4380:9;4375:14;;4340:284;;;4344:14;4640:3;4633:10;;4041:608;;;;;;;:::o;4655:109::-;4736:21;4751:5;4736:21;:::i;:::-;4731:3;4724:34;4714:50;;:::o;4770:185::-;4884:64;4942:5;4884:64;:::i;:::-;4879:3;4872:77;4862:93;;:::o;4961:147::-;5056:45;5095:5;5056:45;:::i;:::-;5051:3;5044:58;5034:74;;:::o;5114:364::-;;5230:39;5263:5;5230:39;:::i;:::-;5285:71;5349:6;5344:3;5285:71;:::i;:::-;5278:78;;5365:52;5410:6;5405:3;5398:4;5391:5;5387:16;5365:52;:::i;:::-;5442:29;5464:6;5442:29;:::i;:::-;5437:3;5433:39;5426:46;;5206:272;;;;;:::o;5484:366::-;;5647:67;5711:2;5706:3;5647:67;:::i;:::-;5640:74;;5723:93;5812:3;5723:93;:::i;:::-;5841:2;5836:3;5832:12;5825:19;;5630:220;;;:::o;5856:366::-;;6019:67;6083:2;6078:3;6019:67;:::i;:::-;6012:74;;6095:93;6184:3;6095:93;:::i;:::-;6213:2;6208:3;6204:12;6197:19;;6002:220;;;:::o;6228:366::-;;6391:67;6455:2;6450:3;6391:67;:::i;:::-;6384:74;;6467:93;6556:3;6467:93;:::i;:::-;6585:2;6580:3;6576:12;6569:19;;6374:220;;;:::o;6600:366::-;;6763:67;6827:2;6822:3;6763:67;:::i;:::-;6756:74;;6839:93;6928:3;6839:93;:::i;:::-;6957:2;6952:3;6948:12;6941:19;;6746:220;;;:::o;6972:366::-;;7135:67;7199:2;7194:3;7135:67;:::i;:::-;7128:74;;7211:93;7300:3;7211:93;:::i;:::-;7329:2;7324:3;7320:12;7313:19;;7118:220;;;:::o;7344:366::-;;7507:67;7571:2;7566:3;7507:67;:::i;:::-;7500:74;;7583:93;7672:3;7583:93;:::i;:::-;7701:2;7696:3;7692:12;7685:19;;7490:220;;;:::o;7716:366::-;;7879:67;7943:2;7938:3;7879:67;:::i;:::-;7872:74;;7955:93;8044:3;7955:93;:::i;:::-;8073:2;8068:3;8064:12;8057:19;;7862:220;;;:::o;8088:118::-;8175:24;8193:5;8175:24;:::i;:::-;8170:3;8163:37;8153:53;;:::o;8212:112::-;8295:22;8311:5;8295:22;:::i;:::-;8290:3;8283:35;8273:51;;:::o;8330:222::-;;8461:2;8450:9;8446:18;8438:26;;8474:71;8542:1;8531:9;8527:17;8518:6;8474:71;:::i;:::-;8428:124;;;;:::o;8558:210::-;;8683:2;8672:9;8668:18;8660:26;;8696:65;8758:1;8747:9;8743:17;8734:6;8696:65;:::i;:::-;8650:118;;;;:::o;8774:276::-;;8932:2;8921:9;8917:18;8909:26;;8945:98;9040:1;9029:9;9025:17;9016:6;8945:98;:::i;:::-;8899:151;;;;:::o;9056:313::-;;9207:2;9196:9;9192:18;9184:26;;9256:9;9250:4;9246:20;9242:1;9231:9;9227:17;9220:47;9284:78;9357:4;9348:6;9284:78;:::i;:::-;9276:86;;9174:195;;;;:::o;9375:419::-;;9579:2;9568:9;9564:18;9556:26;;9628:9;9622:4;9618:20;9614:1;9603:9;9599:17;9592:47;9656:131;9782:4;9656:131;:::i;:::-;9648:139;;9546:248;;;:::o;9800:419::-;;10004:2;9993:9;9989:18;9981:26;;10053:9;10047:4;10043:20;10039:1;10028:9;10024:17;10017:47;10081:131;10207:4;10081:131;:::i;:::-;10073:139;;9971:248;;;:::o;10225:419::-;;10429:2;10418:9;10414:18;10406:26;;10478:9;10472:4;10468:20;10464:1;10453:9;10449:17;10442:47;10506:131;10632:4;10506:131;:::i;:::-;10498:139;;10396:248;;;:::o;10650:419::-;;10854:2;10843:9;10839:18;10831:26;;10903:9;10897:4;10893:20;10889:1;10878:9;10874:17;10867:47;10931:131;11057:4;10931:131;:::i;:::-;10923:139;;10821:248;;;:::o;11075:419::-;;11279:2;11268:9;11264:18;11256:26;;11328:9;11322:4;11318:20;11314:1;11303:9;11299:17;11292:47;11356:131;11482:4;11356:131;:::i;:::-;11348:139;;11246:248;;;:::o;11500:419::-;;11704:2;11693:9;11689:18;11681:26;;11753:9;11747:4;11743:20;11739:1;11728:9;11724:17;11717:47;11781:131;11907:4;11781:131;:::i;:::-;11773:139;;11671:248;;;:::o;11925:419::-;;12129:2;12118:9;12114:18;12106:26;;12178:9;12172:4;12168:20;12164:1;12153:9;12149:17;12142:47;12206:131;12332:4;12206:131;:::i;:::-;12198:139;;12096:248;;;:::o;12350:222::-;;12481:2;12470:9;12466:18;12458:26;;12494:71;12562:1;12551:9;12547:17;12538:6;12494:71;:::i;:::-;12448:124;;;;:::o;12578:483::-;;12787:2;12776:9;12772:18;12764:26;;12800:71;12868:1;12857:9;12853:17;12844:6;12800:71;:::i;:::-;12918:9;12912:4;12908:20;12903:2;12892:9;12888:18;12881:48;12946:108;13049:4;13040:6;12946:108;:::i;:::-;12938:116;;12754:307;;;;;:::o;13067:831::-;;13368:3;13357:9;13353:19;13345:27;;13382:71;13450:1;13439:9;13435:17;13426:6;13382:71;:::i;:::-;13463:80;13539:2;13528:9;13524:18;13515:6;13463:80;:::i;:::-;13590:9;13584:4;13580:20;13575:2;13564:9;13560:18;13553:48;13618:108;13721:4;13712:6;13618:108;:::i;:::-;13610:116;;13736:72;13804:2;13793:9;13789:18;13780:6;13736:72;:::i;:::-;13818:73;13886:3;13875:9;13871:19;13862:6;13818:73;:::i;:::-;13335:563;;;;;;;;:::o;13904:214::-;;14031:2;14020:9;14016:18;14008:26;;14044:67;14108:1;14097:9;14093:17;14084:6;14044:67;:::i;:::-;13998:120;;;;:::o;14124:132::-;;14214:3;14206:11;;14244:4;14239:3;14235:14;14227:22;;14196:60;;;:::o;14262:114::-;;14363:5;14357:12;14347:22;;14336:40;;;:::o;14382:99::-;;14468:5;14462:12;14452:22;;14441:40;;;:::o;14487:113::-;;14589:4;14584:3;14580:14;14572:22;;14562:38;;;:::o;14606:184::-;;14739:6;14734:3;14727:19;14779:4;14774:3;14770:14;14755:29;;14717:73;;;;:::o;14796:169::-;;14914:6;14909:3;14902:19;14954:4;14949:3;14945:14;14930:29;;14892:73;;;;:::o;14971:305::-;;15030:20;15048:1;15030:20;:::i;:::-;15025:25;;15064:20;15082:1;15064:20;:::i;:::-;15059:25;;15218:1;15150:66;15146:74;15143:1;15140:81;15137:2;;;15224:18;;:::i;:::-;15137:2;15268:1;15265;15261:9;15254:16;;15015:261;;;;:::o;15282:185::-;;15339:20;15357:1;15339:20;:::i;:::-;15334:25;;15373:20;15391:1;15373:20;:::i;:::-;15368:25;;15412:1;15402:2;;15417:18;;:::i;:::-;15402:2;15459:1;15456;15452:9;15447:14;;15324:143;;;;:::o;15473:348::-;;15536:20;15554:1;15536:20;:::i;:::-;15531:25;;15570:20;15588:1;15570:20;:::i;:::-;15565:25;;15758:1;15690:66;15686:74;15683:1;15680:81;15675:1;15668:9;15661:17;15657:105;15654:2;;;15765:18;;:::i;:::-;15654:2;15813:1;15810;15806:9;15795:20;;15521:300;;;;:::o;15827:191::-;;15887:20;15905:1;15887:20;:::i;:::-;15882:25;;15921:20;15939:1;15921:20;:::i;:::-;15916:25;;15960:1;15957;15954:8;15951:2;;;15965:18;;:::i;:::-;15951:2;16010:1;16007;16003:9;15995:17;;15872:146;;;;:::o;16024:96::-;;16090:24;16108:5;16090:24;:::i;:::-;16079:35;;16069:51;;;:::o;16126:90::-;;16203:5;16196:13;16189:21;16178:32;;16168:48;;;:::o;16222:126::-;;16299:42;16292:5;16288:54;16277:65;;16267:81;;;:::o;16354:77::-;;16420:5;16409:16;;16399:32;;;:::o;16437:86::-;;16512:4;16505:5;16501:16;16490:27;;16480:43;;;:::o;16529:180::-;;16639:64;16697:5;16639:64;:::i;:::-;16626:77;;16616:93;;;:::o;16715:140::-;;16825:24;16843:5;16825:24;:::i;:::-;16812:37;;16802:53;;;:::o;16861:121::-;;16952:24;16970:5;16952:24;:::i;:::-;16939:37;;16929:53;;;:::o;16988:307::-;17056:1;17066:113;17080:6;17077:1;17074:13;17066:113;;;17165:1;17160:3;17156:11;17150:18;17146:1;17141:3;17137:11;17130:39;17102:2;17099:1;17095:10;17090:15;;17066:113;;;17197:6;17194:1;17191:13;17188:2;;;17277:1;17268:6;17263:3;17259:16;17252:27;17188:2;17037:258;;;;:::o;17301:320::-;;17382:1;17376:4;17372:12;17362:22;;17429:1;17423:4;17419:12;17450:18;17440:2;;17506:4;17498:6;17494:17;17484:27;;17440:2;17568;17560:6;17557:14;17537:18;17534:38;17531:2;;;17587:18;;:::i;:::-;17531:2;17352:269;;;;:::o;17627:180::-;17675:77;17672:1;17665:88;17772:4;17769:1;17762:15;17796:4;17793:1;17786:15;17813:180;17861:77;17858:1;17851:88;17958:4;17955:1;17948:15;17982:4;17979:1;17972:15;17999:180;18047:77;18044:1;18037:88;18144:4;18141:1;18134:15;18168:4;18165:1;18158:15;18185:102;;18277:2;18273:7;18268:2;18261:5;18257:14;18253:28;18243:38;;18233:54;;;:::o;18293:222::-;18433:34;18429:1;18421:6;18417:14;18410:58;18502:5;18497:2;18489:6;18485:15;18478:30;18399:116;:::o;18521:225::-;18661:34;18657:1;18649:6;18645:14;18638:58;18730:8;18725:2;18717:6;18713:15;18706:33;18627:119;:::o;18752:221::-;18892:34;18888:1;18880:6;18876:14;18869:58;18961:4;18956:2;18948:6;18944:15;18937:29;18858:115;:::o;18979:177::-;19119:29;19115:1;19107:6;19103:14;19096:53;19085:71;:::o;19162:182::-;19302:34;19298:1;19290:6;19286:14;19279:58;19268:76;:::o;19350:224::-;19490:34;19486:1;19478:6;19474:14;19467:58;19559:7;19554:2;19546:6;19542:15;19535:32;19456:118;:::o;19580:223::-;19720:34;19716:1;19708:6;19704:14;19697:58;19789:6;19784:2;19776:6;19772:15;19765:31;19686:117;:::o;19809:122::-;19882:24;19900:5;19882:24;:::i;:::-;19875:5;19872:35;19862:2;;19921:1;19918;19911:12;19862:2;19852:79;:::o;19937:116::-;20007:21;20022:5;20007:21;:::i;:::-;20000:5;19997:32;19987:2;;20043:1;20040;20033:12;19987:2;19977:76;:::o;20059:122::-;20132:24;20150:5;20132:24;:::i;:::-;20125:5;20122:35;20112:2;;20171:1;20168;20161:12;20112:2;20102:79;:::o
Swarm Source
ipfs://ccdf075828c81f48cf1f299d45234f6b1c7bba04635427c69d0c846373b5a2a0
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.